Servlet获取URL地址

绝地灬酷狼 2022-04-11 13:00 319阅读 0赞

Servlet获取URL地址这里来说说用Servlet获取URL地址。在HttpServletRequest类里,有以下六个取URL的函数:

getContextPath 取得项目名
getServletPath 取得Servlet名
getPathInfo 取得Servlet后的URL名,不包括URL参数
getRequestURL 取得不包括参数的URL
getRequestURI 取得不包括参数的URI,即去掉协议和服务器名的URL

具体如下图:

[img]http://dl2.iteye.com/upload/attachment/0123/2126/fb7938d3-348a-3cd9-8814-ab580689468c.png\[/img\]

相对应的函数的值如下:

getContextPath:/ServletTest
getServletPath:/main
getPathInfo:/index/testpage/test
getRequestURL:http://localhost:8080/ServletTest/main/index/testpage/test
getRequestURI:/ServletTest/main/index/testpage/test

以上内容转自https://my.oschina.net/idiotsky/blog/198352

获取完整(包含参数)的地址、及相对地址的方法:

  1. /**
  2. * 获取Servlet的全地址,包括参数等信息
  3. *
  4. * @param request
  5. * 作者:wallimn<br/>
  6. * 时间:2017年2月21日<br/>
  7. * 联系:54871876@qq.com<br/>
  8. */
  9. protected String getRequestURL(HttpServletRequest req) {
  10. StringBuffer url = req.getRequestURL();
  11. Map<String, String[]> map = req.getParameterMap();
  12. boolean bFirst = true;
  13. for (Entry<String, String[]> entry : map.entrySet()) {
  14. for (String v : entry.getValue()) {
  15. if (bFirst == true) {
  16. url.append("?");
  17. bFirst = false;
  18. } else {
  19. url.append("&");
  20. }
  21. url.append(entry.getKey()).append("=").append(v);
  22. }
  23. }
  24. return url.toString();
  25. }
  26. /**
  27. * 返回短地址,不包含协议、主机、端口、上下文等信息。
  28. *
  29. * @param request
  30. * 作者:wallimn<br/>
  31. * 时间:2017年2月21日<br/>
  32. * 联系:54871876@qq.com<br/>
  33. */
  34. protected String getRequestShortURL(HttpServletRequest req) {
  35. StringBuffer url = new StringBuffer();
  36. String str = req.getServletPath();
  37. if (str != null)
  38. url.append(req.getServletPath());
  39. str = req.getPathInfo();// 这个值有时为null
  40. if (str != null)
  41. url.append(req.getPathInfo());
  42. Map<String, String[]> map = req.getParameterMap();
  43. boolean bFirst = true;
  44. for (Entry<String, String[]> entry : map.entrySet()) {
  45. for (String v : entry.getValue()) {
  46. if (bFirst == true) {
  47. url.append("?");
  48. bFirst = false;
  49. } else {
  50. url.append("&");
  51. }
  52. url.append(entry.getKey()).append("=").append(v);
  53. }
  54. }
  55. return url.toString();
  56. }

发表评论

表情:
评论列表 (有 0 条评论,319人围观)

还没有评论,来说两句吧...

相关阅读