您的位置:首页 > 编程语言 > Java开发

【framework】spring3-mvc实例-标准参数

2012-09-02 21:42 357 查看
这几篇连续的博文其实是想让大家从几个实际例子中,逐渐理解spring3-mvc在controller层的知识,但并不是从架构角度理解spring-mvc.我觉得标题有误导性,所以换了个名字
前言

所谓标准参数,其实就是我们能够得到与request,response等相关标准实例。习惯了用servlet的人,或者对spring不熟悉,又或者spring不能够满足你过于复杂的需求时,这个例子会对你帮助很大。

实例:

项目:spring-mvc-showcase

包:org.springframework.samples.mvc.data.standard

类:StandardArgumentsController

例一:得到HttpServletRequest

@RequestMapping(value="/data/standard/request", method=RequestMethod.GET)
public @ResponseBody String standardRequestArgs(HttpServletRequest request, Principal user, Locale locale) {
StringBuilder buffer = new StringBuilder();
buffer.append("request = ").append(request).append(", ");
buffer.append("userPrincipal = ").append(user).append(", ");
buffer.append("requestLocale = ").append(locale);
return buffer.toString();
}

这里例子的参数分别为:

HttpServletRequest request 这个不需要解释

Principal user 认证用户

Locale locale 本地环境,一般指语言环境

例二:得到 HttpServletResponse

@RequestMapping("/data/standard/response")
public @ResponseBody String response(HttpServletResponse response) {
return "response = " + response;
}

例三:字符输入流 Reader

@RequestMapping(value="/data/standard/request/reader", method=RequestMethod.POST)
public @ResponseBody String requestReader(Reader requestBodyReader) throws IOException {
return "Read char request body = " + FileCopyUtils.copyToString(requestBodyReader);
}

例四:字符输出流 Writer

@RequestMapping("/data/standard/response/writer")
public void availableStandardResponseArguments(Writer responseWriter) throws IOException {
responseWriter.write("Wrote char response using Writer");
}

例五:标准字节输入流 InputStream

@RequestMapping(value="/data/standard/request/is", method=RequestMethod.POST)
public @ResponseBody String requestReader(InputStream requestBodyIs) throws IOException {
return "Read binary request body = " + new String(FileCopyUtils.copyToByteArray(requestBodyIs));
}

例六:标准字节输出流 OutputStream

@RequestMapping("/data/standard/response/os")
public void availableStandardResponseArguments(OutputStream os) throws IOException {
os.write("Wrote binary response using OutputStream".getBytes());
}

例七:HttpSession

@RequestMapping("/data/standard/session")
public @ResponseBody String session(HttpSession session) {
StringBuilder buffer = new StringBuilder();
buffer.append("session=").append(session);
return buffer.toString();
}


这个例子里没有新注解,需要说明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: