导航:首页 > 文件教程 > spring3mvc下载文件

spring3mvc下载文件

发布时间:2023-07-15 07:03:22

A. 如何搭建spring mvc框架

spring框架jar包
1、下载spring源包
spring地址:http://www.springsource.org/download
我下的是spring-framework-3.1.0.RELEASE-with-docs.zip
下载依赖包:spring-framework-3.0.5.RELEASE-dependencies.zip
注意官网上3.0.3版本以后同版本依赖包不提供下载
2、导入所需jar包
引入dist目录下除了下面三个其余所有包
org.springframework.web.struts-3.1.0.RELEASE.jar
org.springframework.spring-library-3.1.0.RELEASE.libd
org.springframework.web.portlet-3.1.0.RELEASE.jar
引入依赖包下com.springsource.org.apache.commons.logging-1.1.1.jar及com.springsource.org.aopalliance-1.0.0.jar
spring框架配置
1、web.xml配置

[html] view plain
<?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"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
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">
<context-param>
<param-name>contextConfigLocation</param-name>
<!-- 应用上下文配置文件 -->
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配置spring核心servlet -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- url-pattern配置为/,不带文件后缀,会造成其它静态文件(js,css等)不能访问。如配为*.do,则不影响静态文件的访问 -->
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
2、应用上下文配置
spring-servlet.xml即配置用于开启基于注解的springMVC功能,照web.xml中设定,路径为WEB-INF下
[html] view plain
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.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-3.0.xsd">
<!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射-->
<mvc:annotation-driven />
<!-- 启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean -->
<context:component-scan base-package="com.mvc.rest" />
<!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp" />
</beans>
Demo例子
1、根据spring-servlet.xml配置的包路径(com.mvc.rest)新建Constroller
[java] view plain
package com.mvc.rest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class RestConstroller {
public RestConstroller() {}
@RequestMapping(value = "/login/{user}", method = RequestMethod.GET)
public ModelAndView myMethod(HttpServletRequest request,HttpServletResponse response,
@PathVariable("user") String user, ModelMap modelMap) throws Exception {
modelMap.put("loginUser", user);
return new ModelAndView("/login/hello", modelMap);
}
@RequestMapping(value = "/welcome", method = RequestMethod.GET)
public String registPost() {
return "/welcome";
}
}
2、建jsp视图
视图路径在spring-servlet.xml配置(/WEB-INF/view/),据上述RestConstroller 类,我们在WEB-INF下建立view目录,在view下建立welcome.jsp及login/hello.jsp
welcome.jsp随意,hello.jsp代码如下:
[html] view plain
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'hello.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
</head>
<body>
你好:<%=request.getAttribute("loginUser") %>,现在时间是<%= new Date() %>
</body>
</html>
3、部署访问
http://localhost:8080/SpringMvcDemo/welcome

B. java-SpringMVC 后台怎么获取前台jsp页面中file中的文件

1.打开SpringMVC的文件上传功能:***-servlet.xml中配置

C. springmvc使用poi导出excel需要什么jar

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

这里的方法支持导出excel至项目所在服务器,或导出至客户端浏览器供用户下载,下面我把两个实例都放出来。

1.下载所需POI的jar包,并导入项目。

2.添加一个User类,用于存放用户实体,类中内容如下:

1 package com.mvc.po;
2
3 public class User {
4 private int id;
5 private String name;
6 private String password;
7 private int age;
8
9 public User() {
10
11 }
12
13 public User(int id, String name, String password, int age) {
14 this.id = id;
15 this.name = name;
16 this.password = password;
17 this.age = age;
18 }
19 public int getId() {
20 return id;
21 }
22 public void setId(int id) {
23 this.id = id;
24 }
25 public String getName() {
26 return name;
27 }
28 public void setName(String name) {
29 this.name = name;
30 }
31 public String getPassword() {
32 return password;
33 }
34 public void setPassword(String password) {
35 this.password = password;
36 }
37 public int getAge() {
38 return age;
39 }
40 public void setAge(int age) {
41 this.age = age;
42 }
43 }

3.添加一个UserController类,类中内容如下:

