${requestScope.a}
${requestScope.user.uname}
地址栏输入:http://localhost:8080/springmvc03/user.do method=reg
结果为:
基于spring 3.0mvc 框架的文件上传实现
1. spring使用了apache-commons下得上传组件,因此,我们需要引入两个jar包:
1. apache-commons-fileupload.jar
2. apache-commons-io.jar
2. 在springmvc-servlet.xml配置文件中,增加CommonsMultipartResoler配置:
|
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
|
3. 建立upload.jsp页面,内容如下:
| <%@ page language="java"import="java.util.*"pageEncoding="gbk"%>
|
4. 建立控制器,代码如下:
| package com.sxt.web;
import java.io.File; import java.util.Date;
import javax.servlet.ServletContext;
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.context.ServletContextAware; import org.springframework.web.multipart.commons.CommonsMultipartFile;
@Controller public class FileUploadController implements ServletContextAware {
private ServletContext servletContext;
@Override public void setServletContext(ServletContext context) { this.servletContext = context; }
@RequestMapping(value="/upload.do", method = RequestMethod.POST) public String handleUploadData(String name,@RequestParam("file")[微软用户2] CommonsMultipartFile file){ if (!file.isEmpty()) { String path = this.servletContext.getRealPath("/tmp/"); //获取本地存储路径 System.out.println(path); String fileName = file.getOriginalFilename(); String fileType = fileName.substring(fileName.lastIndexOf(".")); System.out.println(fileType); File file2 = new File(path,new Date().getTime() + fileType); //新建一个文件 try { file.getFileItem().write(file2); //将上传的文件写入新建的文件中 } catch (Exception e) { e.printStackTrace(); } return "redirect:upload_ok.jsp"; }else{ return "redirect:upload_error.jsp"; } } } |
5. 建立upload_ok.jsp页面
| <%@ page language="java"import="java.util.*"pageEncoding="gbk"%>
上传成功!
|
6. 建立upload_error.jsp页面
| <%@page language="java"import="java.util.*"pageEncoding="gbk"%>
上传失败!
|
7. 发布项目,运行测试:http://localhost:8080/springmvc03/upload.jsp
进入项目发布后的目录,发现文件上传成功:
处理ajax请求
spring使用了jackson类库,帮助我们在java对象和json、xml数据之间的互相转换。他可以将控制器返回的对象直接转换成json数据,供客户端使用。客户端也可以传送json数据到服务器进行直接转换。使用步骤如下:
1. 项目中需要引入如下两个jar包:
jackson-core-asl-1.7.2jar
jackson-mapper-asl-1.7.2jar
2. spring配置文件中修改:
|
|
3. 客户端代码a.jsp如下:
| <%@page language="java"import="java.util.*"pageEncoding="gbk"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
|