公司网站优化推广方案,什么是标记型网页制作工具,深圳家具定制,汕头建站模板目录 SpringWeb介绍 搭建 SpringWeb SpringWeb介绍 Spring Web是一个基于 Servlet API 构建的原始 web 框架#xff0c;用于构建基于MVC模式的Web应用程序。在 web 层框架历经 Strust1#xff0c;WebWork#xff0c;Strust2 等诸多产品的历代更选 之后#xff0c;目前业界普… 目录 SpringWeb介绍 搭建 SpringWeb SpringWeb介绍 Spring Web是一个基于 Servlet API 构建的原始 web 框架用于构建基于MVC模式的Web应用程序。在 web 层框架历经 Strust1WebWorkStrust2 等诸多产品的历代更选 之后目前业界普遍选择了 springWeb 作为 Java EE 项目 web 层开发的首选方案。其中DispatcherServlet是一个关键的组件它负责处理客户端的HTTP请求并将请求分派到相应的Handler中处理DispatcherServlet是Spring MVC框架的核心组件它接收客户端的HTTP请求并将其传递给相应的Handler来处理。 DispatcherServlet的工作原理 请求接收当客户端发送一个HTTP请求时DispatcherServlet会创建一个请求对象并从中获取请求的URL路径、HTTP方法、请求头等信息。请求映射DispatcherServlet会使用HandlerMapping实例来根据请求的URL路径和HTTP方法来匹配一个或多个Handler实例。HandlerMapping实例负责将URL路径和HTTP方法映射到具体的Handler实例上。请求解析当一个Handler实例被选中后DispatcherServlet会调用HandlerAdapter实例来解析请求获取请求的参数、请求头等信息。业务处理当请求被解析后Handler实例会调用业务逻辑来处理请求。这个过程通常由Controller类中的方法来完成。视图渲染当业务逻辑处理完成后Handler实例会调用ViewResolver实例来选择一个合适的视图来生成HTTP响应。ViewResolver实例负责将业务逻辑的结果转化为HTML、XML等格式的视图内容。响应生成当视图被选择后Handler实例会调用View类中的render方法来生成HTTP响应。这个过程通常包括设置响应头、生成响应内容等操作。响应发送当HTTP响应生成完成后DispatcherServlet会将响应发送给客户端。这个过程通常由Servlet容器来完成。 SpringWEB 运行流程图 搭建 SpringWeb 导入spring-webmvc包 dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.2.2.RELEASE/version
/dependency 在 web.xml 文件中配置 DispatcherServlet servletservlet-nameapplication/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring.xml/param-value/init-paramload-on-startup0/load-on-startup/servlet!-- 请求映射 --servlet-mappingservlet-nameapplication/servlet-nameurl-pattern//url-pattern/servlet-mapping 开启 springmvc 注解(spring核心配置文件) !--开启 springmvc 注解--mvc:annotation-driven/mvc:annotation-driven 处理器类搭建 RestController定义web层的类Spring 会扫描使用了RestController 标识的类然后将类加入到 Spring IOC 容器 中注入依赖RequestMapping 注解是一个用来处理请求地址映射的注解可用于类或方法上。 常用注解
RequestMapping(path /)post请求和get请求都可以GetMapping(path /)用于get请求PostMapping(path /)用于post请求RequestParam名字不一致时RequestParam可以绑定其中有required默认为false接收的参数可以为空requiredtrue时就不能为空可以继续设置defaultValue作为默认值 RequestHeader(“user-Agent”)接收请求头中的内容RequestBody当前端传来是json形式用RequestBody来接收DateTimeFormat(pattern yyyy-MM-dd)在日期形式的属性前加
//RestController定义web层的类
RestController
RequestMapping(path /loginCtl)
public class LoginCtl {AutowiredLoginService loginService;RequestMapping(path /test)public String Login(){return bhello world!!!!!!!b/;}//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预处理Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(进入到拦截器);return true;/*true是离开拦截器进目标处理器false是不进处理器*/}
}注册拦截器
/**任何地址都进入拦截器exclude-mapping不进入拦截器的地址。 !--注册处连接器--mvc:interceptorsmvc:interceptormvc:mapping path/**/!--mvc:exclude-mapping path/statics/**/--!--test1 不进拦截器 --mvc:exclude-mapping path/loginCtl/test1/bean iddemo classcom.yyds.ssm.util.DemoInterceptor/bean/mvc:interceptor/mvc:interceptors