1 package com.mvc.controller;
2
3 import java.text.SimpleDateFormat;
4 import java.util.Date;
5
6 import javax.servlet.ServletOutputStream;
7 import javax.servlet.http.HttpServletResponse;
8
9 import org.springframework.stereotype.Controller;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.bind.annotation.ResponseBody;
13
14 import com.mvc.po.User;
15 import com.mvc.service.UserService;
16
17 @Controller
18 public class UserController {
19
20 @Autowired
21 private UserService userService;
22
23 @RequestMapping("/export.do")
24 public @ResponseBody String export(HttpServletResponse response){
25 response.setContentType("application/binary;charset=UTF-8");
26 try{
27 ServletOutputStream out=response.getOutputStream();
28 String fileName=new String(("UserInfo "+ new SimpleDateFormat("yyyy-MM-dd").format(new Date())).getBytes(),"UTF-8");
29 response.setHeader("Content-disposition", "attachment; filename=" + fileName + ".xls");
30 String[] titles = { "用户编号", "用户姓名", "用户密码", "用户年龄" };
31 userService.export(titles, out);
32 return "success";
33 } catch(Exception e){
34 e.printStackTrace();
35 return "导出信息失败";
36 }
37 }
38 }

4.添加一个接口类UserService和实现类UserServiceImpl,类中内容如下:

1 package com.mvc.service;
2
3 import javax.servlet.ServletOutputStream;
4 import com.mvc.po.User;
5
6 public interface UserService {
7 public void export(String[] titles, ServletOutputStream out);
8 }

1 package com.mvc.service.impl;
2
3 import java.text.SimpleDateFormat;
4 import java.util.List;
5
6 import javax.servlet.ServletOutputStream;
7
8 import com.mvc..UserDAO;
9 import com.mvc.po.User;
10 import com.mvc.service.UserService;
11
12 import org.apache.poi.hssf.usermodel.HSSFCell;
13 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
14 import org.apache.poi.hssf.usermodel.HSSFRow;
15 import org.apache.poi.hssf.usermodel.HSSFSheet;
16 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
17 import org.springframework.beans.factory.annotation.Autowired;
18 import org.springframework.stereotype.Service;
19
20 @Service
21 public class UserServiceImpl implements UserService {
22
23 @Autowired
24 private UserDAO userDAO;
25
26 @Override
27 public void export(String[] titles, ServletOutputStream out) {
28 try{
29 // 第一步,创建一个workbook,对应一个Excel文件
30 HSSFWorkbook workbook = new HSSFWorkbook();
31 // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
32 HSSFSheet hssfSheet = workbook.createSheet("sheet1");
33 // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
34 HSSFRow hssfRow = hssfSheet.createRow(0);
35 // 第四步,创建单元格,并设置值表头 设置表头居中
36 HSSFCellStyle hssfCellStyle = workbook.createCellStyle();
37 //居中样式
38 hssfCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
39
40 HSSFCell hssfCell = null;
41 for (int i = 0; i < titles.length; i++) {
42 hssfCell = hssfRow.createCell(i);//列索引从0开始
43 hssfCell.setCellValue(titles[i]);//列名1
44 hssfCell.setCellStyle(hssfCellStyle);//列居中显示
45 }
46
47 // 第五步,写入实体数据
48 List<User> users = userDAO.query();
49
50 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
51 if(users != null && !users.isEmpty()){
52 for (int i = 0; i < users.size(); i++) {
53 hssfRow = hssfSheet.createRow(i+1);
54 User user = users.get(i);
55
56 // 第六步,创建单元格,并设置值
57 int userid = 0;
58 if(user.getId() != 0){
59 userid = user.getId();
60 }
61 hssfRow.createCell(0).setCellValue(userid);
62 String username = "";
63 if(user.getName() != null){
64 username = user.getName();
65 }
66 hssfRow.createCell(1).setCellValue(username);
67 String password = "";
68 if(user.getPassword() != null){
69 password = user.getPassword();
70 }
71 hssfRow.createCell(2).setCellValue(password);
72 int age = 0;
73 if(user.getAge() != 0){
74 age = user.getAge();
75 }
76 hssfRow.createCell(3).setCellValue(age);
77 }
78 }
79
80 // 第七步,将文件输出到客户端浏览器
81 try {
82 workbook.write(out);
83 out.flush();
84 out.close();
85
86 } catch (Exception e) {
87 e.printStackTrace();
88 }
89 }catch(Exception e){
90 e.printStackTrace();
91 throw new Exception("导出信息失败!");
92 }
93 }
94 }

