问候 SpringMVC 他大爷
<<SpringMvc.rar>>
SpringMVC 简介
SpringMVC 版 HelloWorld 实现
项目结构(lib中必须含有使用的jar包)
配置web.xml
<servlet> <servlet-name>springmvc</servlet-name> <!-- 核心的Service类,负责所有请求的分发 --> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- sprin-mvc.xml配置文件用来定义解析视图 --> <param-value>classpath:spring-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- 配置拦截所有的.do文件,*号为通配符 --> <url-pattern>*.do</url-pattern> </servlet-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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" 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">
<!-- 使用注解的包,用来自动扫描包所包含的子集 --> <context:component-scan base-package="com.java1234"/> <!-- 视图解析器,配置jsp文件夹,匹配jsp文件 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp"></property> </bean>
</beans> |
配置controller控制层
配置jsp(在WEB-INF/jsp文件夹下)
配置index.html
通过指定的url访问,获取到请求后,通过web.xml的配置分发给controller层处理请求,
通过返回的helloWorld,到springmvc.xml配置的指定路径查找jsp文件(文件名为helllWorld.jsp),jsp页面做出处理
SpringMVC 控制器
@RequestMapping 请求映射(使用注解配置请求时添加用来区分的url信息)
配置Controller层
@RequestParam 请求参数
配置Controller层
ModelAndView 返回模型和视图
配置Controller层
配置index.jsp文件
使用java代码跳转请求
配置list.jsp文件(由于访问的list.do,springmvc直接自动匹配jsp页面处理请求)
配置头信息
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> |
配置
SpringMVC 对象属性自动封装
配置add.jsp页面(使用绝对路径不容易出错)
${pageContext.request.contextPath} |
SpringMVC POST 请求乱码解决
配置web.xml(解决乱码问题)
<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>*.do</url-pattern> </filter-mapping> |
Controller 内部转发和重定向
配置Controller层
添加 修改 (带数据用转发,转发浏览器地址不变)
删除
SpringMvc 对 Servlet API 的支持
SpringMvc 对 Json 的支持
添加jar包
<<jackson.zip>>
把对象自动转化为json格式
配置spring-mvc.xml
配置头信息
<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: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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> |
配置
<!-- 支持对象与json的转换。 --> <mvc:annotation-driven/> |
配置controller层
SpringMVC处理json(实际开发使用Springmvc的json注解处理,不灵活)
传统的json处理(实际开发使用自己封装的,Json处理使用JSON-lib框架)
<<ResponseUtil.java>>
放在util包中
配置jsp(测试json)
Rest 风格的资源 URL
Restful 风格的资源 URL 简介
配置web.xml
配置Controller层
不带参数的url请求
带参数的url请求
@PathVariable 获取 Url 变量
配置list.jsp页面(Restful 风格的请求)
浏览器url请求()
配置detail.jsp页面(Restful 风格的请求)
图片的请求(显示没有请求到图片,因为拦截了所有类型的请求)
配置jsp
解决办法(将请求的文件路径,映射到静态资源路径处理)
SpringMvc 对 Rest 风格的支持(路径映射)建议使用后缀为html风格避免不必要的操作
SpringMvc 对静态资源的处理(css)
配置spring-mvc.xml
//注解驱动 <mvc:annotation-driven/> //将resources路径映射到images路径 <mvc:resources mapping="/resources/**" location="/images/"/> //将resources2路径映射到css路径 <mvc:resources mapping="/resources2/**" location="/css/"/> |
重新配置jsp请求路径
SpringMvc 文件上传
配置spring-mvc.xml
<bean id="multipartResolver" <!-- 加入的类 --> class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置编码 --> <property name="defaultEncoding" value="UTF-8"/> <!-- 设置最大上传量10m --> <property name="maxUploadSize" value="10000000"/> </bean> |
导入jar包
<<com.springsource.org.apache.commons.io-1.4.0.jar>>
<<com.springsource.org.apache.commons.fileupload-1.2.0.jar>>
SpringMvc 单文件上传
配置controller层
配置上传文件请求的页面
(tmocat被springmvc认为是插件,文件被上传到plugln路径下,实际使用没有影响)
SpringMvc 多文件上传
配置controller层(类似Struts2也是用数组存放)
配置上传文件请求的页面