1.SpringMVC是Spring体系组成的一部分,可以与Spring全家桶无缝衔接
2.SpringMVC框架从运行效率和开发效率,比Struts2高很多
1.收集参数
2.调用业务
3.流程跳转
环境搭建:
1.引入相关依赖
junit
junit
4.12
test
javax.servlet
servlet-api
2.5
provided
org.springframework
spring-core
4.3.2.RELEASE
org.springframework
spring-context
4.3.2.RELEASE
org.springframework
spring-context-support
4.3.2.RELEASE
org.springframework
spring-aop
4.3.2.RELEASE
org.springframework
spring-expression
4.3.2.RELEASE
org.springframework
spring-aspects
4.3.2.RELEASE
org.springframework
spring-tx
4.3.2.RELEASE
org.springframework
spring-jdbc
4.3.2.RELEASE
org.springframework
spring-beans
4.3.2.RELEASE
org.springframework
spring-web
4.3.2.RELEASE
org.springframework
spring-test
4.3.2.RELEASE
test
org.springframework
spring-webmvc
4.3.2.RELEASE
```
2.初始化SpingMVC的核心类 (web.xml)
<web-app>
<servlet>
<servlet-name>dispatcherServletservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:dispatcher.xmlparam-value>
init-param>
<load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
<servlet-name>dispatcherServletservlet-name>
<url-pattern>*.dourl-pattern>
servlet-mapping>
web-app>
编码步骤:
1.开发Controller
package com.baizhi.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//自动创建控制器的对象
@Controller
public class FirstController {
/*
* 方法语法:public String 方法名 throws Exception
* 访问:SpringMVC_Day1/first.do
* 返回值:代表跳转路径
* */
@RequestMapping("/first")
public String first() throws Exception{
System.out.println("我是第一个SpringMVC程序");
//跳转到index.jsp中
return "index";
}
}
2.SpringMVC配置文件中进行配置 (只需要配置一次)
<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">
<context:component-scan base-package="com.baizhi.controller">context:component-scan>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/">property>
<property name="suffix" value=".jsp">property>
bean>
<mvc:annotation-driven>mvc:annotation-driven>
beans>
作用: 1.指定访问的URL路径
类:相当于struts2中的namespace
方法:相当于struts2中的name
2.指定被请求的方式
method = RequestMethod.GET 指定该方法 只可以被GET方式访问
method = RequestMethod.POST 指定该方法 只可以被POST方式访问
method = {RequestMethod.GET,RequestMethod.POST}) 指定该方法 既可以被GET方式访问 又可以被POST方式访问
注意:
i.SpringMVC在接收数据时,对于8中基本类型+String进行自动类型转换
ii.当传入参数的键与接收数据的形参名不一致,可以通过@RequestParam注解解决
注意:
1.springmvc对于日期类型转换时,只针对yyyy/MM/dd 格式进行转换
@DateTimeFormat(pattern =“yyyy-MM-dd”) 指定接收日期时的格式
再使用 type=“date” 时 默认看着为/形式 实为—形式
设置字符集过滤器 web.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
Forward: 一次请求 地址栏不变 可以使用request作用域传值
Redirect: 多次请求 地址栏改变 不可以使用request作用域传值
注意:自定义跳转方式时,视图解析器将失效
Controller---------->JSP
1.request 作用域
Controller---------->Controller
建议:Action跳Action时 使用Forward跳转
1.使用Model或者ModelMap替换Request作用域 (建议使用·)
2.@SessionAttributes 注解的使用(了解)
作用: 可以使用@SessionAttributes注解 替换Session作用域
前提: 必须在request作用域中存储一份
使用:
@SessionAttributes(“name”) //把Request作用域中的数据转存到Session作用域中
环境搭建:
1.引入相关依赖
junit
junit
4.11
test
jstl
jstl
1.2
javax.servlet
servlet-api
2.5
org.springframework
spring-core
4.3.2.RELEASE
org.springframework
spring-beans
4.3.2.RELEASE
org.springframework
spring-web
4.3.2.RELEASE
org.springframework
spring-expression
4.3.2.RELEASE
org.springframework
spring-aop
4.3.2.RELEASE
org.springframework
spring-context
4.3.2.RELEASE
org.springframework
spring-context-support
4.3.2.RELEASE
org.springframework
spring-aspects
4.3.2.RELEASE
org.springframework
spring-jdbc
4.3.2.RELEASE
org.springframework
spring-webmvc
4.3.2.RELEASE
org.mybatis
mybatis
3.2.8
org.mybatis
mybatis-spring
1.3.2
mysql
mysql-connector-java
5.1.38
commons-dbcp
commons-dbcp
1.4
2.初始化配置 web.xml
SpringMVC:
i.解决POST方法接收数据乱码
2.配置SpringMVC核心类
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:dispatcher.xml
1
dispatcherServlet
*.do
Spring:
1.Spring的监听工厂
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
开发步骤:
1.建表
2.写实体
3.定义DAO
4.Mapper文件实现DAO接口
5.Spring配置文件中配置mybatis的相关内容
6.定义Service接口
7.实现Service接口
@Service
@Autowire
@Transaction
8.开发控制器
package com.baizhi.action;
import com.baizhi.entity.User;
import com.baizhi.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/user")
public class UserController {
//给Service做对应的注入
@Autowired
private UserService userService;
//注册 //接收数据
@RequestMapping("/register")
public String register(User user) throws Exception{
//调用Service
userService.register(user);
//默认视图解析器
return "index";
}
}
9.SpringMVC配置文件配置
<contex:component-scan base-package="com.baizhi.action">contex:component-scan>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/">property>
<property name="suffix" value=".jsp">property>
bean>
<mvc:annotation-driven>mvc:annotation-driven>