您现在的位置是:主页 > news > 深圳网站建设 贝尔利/企业文化墙

深圳网站建设 贝尔利/企业文化墙

admin2025/5/1 15:49:10news

简介深圳网站建设 贝尔利,企业文化墙,全国工业设计大赛官网,山东省住房和城乡建设厅职称评审之前的blog中也提到过获取参数的一些方法,现在回顾下: 1.PathVariable,绑定URL上的变量值; 2.RequestParam,绑定单个的请求参数值; 3.RequestBody,绑定请求区的内容并转换格式; 4.SessionAt…

深圳网站建设 贝尔利,企业文化墙,全国工业设计大赛官网,山东省住房和城乡建设厅职称评审之前的blog中也提到过获取参数的一些方法,现在回顾下: 1.PathVariable,绑定URL上的变量值; 2.RequestParam,绑定单个的请求参数值; 3.RequestBody,绑定请求区的内容并转换格式; 4.SessionAt…

之前的blog中也提到过获取参数的一些方法,现在回顾下:

1.@PathVariable,绑定URL上的变量值;

2.@RequestParam,绑定单个的请求参数值;

3.@RequestBody,绑定请求区的内容并转换格式;

4.@SessionAttributes;

5.@ModelValue和上面一起用,@SessionAttributes是绑定对象到session中,而@ModelValue是绑定参数到对象上。(通俗点,一个绑定一个获取);

6.@RequestHeader,绑定请求头;

7.@CookieValue,绑定Cookie;

8.@RequestPart绑定“multipart/data”数据,除了能绑定@RequestParam能做到的请求参数外,还能绑定上传的文件等。


Spring Web MVC框架会自动把相应的Servlet请求/响应(Servlet API)作为参数传递过来。

原本ServletRequest/HttpServletRquest和ServletResponse/HttpServletResponse:

public String requestOrResponse (ServletRequest servletRequest, HttpServletRequest httpServletRequest,ServletResponse servletResponse, HttpServletResponse httpServletResponse)
1.现在可以通过InputStream/OutputStream 和 Reader/Writer来获取请求的内容区字节流。

public void inputOrOutBody(InputStream requestBodyIn, OutputStream responseBodyOut)throws IOException {
responseBodyOut.write("success".getBytes());
}

public void readerOrWriteBody(Reader reader, Writer writer)throws IOException {writer.write("hello");
}

不过:InputStream/OutputStream 和 Reader/Writer两组不能同时使用,只能使用其中的一组。

看下什么时候用什么:

InputStream、OutputStream是用来处理8位元的流,
Reader、Writer是用来处理16位元的流。
而在JAVA语言中,byte类型是8位的,char类型是16位的,所以在处理中文的时候需要用Reader和Writer。

2.再就是WebRequest/nativeWebRequest

这俩帮助我们获取除了普通数据(参数和请求头数据(cookie得不到))以外的数据,如会话,上下文中的数据。NativeWebRequest继承了WebRequest,并提供访问本地Servlet API的方法。

/*** webRequest.getParameter:访问请求参数区的数据,可以通过getHeader()访问请求头数据;* webRequest.setAttribute/getAttribute:到指定的作用范围内取/放属性数据,Servlet定义的三个作用范围分别使用如下常量代表:* SCOPE_REQUEST :代表请求作用范围;* SCOPE_SESSION :代表会话作用范围;* SCOPE_GLOBAL_SESSION :代表全局会话作用范围,即ServletContext上下文作用范围。* * @param webRequest* @param nativeWebRequest* @return*/@RequestMapping(value = "/webRequest",method=RequestMethod.GET)public String webRequest(WebRequest webRequest, NativeWebRequest nativeWebRequest) {System.out.println(webRequest.getParameter("test"));//①得到请求参数test的值webRequest.setAttribute("name", "value", WebRequest.SCOPE_REQUEST);//②System.out.println(webRequest.getAttribute("name", WebRequest.SCOPE_REQUEST));HttpServletRequest request = nativeWebRequest.getNativeRequest(HttpServletRequest.class);//③HttpServletResponse response = nativeWebRequest.getNativeResponse(HttpServletResponse.class);return "index";}/*** 请求参数只要和user里面的属性一致,那么就绑定到user上* * @param request* @param user* @return*/@RequestMapping(value = "/commandObject", method = RequestMethod.GET)public String toCreateUser(HttpServletRequest request, User user) {return "/user/customer/index";}@RequestMapping(value = "/commandObject", method = RequestMethod.POST)public String createUser(HttpServletRequest request, User user) {System.out.println(user);return "/index";}/*** 通过session来收集数据* @param session* @return*/@RequestMapping(value = "/session", method = RequestMethod.GET)public String session(HttpSession session) {System.out.println(session);return "/index";}/*** Spring Web MVC 提供Model、Map或ModelMap让我们能去暴露渲染视图需要的模型数据。* 打印出来都是true* * @param model* @param model2* @param model3* @return*/@RequestMapping(value = "/model")public String createUser(Model model, Map model2, ModelMap model3) {model.addAttribute("a", "a");model2.put("b", "b");model3.put("c", "c");System.out.println(model == model2);System.out.println(model2 == model3);return "index";}/*** Errors/BindingResult* error1,error2,error3都是对的* 都能获取错误对象*/@RequestMapping(value = "/error1")public String error1(User user, BindingResult result){return "index";}@RequestMapping(value = "/error2")public String error2(User user, BindingResult result, Map<String,Object> model) {if(result.hasErrors()){model.put("error", result.getFieldError().getDefaultMessage()); }return "index";}@RequestMapping(value = "/error3")public String error3(User user, Errors errors){return "index";}/*** 这个是不可取的的,错误对象必须紧跟在命令对象/表单对象之后* * @param user* @param model* @param errors* @return*/@RequestMapping(value = "/error4")public String error4(User user, Model model, Errors errors){return "index";}/***  java.util.Locale:得到当前请求的本地化信息,默认等价于ServletRequest.getLocale()* * @param locale* @param principal* @return*/@RequestMapping(value = "/other")public String other(Locale locale, Principal principal){System.out.println(locale.getLanguage());return "index";}