5.添加一个接口类UserDAO和实现类UserDAOImpl,类中内容如下:

1 package com.mvc.;
2
3 import java.util.List;
4 import com.mvc.po.User;
5
6 public interface UserDAO {
7 List<User> query();
8 }

1 package com.mvc..impl;
2
3 import java.util.List;
4 import java.sql.ResultSet;
5 import java.sql.SQLException;
6
7 import com.mvc..UserDAO;
8 import com.mvc.po.User;
9
10 import org.springframework.stereotype.Repository;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.jdbc.core.JdbcTemplate;
13 import org.springframework.jdbc.core.RowMapper;
14
15 @Repository
16 public class UserDAOImpl implements UserDAO {
17
18 @Autowired
19 private JdbcTemplate jdbcTemplate;
20
21 public List<User> query() {
22 return this.jdbcTemplate.query("select * from student",
23 new RowMapper<User>() {
24 public User mapRow(ResultSet rs, int arg1)
25 throws SQLException {
26 return new User(rs.getInt("sId"),
27 rs.getString("sName"), rs.getString("sPwd"), rs
28 .getInt("sAge"));
29 }
30 });
31 }
32 }

这样就完成了excel导出至客户端浏览器,当然有时候也会用到导出excel至服务器上。只需要对本文步骤4中的第七步文件输出方式进行修改,如下:

1 // 第七步,将文件存到指定位置
2 try {
3 FileOutputStream fileOutputStream = new FileOutputStream("C:/user.xls");//指定路径与名字和格式
4 workbook.write(fileOutputStream);//讲数据写出去
5 fileOutputStream.close();//关闭输出流
6 } catch (Exception e) {
7 e.printStackTrace();
8 }

然后去除controller类中的out参数设置就ok了。也可以看出其实两种方式只是最终保存方式不同,其他步骤是共通的。

D. 《看透SpringMVC源代码分析与实践》pdf下载在线阅读,求百度网盘云资源

《看透Spring MVC》(韩路彪)电子书网盘下载免费在线阅读

资源链接:

链接:https://pan..com/s/1OzllRtwg7BeNHKqPpG4Nsw

提取码:e5xd

书名:看透Spring MVC

作者:韩路彪

豆瓣评分:6.8

出版社:机械工业出版社

出版年份:2016-1-1

页数:309

内容简介:

国内资深Web开发专家根据Spring MVC全新技术撰写,基于实际生产环境,从基础知识、源代码和实战3个维度对Spring MVC的结构和实现进行详细讲解

全面介绍Spring MVC的架构、原理、核心概念和操作,通过案例完整呈现Tomcat的实现,系统总结Spring MVC九大组件的处理以及常用的技巧和实践

在大型网站和复杂系统的开发中,Java具有天然的优势,而在Java的Web框架中Spring MVC以其强大的功能以及简单且灵活的用法受到越来越多开发者的青睐。本书不仅详细地分析Spring MVC的结构及其实现细节,而且讲解网站的不同架构及其演变的过程,以及网络底层协议的概念及其实现方法,帮助读者开发更高效的网站。

通过本书,你将:

系统学习网站的各种架构以及每种架构所针对的问题。

深入分析Web底层协议及其实现方法。

系统理解Spring MVC框架,为灵活开发高质量产品打下坚实基础。

深入理解Spring MVC的编程技巧和设计理念,提高综合思考、整体架构的能力。

学习作者自研的源代码分析方法——器用分析法,高效学习程序源代码。

E. 一个简单的SpringMVC需要哪些jar包

spring依赖的jar包如下:
下面是每个jar包的说明
spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar。
spring-src.zip就是所有的源代码压缩包。
除了spring.jar 文件,Spring 还包括有其它21 个独立的jar 包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar 包,而不必引入整个spring.jar 的所有类文件。
spring-core.jar
这个jar 文件包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
外部依赖Commons Logging, (Log4J)。
spring-beans.jar
这个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI 支持,引入spring-core.jar 及spring-beans.jar 文件就可以了。
外部依赖spring-core,(CGLIB)。
spring-aop.jar
这个jar 文件包含在应用中使用Spring 的AOP 特性时所需的类和源码级元数据支持。使用基于AOP 的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。
外部依赖spring-core, (spring-beans,AOP Alliance, CGLIB,Commons Attributes)。
spring-context.jar
这个jar 文件为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。
外部依赖spring-beans,

