zoukankan      html  css  js  c++  java
  • 在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());  
  • 相关阅读:
    Azure PowerShell (7) 使用CSV文件批量设置Virtual Machine Endpoint
    Windows Azure Cloud Service (39) 如何将现有Web应用迁移到Azure PaaS平台
    Azure China (7) 使用WebMetrix将Web Site发布至Azure China
    Microsoft Azure News(4) Azure新D系列虚拟机上线
    Windows Azure Cloud Service (38) 微软IaaS与PaaS比较
    Windows Azure Cloud Service (37) 浅谈Cloud Service
    Azure PowerShell (6) 设置单个Virtual Machine Endpoint
    Azure PowerShell (5) 使用Azure PowerShell创建简单的Azure虚拟机和Linux虚拟机
    功能代码(1)---通过Jquery来处理复选框
    案例1.用Ajax实现用户名的校验
  • 原文地址:https://www.cnblogs.com/phirothing/p/2475870.html
Copyright © 2011-2022 走看看