URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
URN,uniform resource name,统一资源命名,是通过名字来标识资源。
也就是说,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。
HttpServletRequest可以获取请求的参数:
1、request.getRequestURL()
返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数。
2、request.getRequestURI()
得到的是request URL的部分值,并且web容器没有decode过的
3、request.getContextPath()
返回 the context of the request.
4、request.getServletPath()
返回调用servlet的部分url.
5、request.getQueryString()
返回url路径后面的查询字符串
示例:
当前url:
http://localhost:8080/mali/addNews.jsp
request.getRequestURL() /http://localhost:8080/mali/addNews.jsp
request.getRequestURI() /mali/addNews.jsp
request.getContextPath()/mali
request.getServletPath() /addNews.jsp
另一个问题:
注意:网站开发过程中,在URL中涉及到汉字时,如果直接使用汉字传输可能会导致有时URL会出现乱码的问题,所以在程序开发的过程中,引入了UrlEncode编码、UrlDecode解码两个函数方法。