学习SpringMVC——如何获取请求参数

@RequestParam

@PathVariable

@QueryParam

@CookieValue

@ModelAndView

@ModelAttribute

一、spring mvc如何匹配请求路径——“请求路径哪家强,RequestMapping名远扬”

@RequestMapping是用来映射请求的,比如get请求,post请求,或者REST风格与非REST风格的。 该注解可以用在类上或者方法上,如果用于类上,表示该类中所有方法的父路径。

@Controller的注解,该注解在SpringMVC 中,负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。

RequestMapping可以实现模糊匹配路径,比如:

  ?:匹配一个字符

  *:匹配任意字符

  **:匹配多层路径

  /springmvc/**/lastTest 就可以匹配/springmvc/firstTest/secondTest/lastTest这样的路径

二、spring mvc如何获取请求的参数——“八仙过海,各显神通”  

1. @PathVariable

  该注解用来映射请求URL中绑定的占位符。通过@PathVariable可以将URL中占位符的参数绑定到controller处理方法的入参中

@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable(value="id") Integer id){
    System.out.println("testPathVariable:" + id);
    return SUCCESS;
}
<a href="springmvc/testPathVariable/1">testPathVariable</a><br/><br/>

  

2. @RequestParam

  该注解也是用来获取请求参数的。那么该注解和@PathVariable有何不同呢?

@RequestMapping(value="/testRequestParam")
public String testRequestParam(@RequestParam(value="username") String username, @RequestParam(value="age", required=false, defaultValue="0") int age){
    System.out.println("testRequestParam" + " username:" + username + " age:" +age);
    return SUCCESS;
}

注:@PathVariable和@RequestParam之间的一些区别

请求参数是以键值对出现的,我们通过@RequestParam来获取到如username或age后的具体请求值

增删改都是通过post方式发送出去的

总结下,如何发送put和delete的请求:

1.在web.xml中配置HiddenHttpMethodFilter

<!-- 配置HiddenHttpMethodFilter:可以把POST请求转为DELETE或POST请求 -->
<filter>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<input type="hidden" name="_method" value="DELETE"/>

  

2.发送post请求

3.请求中是个隐藏域,name为”_mothod”,value为put或delete

  

3. @CookieValue

也是一种映射,映射的是一个Cookie值。

 @RequestMapping("/hellocookie")
    public String testCookieValue(@CookieValue("JSESSIONID") String cookieValue){
        System.out.println("testCookieValue: " + cookieValue);
        return "success";
    }

index.jsp界面上添加链接

<a href="hellocookie">hellocookie</a>

原文地址:https://www.cnblogs.com/tanlei-sxs/p/9981524.html

时间: 2024-08-06 14:11:03

学习SpringMVC——如何获取请求参数的相关文章

学习SpirngMVC之如何获取请求参数

学习SpringMVC——如何获取请求参数 @RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieValue)!她(@ModelAndView)!它(@ModelAttribute)!没错,仅注解这块,spring mvc就为你打开了五彩斑斓的世界.来来来,不要兴(mi)奋(hu),坐下来,我们好好聊聊这么些个注解兄弟们~~~(wait, 都没有听过? 好,来,你坐前排,就你!) 一.spring

Springmvc之接受请求参数二

Springmvc之接受请求参数 准备工作 新建一个表单提交 请求地址: http://localhost:8080/ProjectName/user/login.do <form action="<%=request.getContextPath()%>/user/login.do" method="post"> username:<input type="text" name="username&quo

Struts2 -- 获取请求参数

1.直接将action做一个model,就可以得到请求参数. 缺点:需要单独定义javaBean,将action中属性copy到javaBean中.                     优点:简单.                                 这种方式 ,底层是通过反射来实现的. //获取请求参数 属性驱动 第一种,直接将action做为model public class DemoAction extends ActionSupport { private String

JavaWeb获取请求参数的两种方式

第一种:通过获取缓冲流读取参数 public void registerUser(HttpServletRequest request, HttpServletResponse response)throws  Exception  { //直接获取请求参数,通过缓冲流读取数据  BufferedReader br=request.getReader();  String inputLine = "";  String json = "";      while (

php 获取请求参数

$value = $_POST["value"];//取得post中的 $value=$_REQUEST["value"];//取得get或者post中的参数(哪个有就取得哪个) $value=$_GET["value"];//取得get中的参数 php 获取请求参数,布布扣,bubuko.com

获取请求参数js代码

/*获取请求参数 */ (function($) {     $.getUrlParam = function(name) {         var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");         var r = window.location.search.substr(1).match(reg);         if (r != null)            

servlet-api api文档获取请求参数

1.假如有个get请求后面带有的参数如下: a=b&a2=b2&a3=b3&a4=b4. 如果想获取所有的key,value.这个时候可以根据request的getQueryString获取.但是这样有个问题,getQueryString方法并不会对参数进行解码. 可以使用: String decode = URLDecoder.decode(url, “utf-8”)方法进行解码操作. 2.假如请求参数是在body中的话,getQueryString方法就不能获取请求参数了. 只

在拦截器中获取请求参数,[Ljava.lang.String; cannot be cast to java.lang.String报错

Map<String,Object> parametersmap=invocation.getInvocationContext().getParameters();//获取请求参数                Set<String> parametersset=parametersmap.keySet();                for(String key:parametersset){ System.out.println(key+":"+par

Struts2中获取请求参数

Action在Strucs中负责请求参数的处理,那么他是如何实现的呢?这篇博文就将给大家做个简单的介绍.在struts中,获取请求参数主要有一下两种方式: 1.属性驱动方式 方式一:使用属性驱动,直接将Action作为Model;但是这样做不好的一点就是无法将参数传到Service层进行进一步处理. package cn.tgb.action; //方式一:使用属性驱动,将Action作为Model public class Action01 { private String name; pri