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());  
  • 相关阅读:
    github创建repo,本地导入git项目到github
    成功的GIT开发分支模型和策略
    示例可重用的web component方式组织angular应用模块
    git deployment strategy
    如何在linux中从源代码编译安装nodejs?
    some resource favor
    学而习之,成就学习
    C# 去掉代码前边空格(格式化代码)
    mvc重定向
    mvc cshtml 中赋值
  • 原文地址:https://www.cnblogs.com/phirothing/p/2475870.html
Copyright © 2011-2022 走看看