1. 了解
SpringMVC是Spring框架的一个模块,所以本来就是Spring的东西,根本不需要整合
缩略流程图
详细流程图
2. web.xml的配置
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>SpringMVC学习</display-name>
<!-- 加载到时Spring容器管理的<bean>对象 - 面向切面编程 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- SapringMVC的监听器 - 其实就是一个ServletCotnextListener全局监听器 - 用于监听applicationContext的bean对象 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 由这里可以知道SpringMVC的Controller中心控制器就是个Servelt,并且里面含有具体处理请求的SpringMVC包含的Servlet -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 由这里可以知道SpringMVC的Controller中心控制器就是个Servelt,并且里面含有具体处理请求的SpringMVC包含的Servlet -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 使用Spring自带的字符过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<!-- 让这个字符过滤器处理所有的请求 - 编码都是utf-8 -->
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
3. 访问第一个页面
3.1 springMVC.xml配置的形式
springMVC.xml
<bean name="/test1" class="top.linruchang.controller.Test1"></bean>
Test1.java
public class Test1 implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
// 视图处理类
ModelAndView mav = new ModelAndView();
// 设置具体的视图是哪个 -- 重定向到first.jsp页面
mav.setViewName("redirect:/first.jsp");
return mav;
}
}
运行效果
3.2 注解配置的形式 – 常用这个进行开发
步骤:
- 使用@Controller注解修饰处理类
- 使用@RequestMapping注解修饰处理类 – 用来处理某个请求的Servlet
springMVC.xml
<!--扫描base-package包下的注解-->
<context:component-scan base-package="top.linruchang.controller"></context:component-scan>
<!--使有关SpringMVC的注解生效-->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 上面的一句注解驱动等于下面两句,聪明的你知道该怎么选择
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
-->
Test1.java
@Controller
public class Test1{
@RequestMapping("/test1")
public ModelAndView test1() {
System.out.println("你哄啊");
ModelAndView mav = new ModelAndView();
mav.setViewName("redirect:/first.jsp");
return mav;
}
}
运行效果