一.开发步骤
1.导入jar包
spring-webmvc、spring-context-support、spring-web
2.配置web.xml文件
<display-name>springmvc-01-primary</display-name>
<welcome-file-list>
<!-- 设置首页 -->
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 注册前端控制器(中央调度器)是springmvc程序的入口 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置spring文件的路径和文件名(如果不配置默认为 WEB-INF/前端控制器名-servlet.xml) -->
<init-param>
<!-- contextConfigLocation -->
<param-name>contextConfigLocation</param-name>
<!-- classpath:项目根路径 -->
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!-- load-on-startup 标记容器是否应该在web应用程序启动的时候就加载这个servlet,(实例化并调用其init()方法)。-->
<!-- 该值越小优先级越高,最小为0 -->
<load-on-startup>1</load-on-startup>
</servlet>
3.编写SpringMVC后端控制器
//在controller写实现类实现Controller接口(作用和以前的servlet的作用一样)
public class DemoController implements Controller{
//作用:
//1.得到请求数据
//2.调用service层实例对象处理请求
//3.完成资源跳转
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
ModelAndView mv = new ModelAndView();
//ModelAndView的作用:
//1.存储数据
mv.addObject("name","lisi");
//2.资源跳转(展示数据)
mv.setViewName("/welcome.jsp");
return mv;
}
}
4.编写springmvc配置文件
<?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:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 配置后端控制器 -->
<bean id="/register.do" class="com.bjsxt.controller.DemoController"></bean>
<!-- handlerMapping:用于handlers映射请求和一系列的对于拦截器的前处理和后处理 -->
<!-- 可以不书写HandlerMapping -->
<!-- 不书写的话,上面的id就是资源请求路径 -->
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/register.do" value-ref="/register.do"></entry>
</map>
</property>
</bean>
<!-- HandlerAdapter:-按照特定规则(HandlerAdapter要求的规则)去执行Handler
通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。 -->
<!-- HandlerAdapter -->
<bean id="HandlerAdapter" class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<!-- ViewResolver 会根据逻辑 View 获得对应的物理 View。 -->
<!-- 注意如果在逻辑视图中加了forward: 或者 redirect: 就不会调用视图解析器-->
<mvc:view-resolvers>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/"/>
<!-- 后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
</mvc:view-resolvers>
</beans>