步骤:
1.新建动态web工程
2.导入Jar包
3.配置web.xml(Dispatcher, servlet Filtter)
注: *.action (只拦截jsp) / (拦截所有,唯一除了jsp) /*(拦截所有)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>springmvc-xxxx</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 配置SpringMVC前端控制器 -->
<servlet>
<servlet-name>springmvc-xxxx</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 指定SpringMVC配置文件 -->
<!-- SpringMVC的配置文件的默认路径是/WEB-INF/${servlet-name}-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc-xxxx</servlet-name>
<!-- 设置所有以action结尾的请求进入SpringMVC -->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>
4.编写pojo类
5.配置springmvc.xml 配置扫描 @Controller @RequestMapping 处理器适配器 视图解析器
<!-- 配置controller扫描包,多个包之间用,分隔 -->
<context:component-scan base-package="cn.itcast.springmvc.controller" />
<!-- 配置处理器映射器 -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<!-- 配置处理器适配器 -->
<!-- 注解驱动,可以替代注解处理器和适配器的配置 -->
<!-- <mvc:annotation-driven /> -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
<!-- 配置视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置逻辑视图的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 配置逻辑视图的后缀 -->
<property name="suffix" value=".jsp" />
</bean>
6.编写Handler, Controller程序员自己写 @RequestMapping(value= “/xxx/xxx.action”)
@Controller
public class XxxController {
// @RequestMapping:里面放的是请求的url,和用户请求的url进行匹配
// action可以写也可以不写
@RequestMapping("/xxx.action")
public ModelAndView queryItemList() {
// 创建ModelAndView,用来存放数据和视图
ModelAndView modelAndView = new ModelAndView();
// 设置数据到模型中
modelAndView.addObject("xxxx", xxxx);
// 设置视图jsp,需要设置视图的物理地址 /WEB-INF/jsp/xxx.jsp
modelAndView.setViewName("xxx");
return modelAndView;
}
}
6.编写对应JSP页面
框架:
工作流程:
1.用户发送请求到前端控制器 DispatcherServlet
2.DispatcherServlet收到请求调用HandlerMapping
3.HandleMapping根据请求url找到具体的处理器,生成处理器对象及拦截器(有则生成),一并返给DispatcherSerlet
4.DispatcherSerlet通过HandleAdapter调用处理器
5.Contrller(后端处理器)执行返回ModelAndView
6.DispacherServlet将ModelAndView返给视图解析器ViewReslover(解析:组装地址,找到具体jsp物理地址)
7.ViewReslover解析后返给View视图渲染(渲染:将数据模型填充到视图中)
8.DispacherServlet响应用户
组建说明:
- DispatcherServlet:前端控制器
dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,降低了组件之间的耦合性。
2.HandlerMapping:处理器映射器
HandlerMapping负责根据用户请求url找到Handler即处理器
3.Handler:处理器
Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户业务请求进行处理。
4.HandlAdapter:处理器适配器
通过HandlerAdapter对处理器进行执行。
5.ViewResolver:视图解析器
View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象
6.View:视图
视图类型的支持包括:jstlView、freemarkerView、pdfView等,最常用的视图就是jsp。
说明:处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。
需要用户开发的组件有handler、view