Request的关于路径的方法详解
2012-06-30 14:19
459 查看
request对象中的有很多方法是关于路径获取的,下面我们通过一个TestServlet来讲解一下这些常用的方法。
TestServlet源代码如下:
此Servlet在web.xml文件中的部署如下:(只有关键代码)
*.do表示只要是以.do结尾的地址,都可以访问此Servlet。然后在地址栏中输入如下网址:(假设服务器为本地,端口8080,Web根目录为FilterWeb)
http://localhost:8080/FilterWeb/update.do?userName=zhangsan&age=20
页面返回的结果如下:
这些方法的含义大家通过它的名字应该能够揣摩出来的。
下面更改servlet的url-pattern地址,如下:
以上表示只要是以/faces/开头的地址,此Servlet都可以访问
浏览器的地址栏中填入如下地址:
http://localhost:8080/FilterWeb/faces/update?userName=zhangsan&age=20
页面返回的结果如下:
2、 获取服务器和客户端地址的方法:
serverName: 获取web服务器的名称
localAddr: 获取web服务器的地址
remoteAddr: 获取客户端的地址
3、getResource("")的相对路径,此处主要讨论web工程中的getResource相对路径。
例如有一个Service类: FileService
部分代码如下:
输出结果如下:
说明:
class.getResource()方法从class文件位于的文件夹里开始查找。 例如 我们的service文件夹。
class.getClassLoader().getResource() 从/WEB-INF/classes/ 根目录下开始查找。
TestServlet源代码如下:
package coresun; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setContentType("text/html;charset=gb2312"); PrintWriter out = response.getWriter(); out.println("<html><head><title>使用request中的方法</title></head><body><h2>"); out.println("request.getRequestURL()= "+request.getRequestURL()+"<br>"); out.println("request.getRequestURI()= "+request.getRequestURI()+"<br>"); out.println("request.getContextPath()= "+request.getContextPath()+"<br>"); out.println("request.getServletPath()= "+request.getServletPath()+"<br>"); out.println("request.getQueryString()= "+request.getQueryString()+"<br>"); out.println("request.getPathInfo()= "+request.getPathInfo()+"<br>"); out.println("request.getPathTranslated()= "+request.getPathTranslated()); out.println("<br>"); out.println("request.getProtocol()= "+request.getProtocol()+"<br>"); out.println("request.getMethod()= "+request.getMethod()+"<br>"); out.println("request.getScheme()= "+request.getScheme()+"<br>"); out.println("request.getRequestedSessionId()= "+request.getRequestedSessionId()+"<br>"); out.println("request.isRequestedSessionIdFromCookie()= "+request.isRequestedSessionIdFromCookie()+"<br>"); out.println("request.isRequestedSessionIdFromURL()= "+request.isRequestedSessionIdFromURL()+"<br>"); out.println("request.isRequestedSessionIdValid()= "+request.isRequestedSessionIdValid()+"<br>"); out.println("</h2></body></html>"); } }
此Servlet在web.xml文件中的部署如下:(只有关键代码)
<servlet> <servlet-name>test</servlet-name> <servlet-class>coresun.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
*.do表示只要是以.do结尾的地址,都可以访问此Servlet。然后在地址栏中输入如下网址:(假设服务器为本地,端口8080,Web根目录为FilterWeb)
http://localhost:8080/FilterWeb/update.do?userName=zhangsan&age=20
页面返回的结果如下:
request.getRequestURL() = http://localhost:8080/FilterWeb/update.do request.getRequestURI() = /FilterWeb/update.do request.getContextPath() = /FilterWeb request.getServletPath() = /update.do request.getQueryString() = userName=zhangsan&age=20 request.getPathInfo() = null request.getPathTranslated() = null request.getProtocol() = HTTP/1.1 request.getMethod() = GET request.getScheme() = http request.getRequestedSessionId() = 0D5219B7FF11D47EBE95B2E6A31076B5 request.isRequestedSessionIdFromCookie() = true request.isRequestedSessionIdFromURL() = false request.isRequestedSessionIdValid() = true request.getAuthType() = null
这些方法的含义大家通过它的名字应该能够揣摩出来的。
下面更改servlet的url-pattern地址,如下:
<servlet> <servlet-name>test</servlet-name> <servlet-class>coresun.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping>
以上表示只要是以/faces/开头的地址,此Servlet都可以访问
浏览器的地址栏中填入如下地址:
http://localhost:8080/FilterWeb/faces/update?userName=zhangsan&age=20
页面返回的结果如下:
request.getRequestURL() = http://localhost:8080/FilterWeb/faces/update request.getRequestURI() = /FilterWeb/faces/update request.getContextPath() = /FilterWeb request.getServletPath() = /faces request.getQueryString() = userName=zhangsan&age=20 request.getPathInfo() = /update request.getPathTranslated() = D:\FilterProject\FilterWeb\update request.getProtocol() = HTTP/1.1 request.getMethod() = GET request.getScheme() = http request.getRequestedSessionId() = 0D5219B7FF11D47EBE95B2E6A31076B5 request.isRequestedSessionIdFromCookie() = true request.isRequestedSessionIdFromURL() = false request.isRequestedSessionIdValid() = true request.getAuthType() = null
2、 获取服务器和客户端地址的方法:
<% String webUrl = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath(); String webUrl1 = request.getScheme()+"://"+request.getLocalAddr()+":"+request.getLocalPort()+request.getContextPath(); String webUrl2 = request.getScheme()+"://"+request.getRemoteAddr()+":"+request.getRemotePort()+request.getContextPath(); out.println("server="+webUrl+"<br />"); out.println("local="+webUrl1+"<br />"); out.println("remote="+webUrl2+"<br />"); %>
serverName: 获取web服务器的名称
localAddr: 获取web服务器的地址
remoteAddr: 获取客户端的地址
3、getResource("")的相对路径,此处主要讨论web工程中的getResource相对路径。
例如有一个Service类: FileService
部分代码如下:
java.net.URL url = FileService.class.getResource(""); System.out.println("class.getResource(\"\")="+url.toString()); url = FileService.class.getClassLoader().getResource(""); System.out.println("class.getClassLoader().getResource(\"\")="+url.toString());
输出结果如下:
class.getResource("")=file:/E:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/easyui/WEB-INF/classes/org/study/service/ class.getClassLoader().getResource("")=file:/E:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/easyui/WEB-INF/classes/
说明:
class.getResource()方法从class文件位于的文件夹里开始查找。 例如 我们的service文件夹。
class.getClassLoader().getResource() 从/WEB-INF/classes/ 根目录下开始查找。
相关文章推荐
- request 中关于路径的部分方法举例解析
- 关于android获取sd卡路径的方法
- 详解关于 C# 中 Linq 随机排序的有效解决方法
- AJAX(XMLHttpRequest)进行跨域请求方法详解(一)
- XMLHTTPRequest属性及方法详解
- vs2008中使用母版页关于引用*.js的[智能语法提示]和[设置路径]的方法和问题
- 相对路径获取项目文件 及报错 No mapping found for HTTP request with URI XXX in DispatcherServlet with name ‘springmvc’解决方法
- 微信小程序 wx.request方法的异步封装实例详解
- request获取上下文路径、URL、URI、Servlet路径等方法
- 详解封装基础的angular4的request请求方法
- 关于Windows 2003 ".." 表示父路径解决方法
- string 中关于 npos 的使用方法详解
- 关于${pageContext.request.contextPath} JSP取得绝对路径
- AJAX(XMLHttpRequest)进行跨域请求方法详解(三)
- WindowsAPI详解——获得进程可执行文件路径的几种方法
- 关于Java代码中一个方法代码超出65535字节详解
- AJAX(XMLHttpRequest)进行跨域请求方法详解
- request各个方法,获取各种路径
- 关于CppSqlite中数据库文件中文路径识别问题的解决方法
- Request获取url信息的各种方法比较 及 Request.UrlReferrer详解