在Servlet中獲取來源URL


在Servlet中獲取來源URL,即發送當前請求的URL。比如從a.jsp進入Servlet,在Servlet中可以獲得a.jsp的路徑。以下是代碼:

 1     public void doGet(HttpServletRequest request, HttpServletResponse response)  
 2             throws ServletException, IOException {  
 3         request.setCharacterEncoding("utf-8");  
 4         response.setContentType("text/html;charset=utf-8");  
 5         PrintWriter out = response.getWriter();  
 6         out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");  
 7         out.println("<HTML>");  
 8         out.println("  <HEAD><TITLE>請求來源</TITLE></HEAD>");  
 9         out.println("  <BODY>");  
10         String fromURL = request.getHeader("Referer");        
11         out.print("來源於:"+fromURL);  
12         StringBuffer requestURL = request.getRequestURL();  
13         String queryString = request.getQueryString();  
14         if(queryString != null){  
15             requestURL .append("?").append(queryString);  
16         }  
17         out.print("<br />請求:"+requestURL.toString());  
18         out.println("  </BODY>");  
19         out.println("</HTML>");  
20         out.flush();  
21         out.close();  
22     }  

 

 從代碼中可以看出獲取來源URL,是通過獲取HTTP頭的方式得到的,代碼中String fromURL = request.getHeader("Referer");  語句。而request.getRequestURL()是獲取請求的URL,不包括參數。request.getQueryString()用於獲取參 數信息。

 以下附錄在編程常要獲取的,包括獲取一些常用的HTTP頭:

 1     out.println("Protocol: " + request.getProtocol());   
 2     out.println("Scheme: " + request.getScheme());   
 3     out.println("Server Name: " + request.getServerName() );   
 4     out.println("Server Port: " + request.getServerPort());   
 5     out.println("Protocol: " + request.getProtocol());   
 6     out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo());   
 7     out.println("Remote Addr: " + request.getRemoteAddr());   
 8     out.println("Remote Host: " + request.getRemoteHost());   
 9     out.println("Character Encoding: " + request.getCharacterEncoding());   
10     out.println("Content Length: " + request.getContentLength());   
11     out.println("Content Type: "+ request.getContentType());   
12     out.println("Auth Type: " + request.getAuthType());   
13     out.println("HTTP Method: " + request.getMethod());   
14     out.println("Path Info: " + request.getPathInfo());   
15     out.println("Path Trans: " + request.getPathTranslated());   
16     out.println("Query String: " + request.getQueryString());   
17     out.println("Remote User: " + request.getRemoteUser());   
18     out.println("Session Id: " + request.getRequestedSessionId());   
19     out.println("Request URI: " + request.getRequestURI());   
20     out.println("Servlet Path: " + request.getServletPath());   
21     out.println("Accept: " + request.getHeader("Accept"));   
22     out.println("Host: " + request.getHeader("Host"));   
23     out.println("Referer : " + request.getHeader("Referer"));   
24     out.println("Accept-Language : " + request.getHeader("Accept-Language"));   
25     out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding"));   
26     out.println("User-Agent : " + request.getHeader("User-Agent"));   
27     out.println("Connection : " + request.getHeader("Connection"));   
28     out.println("Cookie : " + request.getHeader("Cookie"));   
29     out.println("Created : " + session.getCreationTime());   
30     out.println("LastAccessed : " + session.getLastAccessedTime());  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM