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项目结构