localhost/user/user123
,localhost/user?user=user123
和localhost/?user=user123
之间有什么区别?
如何从servlet中的URL user123
获取参数localhost/user/user123
?
提前致谢
答案 0 :(得分:3)
您可以从HttpServletRequest对象的getPathInfo()进行解析。
示例代码
String urlPath = request.getPathInfo();
System.out.println("" + urlPath.substring(urlPath.lastIndexOf("/"), urlPath.length()- 1));
答案 1 :(得分:0)
localhost / user / user123看起来像是一种识别资源的RESTful方式。
我认为其他两个不是。
答案 2 :(得分:0)
这些都可以从 Servlet API 访问。检查HttpServletRequest,您可以从那里访问所有信息。
实际值可能与您的webapp部署方式不同,但通常是
localhost
是上下文路径?
之后的参数是查询字符串 - 如果要使用答案 3 :(得分:0)
localhost/user/user123
- 此网址将由模式/user/user123
localhost/user?user=user123
- 此网址将由模式/user
处理,user
参数设置为user123
(对于GET请求)localhost/?user=user123
- 此网址将由模式/
处理,user
参数设置为user123
(同样适用于GET)我不知道如何使用纯servlet从url user123
检索localhost/user/user123
,但使用web MVC框架非常容易。春天的例子:
@Controller
@RequestMapping("/user")
public class Controller {
@RequestMapping(value = "/{user}")
public String getUser((@PathVariable String user) {
//here variable "user" is available and set to "user123" in your case
}
}
答案 4 :(得分:0)
通常你会传递像
这样的参数/localhost/Servlet?parameter1=one
或JSP
/localhost/mypage.jsp?parameter1=one
在servlet中,您可以使用请求对象访问参数。所以一般都是这样的:
String parameter1 = request.getParameter("parameter1");
以下是关于HttpServletRequest
的getParameter的一些细节希望这有帮助。