SpringMVC2
2021-02-17 21:19
标签:词语 isp 表单 obj 方式 bytes 参数 oid 设置 1. 使用原生 Servlet 2. 使用 Map 集合 3. 使用 SpringMVC 中 Model 接口 4.使用 SpringMVC 中 ModelAndView 类 1.访问资源时相应头如果没有设置 Content-Disposition,浏览器默认按照 inline 值进行处理 2)在 jsp 中添加超链接,设置要下载文件 3)编写控制器方法 1. 基于 apache 的 commons-fileupload.jar 完成文件上传.一.SpringMVC 作用域传值的几种方式
在 HanlderMethod 参数中添加作用域对象@RequestMapping("demo1")
public String demo1(HttpServletRequest abc,HttpSession sessionParam){
//request 作用域
abc.setAttribute("req", "req 的值");
//session 作用域
HttpSession session = abc.getSession();
session.setAttribute("session", "session 的值");
sessionParam.setAttribute("sessionParam","sessionParam 的值");
//appliaction 作用域
ServletContext application = abc.getServletContext();
application.setAttribute("application","application 的值");
return "/index.jsp";
}
1)把map中内容放在request作用域中
2)spring会对map集合通过BindingAwareModelMap进行实例化@RequestMapping("demo2")
public String demo2(Map
把内容最终放入到 request 作用域中.@RequestMapping("demo3")
public String demo3(Model model){
model.addAttribute("model", "model 的值");
return "/index.jsp";
}
@RequestMapping("demo4")
public ModelAndView demo4(){
//参数,跳转视图
ModelAndView mav = new ModelAndView("/index.jsp");
mav.addObject("mav", "mav 的值");
return mav;
}
二.文件下载
inline :能显示就显示,不能显示就下载.
2.只需要修改相应头中 Context-Disposition=”attachment;filename=文件名”
1)attachment 下载,以附件形式下载.
2)filename=值就是下载时显示的下载文件名
3.实现步骤
1)导入 apatch 的两个 jar
在 springmvc 中放行静态资源 files 文件夹a href="download?fileName=a.rar">下载a>
@RequestMapping("download")
public void download(String fileName,HttpServletResponse res,HttpServletRequest req) throws IOException{
//设置响应流中文件进行下载
res.setHeader("Content-Disposition", "attachment;filename="+fileName);
//把二进制流放入到响应体中.
ServletOutputStream os = res.getOutputStream();
String path = req.getServletContext().getRealPath("files");
System.out.println(path);
File file = new File(path, fileName);
byte[] bytes = FileUtils.readFileToByteArray(file);
os.write(bytes);
os.flush();
os.close();
}
三.文件上传
2. MultipartResovler 作用:
1)把客户端上传的文件流转换成 MutipartFile 封装类.
2)通过 MutipartFile 封装类获取到文件流
3. 表单数据类型分类
1)在
上一篇:python学了真的很有用吗?当然!赶紧学,不学后悔!
下一篇:python反射