springMVC框架基础篇
什么是springmvc
springmvc出自于spring组织下的一个开源的免费的控制层框架,和Struts2都属于表现层的框架
springmvc的作用
a: 接受前端传送的参数
b: 将处理好的数据放入Request域中,供jsp使用
c: 控制返回的视图页面
SpringMVC处理流程
环境搭建
导包
配置文件
1: 在web.xml里面配置前端控制器(全局调度中心类)
<!-- 前端控制器 -->
<!--
DispatcherServlet: springmvc的核心控制器
-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<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>
<!--
*.action: 拦截所有以.action结尾的请求
/*: springmvc不支持
/: 拦截所有请求,放行.jsp请求
-->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
2: springmvc配置文件
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<context:component-scan base-package="com.heima.action"/>
<!-- springmvc的三大组件之一:视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"/>
<!--
prefix: 前缀
suffix: 后缀
-->
<property name="prefix" value="/WEB-INF/jsps/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- springmvc默认找的是spring3.0的映射器和适配器
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
-->
<!--
相当于配置了最新版本注解方式的映射器和适配器
-->
<mvc:annotation-driven/>
</beans>
3: 日志配置文件
解决提交乱码问题
使用springMVC提供的filter
<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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
转换器
一般用于日期和字符串转换
自定义转换器
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;
public class MyCoustomerConverter implements Converter<String, Date> {
@Override
public Date convert(String str) {
try {
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str);
return date;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
修改springMVC.xml
<bean id="myConversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.xiaob.converter.MyCoustomerConverter"/>
</set>
</property>
</bean>
<mvc:annotation-driven conversion-servic="myConversionService"/>