目录
Spring Web是一个基于 Servlet API 构建的原始 web 框架,用于构建基于MVC模式的Web应用程序。在 web 层框架历经 Strust1,WebWork,Strust2 等诸多产品的历代更选 之后,目前业界普遍选择了 springWeb 作为 Java EE 项目 web 层开发的首选方案。其中DispatcherServlet是一个关键的组件,它负责处理客户端的HTTP请求,并将请求分派到相应的Handler中处理DispatcherServlet是Spring MVC框架的核心组件,它接收客户端的HTTP请求,并将其传递给相应的Handler来处理。
DispatcherServlet的工作原理:
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webmvcartifactId>
- <version>5.2.2.RELEASEversion>
- dependency>
- <servlet>
- <servlet-name>applicationservlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
- <init-param>
- <param-name>contextConfigLocationparam-name>
- <param-value>classpath:spring.xmlparam-value>
- init-param>
- <load-on-startup>0load-on-startup>
- servlet>
-
- <servlet-mapping>
- <servlet-name>applicationservlet-name>
- <url-pattern>/url-pattern>
- servlet-mapping>
-
- <mvc:annotation-driven>mvc:annotation-driven>
处理器类搭建
常用注解:
- //RestController定义web层的类
- @RestController
- @RequestMapping(path = "/loginCtl")
- public class LoginCtl {
-
- @Autowired
- LoginService loginService;
- @RequestMapping(path = "/test")
- public String Login(){
- return "hello world!!!!!!!";
- }
-
-
- //path与value都可以 定义映射地址
- @RequestMapping(path = "/test1")
- public String Login1(){
- return "hello world1";
- }
-
- //path与value都可以 定义映射地址
- @GetMapping(path = "l")
- public String Login2(HttpServletRequest httpServletRequest){
-
- String account = httpServletRequest.getParameter("account");
- String password = httpServletRequest.getParameter("password");
- System.out.println(account+":"+password);
- return "hello world1";
- }
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private Date password;
拦截器:
拦截器类
返回 true是离开拦截器,进目标处理器;
返回false是不进处理器
- public class DemoInterceptor implements HandlerInterceptor {
- //preHandle预处理
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- System.out.println("进入到拦截器");
- return true;
- /*
- true是离开拦截器,进目标处理器
- false是不进处理器
- */
- }
- }
注册拦截器
/**:任何地址都进入拦截器,exclude-mapping:不进入拦截器的地址。
-
-
- <mvc:interceptors>
- <mvc:interceptor>
- <mvc:mapping path="/**"/>
-
-
- <mvc:exclude-mapping path="/loginCtl/test1"/>
- <bean id="demo" class="com.yyds.ssm.util.DemoInterceptor">bean>
- mvc:interceptor>
- mvc:interceptors>