在eclipse中的javaEE环境下:导入必要的架包
web.xml的配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<? xml version = "1.0" encoding = "UTF-8" ?>
< 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_2_5.xsd"
id = "WebApp_ID" version = "2.5" >
<!-- 配置SpringMVC的DispatcherServlet -->
< servlet >
< servlet-name >springDispatcherServlet</ 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 >springDispatcherServlet</ servlet-name >
< url-pattern >/</ url-pattern >
</ servlet-mapping >
<!-- 配置 HiddenHttpMethodFilter: 把 POST 请求转为 DELETE、PUT 请求 -->
< filter >
< filter-name >HiddenHttpMethodFilter</ filter-name >
< filter-class >org.springframework.web.filter.HiddenHttpMethodFilter</ filter-class >
</ filter >
< filter-mapping >
< filter-name >HiddenHttpMethodFilter</ filter-name >
< url-pattern >/*</ url-pattern >
</ filter-mapping >
</ web-app >
|
spring的bean的配置文件springmvc.xml;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<? 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/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
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">
<!-- 配置自动扫描的包 -->
< context:component-scan base-package = "com.atguigu.springmvc" ></ context:component-scan >
<!-- 配置视图解析器 -->
< bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >
< property name = "prefix" value = "/WEB-INF/views/" ></ property >
< property name = "suffix" value = ".jsp" ></ property >
</ bean >
<!--
default-servlet-handler 将在 SpringMVC 上下文中定义一个 DefaultServletHttpRequestHandler,
它会对进入 DispatcherServlet 的请求进行筛查, 如果发现是没有经过映射的请求, 就将该请求交由 WEB 应用服务器默认的
Servlet 处理. 如果不是静态资源的请求,才由 DispatcherServlet 继续处理
一般 WEB 应用服务器默认的 Servlet 的名称都是 default.
若所使用的 WEB 服务器的默认 Servlet 名称不是 default,则需要通过 default-servlet-name 属性显式指定
-->
< mvc:default-servlet-handler />
<!-- 一般都会配置这个 <mvc:annotation-driven ></mvc:annotation-driven>,
由于。。。requestmapping请求实现不了,使用这个,会使requestmapping请求一定实现
-->
< mvc:annotation-driven ></ mvc:annotation-driven >
<!-- 配置 MultipartResolver ,即配置文件上传的属性-->
< bean id = "multipartResolver"
class = "org.springframework.web.multipart.commons.CommonsMultipartResolver" >
<!-- 默认的字符编码 -->
< property name = "defaultEncoding" value = "UTF-8" ></ property >
<!-- 上传文件的大小 ,最大上传大小-->
< property name = "maxUploadSize" value = "1024000" ></ property >
</ bean >
</ beans >
|
handler类方法:实现文件的上传和下载的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
@Controller
public class SpringMVCTest {
@Autowired
private EmployeeDao employeeDao;
//实现文件的下载
//需要说明的是文件的上传和下载不需要其他配置
@RequestMapping ( "testResponseEntity" )
public ResponseEntity< byte []> testResponseEntity(HttpSession session) throws IOException{
byte [] body= null ;
ServletContext servletContext=session.getServletContext();
///files/abc.txt:所要下载文件的地址
InputStream in=servletContext.getResourceAsStream( "/files/abc.txt" );
body= new byte [in.available()];
in.read(body);
HttpHeaders headers= new HttpHeaders();
//响应头的名字和响应头的值
headers.add( "Content-Disposition" , "attachment;filename=abc.txt" );
HttpStatus statusCode=HttpStatus.OK;
ResponseEntity< byte []> response= new ResponseEntity< byte []>(body, headers, statusCode);
return response;
}
//文件上传,
@RequestMapping ( "/testFileUpload" )
public String testFileUpload( @RequestParam ( "desc" ) String desc,
@RequestParam ( "file" ) MultipartFile file) throws IOException{
System.out.println( "desc:" +desc);
System.out.println( "OriginalFilename" +file.getOriginalFilename());
System.out.println( "InputStream" +file.getInputStream());
return "success" ;
}
}
|
jsp页面:index.jsp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<%@ page language= "java" contentType= "text/html; charset=UTF-8"
pageEncoding= "UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
<html>
<head>
<meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8" >
<title>Insert title here</title>
</head>
<body>
<center>
<!-- 文件上传的表单 -->
<form action= "testFileUpload" method= "post" enctype= "multipart/form-data" >
File:<input type= "file" name= "file" />
Desc:<input type= "text" name= "desc" />
<input type= "submit" value= "Submit" />
</form>
<br><br>
<!-- 文件的下载 -->
<a href= "testResponseEntity" rel= "external nofollow" >Test ResponseEntity</a>
</center>
</body>
</html>
|
success.jsp页面:显示文件上传成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<%@ page language= "java" contentType= "text/html; charset=UTF-8"
pageEncoding= "UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
<html>
<head>
<meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8" >
<title>Insert title here</title>
</head>
<body>
<h3>Success page</h3>
</body>
</html>
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/lxnlxn/p/5938861.html