springmvc接收请求参数的方法

     控制器的请求处理方法的签名可以将任何事物作为参数,我们可以将HttpServletRequest、HttpServletResponse、 String或者数字参数传递进来,这些参数可以对应请求中的查询参数、cookie值、HTTP请求头的值或其他一些可能的选项。 

     下面一些例子来说明
  1. 使用@RequestParam绑定请求参数值 
    @RequestMapping(value="/method1")  
        public String method1(  
                @RequestParam(value="userName",required = false) String userName,  
                @RequestParam("pwd") String pwd){  
            return "methodSignature";  
        }
      

  2. 使用@CookieValue绑定请求中的Cookie值 
    @RequestMapping(value="/method2")  
        public String method2(  
                @CookieValue(value="sessionId",required=false)String sessionId){  
              
            return "methodSignature";  
        } 
      

  3. 使用@RequestHeader绑定请求报文头的属性值 
    @RequestMapping(value="/method3")  
        public String method3(  
                @RequestHeader("Accept-Encoding") String encoding,  
                @RequestHeader("Keep-Alive") long keepAlive){  
            return "methodSignature";  
        }
      

  4. 使用@PathVariabl获取路径中传递参数 
    public ModelAndView helloWorld(
                  @PathVariable String id, 
                  @PathVariable String str) {  
            System.out.println(id);  
            System.out.println(str);  
            return new ModelAndView( " /helloWorld " );  
    }  
      

  5. 使用表单对象绑定请求参数值 
    @RequestMapping(value="/method4")  
        public String method4(User user){  
            return "methodSignature";  
        } 
      
  6. 使用Servlet API对象作为入参 
    • 同时使用HttpServletRequest、HttpServletResponse、HttpSession  
      @RequestMapping(value="method5")  
          public void method5(
                    HttpServletRequest request,
                    HttpServletResponse response,
                    HttpSession session){  
              String userName = WebUtils.findParameterValue(request, "userName");  
              response.addCookie(new Cookie("userName",userName));  
          }
        
    • 使用Servlet原生API接口,如WebRequest和NativeWebRequest等  
      @RequestMapping(value="method6")  
          public String method6(WebRequest request){  
              String userName = request.getParameter("userName");  
              return "methodSignature";  
          } 
        
    • 使用IO对象作为入参  
      如java.io.InputStream/java.io.Reader 及java.io.OutputStream/java.io.Writer  
      @RequestMapping(value="method7")  
          public void method7(OutputStream os) throws IOException{  
              Resource res = new ClassPathResource("/image.jpg");//读取类路径下的图片文件  
              FileCopyUtils.copy(res.getInputStream(), os);  
          }  
        
    • 使用其他类型的参数 
      java.util.Locale/java.security.Principal 
      也可以通过Servlet的HttpServletRequest的getLocale()及getUserPrincipal()   
      @RequestMapping(value="method8")
      public String method8(Locale locale,Principal principal){  
              return "methodSignature";  
          }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值