SpringMVC基础篇

内容概述

1.SpringMVC 概述

2.SpringMVC  HelloWorld

3.使 @RequestMapping 映射请求

4.映射请求参数 & 请求头

5.处理模型数据

6.视图和视图析器

7.RESTful CRUD

8.SpringMVC  单标签 &处 态资源

9.数据转换 & 数据格式化 & 数据校

10.处 JSON使 HttpMessageConverter

11.国际化

12.文件上 传

13.使用拦截器  

14.异常处理

15.SpringMVC 运流

16.在 Spring  环境下使用SpringMVC

17.SpringMVC 对比 Struts2

<一>SpringMVC概述

Spring  为 展现层 提供基于 MVC  设计 念理念

Web 框架是 前 最主流 MVC  框架 之一

Spring3.0 后全 Struts2成 为 最 优 MVC  框架

Spring MVC 有过 一套 MVC 注入让 POJO 成为处理请

求控制器无法实现的任何接口。

支持 REST 风格 URL 请 求

了松散 耦合可插拔组件结构比其他 MVC 框架更具

扩展性和灵活性

<二>编写第一个HelloWorld

步骤

加入 jar 包 –

在 web.xml 中配置 DispatcherServlet –

加入 Spring MVC 文件 –

编写处 请求 处器并 标识为处器 –

编写视图 –

HelloWorld加入 jar 包

需要加入JAR包

HelloWorld加入 jar 包

commons-logging-1.1.3.jar –

spring-aop-4.0.0.RELEASE.jar –

spring-beans-4.0.0.RELEASE.jar –

spring-context-4.0.0.RELEASE.jar –

spring-core-4.0.0.RELEASE.jar –

spring-expression-4.0.0.RELEASE.jar –

spring-web-4.0.0.RELEASE.jar –

spring-webmvc-4.0.0.RELEASE.jar

1、 Web.xml文件中配置

1、<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<!--  配置加载dispatcherServlet -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 加載springmvc配置文件 -->
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 将请求交给 dispatcherServlet 处理所有请求-->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

疑问:load-on-startup 作用?

在servlet的配置当中,<load-on-startup>5</load-on-startup>的含义是:

标记容器是否在启动的时候就加载这个servlet。

当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;

当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。

正数的值越小,启动该servlet的优先级越高。

2.加入SpringMVC配置文件

1.<?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-4.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
	<!-- 配置自定扫描的包 -->
	<context:component-scan base-package="com.xhz.controller"></context:component-scan>
   
	<!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>

</beans>

2、 编辑为请求处理器

@Controller
public class HelloWord {

	@RequestMapping("/test")
	public String test() {
		System.out.println("this is test helloWord");
		return "success";
	}

}

<三>使用@RequestMapping 映射请求

1. @RequestMapping 除了修饰方法, 还可来修饰类 2. 1). 类定义处: 提供初步的请求映射信息。相对于 WEB 应用的根目录

2. 方法处: 提供进一步的细分映射信息。 相对于类定义处的 URL。若类定义处未标注 @RequestMapping,则方法处标记的 URL

  相对于 WEB 应用的根目录

<四>映射 请 求参数、 请 求方法或 请 求

SpringMVC如何重定向?

1、 如何字符串带redirect则重定向

实例 “redirect:/index.jsp” 则重定向跳转到index.jsp页面

 如何通过 SpringMVC返回JSON?

1、 在请求方法上加上@ResponseBody,通过返回值类型自动转换JSON

2、 添加Jar包

jackson-annotations-2.4.1.jar

jackson-core-2.4.1.jar

jackson-databind-2.4.1.jar

jackson-core-asl-1.9.13.jar

jackson-mapper-asl-1.9.13.jar

3、 需要在SpringMVC配置文件配置如下信息:

<!-- 开启注解 -->
<mvc:annotation-driven />
  <!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
	<bean id="mappingJacksonHttpMessageConverter"
		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=UTF-8</value>
			</list>
		</property>
	</bean>

	<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
	<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters">
			<list>
				<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
			</list>
		</property>
	</bean>

SpringMVC文件上传?

1、SpringMVC配置文件中配置上传文件信息

<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> 
 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8" />
<!--1024*200即200k-->  
       <property name="maxUploadSize" value="204800" />
</bean>

2、前端页面实例

<form action="upload/" method="post" enctype="multipart/form-data">
		上传文件<input type="file" name="file"> <input type="submit"
			value="提交">
</form>

3、后端代码实例

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String upload(@RequestParam(value = "file", required = false) MultipartFile file,HttpServletRequest request) {
String path = "c://xhz";
String fileName = file.getOriginalFilename();
File targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
// 保存try {
file.transferTo(targetFile);
		} catch (Exception e) {

		}
		return "success";
	}

猜你喜欢

转载自blog.csdn.net/qq_35393693/article/details/80482615