spring-MVC学习第一天--08-06
2020-08-06 13:38
225 查看
spring-MVC
spring集成web环境
spring中,想要获取bean就必须先要获取容器对象,而获取容器对象得代码就都是类似的,所以要抽取相同代码, 简化开发 实现原理:由于web项目在初始化时会自动创建servletContext对象,可以使用监听器去监听servletContext 对象的创建,创建容器对象并存入servletContext域对象中 流程 1.maven导jar包坐标(此jar封装了监听器和获取容器对象的工具类) <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.0.3.RELEASE</version> </dependency> 2.配置监听器并且设置servletContext的初始值(用来加载) 示例 ** web.xml的配置 <context-param> // 设置初始值,用以解耦(解除以配置文件名来获取容器对象获取时的耦合) <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> // 配置监听器,监听servletContext对象的创建 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> ** web层 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { WebApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(req.getServletContext()); ** WebApplicationContextUtils是获取容器对象的工具类 ** 参数传入servletContext对象 assert app != null; UserService userService = app.getBean(UserService.class); userService.save(); } ** service层和dao层为标准bean的注入,将dao注入到service,配置文件扫描对应包
spring-MVC基本配置
具体原理 spring-MVC将原本servlet类中公共部分抽取成前端控制器(DispatcherServlet参数获取响应等逻辑),而特有 部分为后端控制器(controller),请求在发送过去之后会被前端控制器拦截,调用处理器映射器组件,处理器映射 器返回处理器对象等,然后前端控制器在调用处理器适配器,处理器适配器会调用处理器(即后端后控制器,我们编 写的),最后返回MovenAndView对象,前端控制器在调用视图解析器,视图解析器解析返回view,最后渲染 重要注解细节 @RequestMapping 请求映射 可作用在类上相当于一级路径,作用在方法上相当于二级路径 ** 参数 method 请求方法匹配 ** params 参数表达式(匹配参数,数组表示) 如 {"username"} 请求参数必须有username {"age!=20"} 请求参数age不能为20 controller类中方法返回值处理器返回的MovenAndView对象 ** 一些限定 forward 请求转发(默认) 如 return "forward:sueecss.jsp" redirect 重定向 如 return "redirect:success.jsp" 视图解析器(viewResolver)的配置中前缀和后缀最后解析view时与controller类方法返回值结合,简化书写 具体流程 1.maven导jar坐标 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.4.RELEASE</version> </dependency> 2.编写controller类并扫描包和相应的组件配置 示例 ** spring-mvc.xml配置文件 (主要配置web层内容) <context:component-scan base-package="controller"/> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> // 配置视图解析器 <property name="prefix" value="/jsp/"/> // 配置view前缀 <property name="suffix" value=".jsp"/> // 配置view后缀 </bean> ** web.xml配置(主要配置DispatcherServlet) <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> // 加载spring-mvc配置文件 <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> // DispatcherServlet的拦截映射匹配路径 <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ** contorller类 @Controller // 将此类交给容器管理 @RequestMapping("/user") public class UserController { @RequestMapping(value = "/query",method = {RequestMethod.GET},params = {"username"}) // 请求路径/user/query get方法 参数必须有username才能进行匹配 public String save(){ System.out.println("web层方法调用了"); return "one"; // 转发跳转到指定路径 相当于/jsp/one.jsp访问 } }
相关文章推荐
- Spring学习-06 Spring+SpringMVC+Druid+jdbcTemplate(xml方式)
- 【Spring-mvc-7天】第一天学习spring mvc
- 学习Spring-MVC的第一天
- 【Java EE 学习 49 下】【Spring学习第一天】【MVC】【注解回顾】
- 项目学习第一天SpringBoot+SpringCloud+SpringMVC+SpringData架构
- Eclipse+Tomcat+springMVC环境搭建与jsp页面学习笔记
- Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发
- 第二章 身份验证——跟我学习springmvc shiro mybatis
- SSH与SSM学习之SSH整合08——Spring整合Hibernate环境操作数据库
- Spring+SpringMVC+MyBatis深入学习及搭建(七)——MyBatis延迟加载
- SpringMVC+mybatis学习一之环境搭建
- Maven学习笔记(五)-Maven整合SSM(spring+springMVC+Mybatis)框架
- 学习 SSM (Spring + Spring MVC + MyBatis) 框架 (一) IDEA Web 项目创建及配置(未完,正在学习中, 不定时更新)
- Spring3.1 MVC注解配置学习
- Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
- Spring Web MVC 原理学习(上)
- Spring Web MVC 原理学习(下)
- SpringBoot、JPA及MVC的学习
- SSH与SSM学习之Spring06——Spring属性注入之p名称空间注入