ssm框架 springMVC

SpringMVC 基础知识:
SSM:SpringMVC + Spring + MyBatis。
SSH2:Struts2 + Spring + Hibernate,淹没了。
spring已经成为Javaee开发事实上的标准。1.0版本。2.0版本。5.x版本。
框架不是语法,也不是理论知识,只是提高生产效率的工具而已。
SpringMVC:主要负责web三层架构的效率开发提交的。
@RequestMapping 表示响应一切类型的请求,比如:get、post、delete、put、patch、options
@PostMapping 表示仅响应Post类型的请求。
一、xml的配置:
1、web.xml
配置中文编码管理器:一般配置为utf-8
配置springmvc配置:注意的就是url-pattern 的配置路径
web.xml 文件配置案例:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <!-- 一、配置中文编码过滤器,统一utf-8编码 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 二、springmvc配置,注意:url-pattern可以配置成*.do或者*.action或者/,但是不能配置成/* --> <!-- /*:可以匹配所有请求,但不能匹配带扩展名的请求,比如*.do,*.action了 --> <!-- *.action:匹配所有以aciotn结尾的请求 --> <!-- /:可以匹配所有请求,包括静态资源请求 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 配置springmvc的配置文件路径 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <display-name>lession0427</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
配置SpringMVC 中的springmvc.xml 位于class下面的xml
<?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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 一、配认springmvc扫描包路径,指定要扫描的基础包,springmvc会自动扫描指定的包及其子包 --> <context:component-scan base-package="com.situ.controller" /> <!-- 二、静态资源配置,localtion表示静态资源存储路径,mapping指请求路径 --> <mvc:resources location="/assets/" mapping="/assets/**"></mvc:resources> <!-- 配置拦截器 --> <mvc:interceptors> <!-- 第一个拦截器,有顺序的。/*可以匹配任意请求类型,包括带扩展名的请求 --> <mvc:interceptor> <mvc:mapping path="/**/*"/> <mvc:exclude-mapping path="/a/hello"/> <mvc:exclude-mapping path="/**/*.css"/> <bean class="com.situ.interceptor.LoginInterceptor" /> </mvc:interceptor> </mvc:interceptors> <!-- 三、视图层配置。配置使用jsp作为模板引擎 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前缀 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 后缀 --> <property name="suffix" value=".jsp" /> </bean> <!-- 四、激活基于注解的配置 @RequestMapping, @ExceptionHandler,数据绑定,@NumberFormat, @DateTimeFormat,@Controller,@Valid,@RequestBody,@ResponseBody等 --> <mvc:annotation-driven /> </beans>
二、使用spring 想域中存放数据:
使用就是三种:Map、Model、ModelMap
使用这三种存放数据,就可以直接在jsp中进行调用
三、使用springmvc读取jsp中传回的参数问题
使用相同类型的参数名即可
如果参数名不同,使用@RequestParam(name = "jsp中传回的参数")
如:将jsp中的password 数据在Controller 中用pad接受就可以写成:@RequestParam(name = "password")String pad
也可以直接绑定到实例化的对象上,进行参数绑定。
四、异常处理:两种方式
一般使用全局处理异常
1、使用注解:@ControllerAdvice + @ExceptionHandler 实现全局捕获异常
2、定义异常解析类:实现接口HandlerExceotionResolver ,实现方法resolveException
五、拦截器
Interceptor,是springmvc中的组件
拦截器不拦截非法请求,也就是在controller 中实现的方法
拦截器和jsp到servlet 的过滤器的区别:
1、拦截器不拦截非法请求,而过滤器拦截
2、过滤器是处理到servlet的请求,而拦截器是处理通过servlet到controller 的请求
六、注解:
@RequestMapping 表示响应一切类型的请求,比如:get、post、delete、put、patch、 options
@PostMapping 表示仅响应Post类型的请求。
@GetMapping:仅响应get类型的请求
@ExceptionHandler
七、使用springmvc重新向和转发:
转发:forward
重定向:redirect:
八、在springmvc中处理ajax
就是:
@RequestMapping注解上,添加produces属性,指定值为applicaiton/json;charset=utf8 同时指定@ResponseBody注解
本文作者:刘广法,转载注明出处。