F. SpringMVC表单提交时,多文件上传和单个文件上传有些什么区别

基于Spring3 MVC实现基于form表单文件上传
一:杂项准备
环境搭建参考这里-http://blog.csdn.net/jia20003/article/details/8471169
二:前台页面
根据RFC1867,只要在提交表单中声明提交方法为POST,enctype属
性声明为multipart/form-data, action声明到要提交的url即可。具体如下:

三:spring配置
使用spring3的MultipartHttpReqest来接受来自浏览器的发送的文件内容。
需要配Multipart解析器在express-servlet.xml中。内容如下:

同时还需要在maven的pom.xml文件添加apachefileupload与common-io两个包。

四:Controller中方法实现

[java] view plain
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public ModelAndView getUploadFile(HttpServletRequest request, HttpServletResponse response) {
System.out.println("fucking spring3 MVC upload file with Multipart form");
String myappPath = request.getSession().getServletContext().getRealPath("/");
try {
if (request instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
System.out.println("fucking spring3 MVC upload file with Multipart form");
// String myappPath = multipartRequest.getServletContext().getRealPath("/");
// does not work, oh my god!!
MultipartFile file = multipartRequest.getFiles("userfile1").get(0);
long size = file.getSize();
byte[] data = new byte[(int) size];
InputStream input = file.getInputStream();
input.read(data);

// create file, if no app context path, will throws access denied.
// seems like you could not create any file at tomcat/bin directory!!!
File outFile = new File(myappPath + File.separator + file.getOriginalFilename());
if(!outFile.exists()) {
outFile.createNewFile();
System.out.println("full path = " + outFile.getAbsolutePath());
} else {
System.out.println("full path = " + outFile.getAbsolutePath());
}
FileOutputStream outStream = new FileOutputStream(outFile);

outStream.write(data);
outStream.close();
input.close();
}
} catch (Exception e) {
e.printStackTrace();
}

return new ModelAndView("welcome");
}

G. 如何实现springmvc将返回的给前端的pdf文件放在浏览器里预览

1,在web路径下建立一个uploadFiles文件夹。

2,在springMVC里映射文件就像映射静态文件那样。

<mvc:resources mapping="/pdf/**" location="/uploadFiles/"/>

3,写个controller返回PDF的URL路径。

@Controller
@CrossOrigin(origins = "*")
public class PDFController {

@ResponseBody
@RequestMapping(value = "/pdf", method = RequestMethod.GET)
public String pdfDownload() throws IOException
{
String retString = null;
String dir = XXXX文件在服务器中路径。
String path = httpServletRequest.getRequestURL() + dir.substring(dir.lastIndexOf('\'));
retString = path.replaceAll("\\","/");
Map<String,Object >map = new HashMap<>();
map.put("code",0);
map.put("pdf",retString);
return JSON.toJSONString(map);
}
}

4,返回的JSON数据。

{"code":0,"pdf":"8080/pdf/1472128890165sample.pdf"},前面加上http://127.0.0.1:。

5,浏览器中直接打开pdf这个url就可以预览PDF啦。

阅读全文

与spring3mvc下载文件相关的资料

热点内容
js绑定下拉框数据库数据 浏览:448
cad文件怎么复制到另一个文件里边 浏览:858
dxp钻孔文件 浏览:631
iphone大悦城换机 浏览:538
找结婚对象上什么网站 浏览:974
学生信息管理系统程序设计报告 浏览:640
微信文件怎么删除怎么恢复 浏览:407
编程程序怎么复制 浏览:467
文件更改 浏览:327
冰点文件路径 浏览:730
软件一点开文件就关闭 浏览:88
网络如何把人捧红 浏览:961
软件传输文件 浏览:184
密码记录器ios 浏览:412
两个电脑数据怎么一样 浏览:829
顺丰有什么买东西的app 浏览:377
数位板word 浏览:939
win7宽带连接出现多重网络 浏览:268
更改程序图标c语言 浏览:629
网络电视偷停怎么办 浏览:418

友情链接