总结
SpringMVC
使用springMVC步骤
-
导包
-
之前的spring基础包要导进来(四个核心包、日志包、还有springmvc2个包、servlet包、aop包和test包)
-
spring-webmvc-4.1.2.RELEASE.jar -- SpringMVC核心包 spring-web-4.1.2.RELEASE.jar -- Spring对Web项目项目的支持
-
-
在web.xml中配置
-
头部
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1" metadata-complete="false"> </web-app>
-
配置核心控制器
<!-- 配置核心控制器 --> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- tomcat对springmvc进行管理 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <!-- 设置加载核心控制器在访问之前加载 1-3都有使用了--> <load-on-startup>4</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <!-- 对所有进行拦截 --> <url-pattern>/</url-pattern> </servlet-mapping>
-
添加过滤器对编码进行设置
<!-- 添加过滤器对编码进行设置 --> <filter> <filter-name>filter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <!-- 这个地方的encoding是指定的,不能改 --> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>filter</filter-name> <!-- 对所有进行过滤 --> <url-pattern>/*</url-pattern> </filter-mapping>
-
-
spring-mvc.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 " > <!-- 释放静态资源 --> <mvc:default-servlet-handler/> <!-- 扫描指定的包 --> <context:component-scan base-package="cn.itsource"></context:component-scan> <!-- 开启注解 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
通过springMVC接收参数的方式
-
类
//把当前类交给spring管理 @Controller @RequestMapping("/login")//可以通过这个访问这个类 public class GetParam {
类中的方法
-
通过HttpServletRequest接收参数
@RequestMapping("/form1") public void form1(HttpServletRequest request){
-
通过普通参数接收,但是参数要对应
@RequestMapping("/form2") public void form2(String name, String pwd){
-
通过实体类接收参数
@RequestMapping("/form3") public void form3(User user){
-
获取地址中传入的id
@RequestMapping("/form4/{id}") public void form4(@PathVariable("id") long id){
-
springMVC设置参数并页面跳转
-
通过HttpServletRequest存值跳转(设置了视图解析,所以是model2)
@RequestMapping("/form5") public String form5(HttpServletRequest request){ request.setAttribute("message5", "采菊东篱下,悠然见南山"); return "model2"; }
-
通过Model存值跳转
@RequestMapping("/form6") public String form6(Model model){ model.addAttribute("message6", "山气日夕佳,飞鸟相与还"); return "model2"; }
-
通过ModelAndView存值跳转
@RequestMapping("/form7") public ModelAndView form7(ModelAndView model){ model.addObject("message7", "此中有真意,欲辨已忘言。"); model.setViewName("model2"); return model; }
跳过视图解析器的方法
-
请求转发
"forward:/emp/list.jsp"
-
重定向
"redirect:http://www.baidu.com"
其他
- Controller的作用是把当前的类交给Spring管理
- 和他有相同效果的有Component(通用)、Repository(持久层)、Service(业务层)、Controller(控制层)