
spring mvc介绍:其实spring mvc就是基于servlet实现的,只不过他讲请求处理的流程分配的更细致而已。
spring mvc核心理念的4个组件:
1.DispatcherServlet:负责接受所有的请求,就像普通的servlet一样,此接口只是简单的负责处理接受请求。
2.HandlerMapping:当接受到请求后,由此组件负责解析请求,知道该请求要访问那个具体的Controller(具体的Servlet)。
3.HandlerAdaper:负责调用具体的Controller(Servlet)。将HandlerMapping解析出来的值传给HandlerAdper由HandlerAdper去调用具体的逻辑。
4.ViewResovler:当具体的逻辑执行完毕后负责将当前请求展现给客户端,或者请求转发、重定向等操作。
上代码:
使用的jar包:
commons-logging-1.1.3.jar
j sp-api.jar
servlet-api.jar
spring-aop-4.1.6.RELEASE.jar
spring-aspects-4.1.6.RELEASE.jar
spring-beans-4.1.6.RELEASE.jar
spring-context-4.1.6.RELEASE.jar
spring-core-4.1.6.RELEASE.jar
spring-expression-4.1.6.RELEASE.jar
spring-jdbc-4.1.6.RELEASE.jar
spring-tx-4.1.6.RELEASE.jar
spring-web-4.1.6.RELEASE.jar
spring-webmvc-4.1.6.RELEASE.jar
1.controller类:
package com.mr.li.controller; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller; public class MyController implements Controller{ @Override
public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
System.out.println("控制器执行了");
return null;
} }
2.src下的spring mvc配置xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="demo123" class="com.mr.li.controller.MyController"></bean>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<!-- 配置具体要访问的Servlet名称,例如http://localhost:8080/springmvc001/demo中的demo是访问此servlet
的意思,当DispatcherServlet收到请求后会在配置中找demo这个名称,找到后会将请求发给此配置的servlet -->
<entry key="demo" value-ref="demo123"></entry>
</map>
</property>
</bean>
</beans>
3.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet>
<servlet-name>springmvc123</servlet-name>
<!-- 配置DispatcherServlet,此Servlet是spring提供的,专门用于接受客户端的请求 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 修改配置文件路径和名称 -->
<init-param>
<!-- 在其初始化的时候指定其加载配置文件的路径,如果配置文件在src可直接写其xml名字即可 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 自启动 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置访问路径,此访问路径是除过.jsp外其他的url后缀皆可访问 -->
<servlet-mapping>
<servlet-name>springmvc123</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
url: http://localhost:8080/springmvc001/demo
web项目结构