请求路径@PathVariable与请求参数@RequestParam的区别

转自:http://www.iteye.com/problems/101566;

http://localhost:8080/Springmvc/user/page.do?pageSize=3&pageNow=2

你可以把这地址分开理解,其中问号前半部分:http://localhost:8080/Springmvc/user/page.do 这个就是路径,是你的请求url,而如果这个路径上有数据匹配,用的就是@PathVariable  如 
@RequestMapping(value="/page{pageNo}.do") 
public String page(@PathVariable int pageNo){} 
【注意:看下这地方的@RequestMapping的地址,对照我上面说的路径】

而问号的后面部分就是请求参数部分,是要向请求路径提交的参数信息,用的就是@RequestParam ,对于这种参数,如果你要用的话,代码应该如下: 
@RequestMapping(value="/page.do") 
public String page(@RequestParam int pageSize,@RequestParam  int pageNow){}

【注意:这个代码的RequestMapping地址只需要/page.do就行】

其实你只要把什么叫请求路径,什么叫请求参数分清楚,也就能理解@PathVariable和@RequestParam

我再举个例子,就拿你这个问题在iteye上的地址为例,http://www.iteye.com/problems/101566 这个如果对应sprimgmvc里面,想获取问题编号101566,因为这个地址直接就是请求路径,是一个url,所以代码中用的应该是@PathVariable,如下: 
@RequestMapping(value="/problems/{problemId}") 
public String showProblem(@PathVariable int problemId){}

时间: 2024-08-11 20:02:06

请求路径@PathVariable与请求参数@RequestParam的区别的相关文章

servlet 各种请求路径方法

/* 1.具体请求路径: 如果浏览器请求的[资源文件地址]与当前Servlet中<url-pattern>的内容[完全一致],Tomcat才会带调用当前Servlet 例子 OneServlet <url-pattern>/one.do</url-pattern> http://localhost:8080/myWeb/one.do OneServelt会被调用 http://localhost:8080/myWeb/abc/one.do OneServelt不会被调用

Request获取请求路径方法介绍

Request对象通过以下方法来获取请求路径. (1)String getServerName():获取服务器名:localhost (2)String getServerPort():获取服务器端口号:8080 (3)String getContextPath():获取项目名:Test (4)String getServletPath():获取Servlet路径:/login (5)String getQueryString():获取参数部门,即问号后面的部分:username=zhangsa

Spring注解@RequestMapping请求路径映射问题

@RequestMapping请求路径映射,假设标注在某个controller的类级别上,则表明訪问此类路径下的方法都要加上其配置的路径.最经常使用是标注在方法上.表明哪个详细的方法来接受处理某次请求. 下面两种方式都能够从url中传參数,可是另外一种方式的适用性更高一些,当參数中包括中文的时候,假设用第一种方式传參数,常常会出现參数还没到controller就已经经过编码了(比如:经过utf-8编码后,原本要传的參数就会以%+ab...cd这种方式出现),然后controller接受到这种请求

对于SpringMVC请求路径的方式

初次接触SpringMVC的时候 对于请求路径是使用基于注解的配置 @RequestMapping("/self") 这种方式配置方便 更适合RESTful风格一起使用 @RequestMapping(value="/self/{name}",method.RequestMethod=GET) 然后又由于需要接触到基于XML配置的请求路径 如下: <prop key="/login.do">usersController</pr

同 一个页面,不同请求路径,如何根据实际场景写JS

场景:使用同一个“添加群成员”的页面来操作 建群页面:建群成功后,返回查看群成员页面.在建群过程中直接添加群成员并返回一个群名称的参数. 添加群成员页面:在巳有群内添加群成员,添加成功后,返回查看群成员页面. 分析: 使用同一个页面,调两种不同接口,从接口中可以看到,一个包含{groupId},另一个没有 建群的接口为:/chat/vindicate/group 添加群成员的接口为:/chat/vindicate/group/{groupId} 在eclipse中需要做两个页面的渲染工作,其中使

接口测试工具-Jmeter使用笔记(三:管理请求服务器信息和Headers参数)

如果使用Jmeter同时执行多个http请求任务,就需要创建多个HTTP取样器,每一个取样器都来手动填写服务器信息和端口号,会非常消耗时间. 解决方法:Jmeter之HTTP请求默认值 1.添加方式 "线程"右键->添加->配置元件->选中HTTP请求默认值 2.配置好服务器IP和端口以后,新建一个HTTP取样器,不填写服务器信息. 3.运行,检查结果. 可以看出该配置元件是作用于整个线程内的,对该线程内的所有HTTP请求都生效. 参数列表: Attribute De

扫描指定路径下的全部请求路径(基于SpringMVC)

通过上面两篇博客,我们能够得到指定类上的全部请求路径.现在需要的是,给定一个指定的路径,获取全部的请求路径. public class RequestUrlScannerHelper { /** * 以下三个参数通过IOC注入进来 */ private String basePackage; //扫描的基础包 private ResourcePatternResolver resolver; //解析器 private TypeFilter controlFilter = new Annotat

请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式

遇到一个问题 在一个地址链接(URL)里使用  url?param1=val1&param2=val2  的方式传递参数,结果在获取参数值时发现不是当初设定的值. 具体案例 以特殊字符井号(#)为例. 部分参数值丢了 JS里设置参数 window.location="some_web_project/xxx.jsp?param_key=abc#xyz"; Java中取参数值 Sting paramVal = request.getParameter("param_ke

request操作的几个容易混淆的请求路径

假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果: 1.System.out.println(request.getContextPath()); 打印结果:/news 2.System.out.println(request.getServletPath()); 打印结果:/main/list.jsp 3.System.out.println(