jsp request.getHeader的使用方法

链接过来的时候,referer的值是链接过来的页面的URL,正常。我刷新的时候referer的值没有变,但当我在地址栏中打回车(URL没有改变,只是打回车),referer值却变成NULL了。

1):链接过来和在地址栏中直接输入URL,有没有什么区别?如果有,有什么区别?
2):刷新的时候URL为什么不变,为什么还是前一个URL地址,为什么不变成当前的URL?
3):直接输入为什么得不到 <%=request.getHeader("REFERER")的值?

如果是直接在浏览器里输入有referer的页面,返回是null,也就是说referer只有从别的页面点击连接来到这页的才会有内容。为NULL就是手工,非null就是连接过来的。刷新的时候,会检查服务端是否会有更新,没有的话,则使用本机的缓存,也就是说,你刷新时得到的响应依然是

 

<%@ page import="java.util.*" %>
<html>
   <head>
      <title>Echo</title>
      <style>
      <jsp教程:include page="style.css教程" flush="true"/>
      </style>
   </head>
   <body>
      <h1>HTTP Request Headers Received</h1>
      <table border="1" cellpadding="4" cellspacing="0">
      <%
         Enumeration eNames = request.getHeaderNames();
         while (eNames.hasMoreElements()) {
            String name = (String) eNames.nextElement();
            String value = normalize(request.getHeader(name));
      %>
         <tr><td><%= name %></td><td><%= value %></td></tr>
      <%
         }
      %>
      </table>
   </body>
</html>
<%!
   private String normalize(String value)
   {
      StringBuffer sb = new StringBuffer();
      for (int i = 0; i < value.length(); i++) {
         char c = value.charAt(i);
         sb.append(c);
         if (c == ';')
            sb.append("<br>");
      }
      return sb.toString();
   }
%>

综合实例

index.jsp
 
<HTML>
    <HEAD>
        <TITLE>Getting Header Data</TITLE>
    </HEAD>
 
    <BODY>
        <H1>Getting Header Data</H1>
        <FORM ACTION="basic.jsp" METHOD="POST">
            <INPUT TYPE="submit" VALUE="Submit">
        </FORM>
    </BODY>
</HTML>
 
basic.jsp
 
<HTML>
    <HEAD>
        <TITLE>Reading Header Information</TITLE>
    </HEAD>

    <BODY>
        <H1>Reading Header Information</H1>
        Here are the request headers and their data:
        <BR>
        <% java.util.Enumeration names = request.getHeaderNames();
        while(names.hasMoreElements()){
            String name = (String) names.nextElement();
            out.println(name + ":<BR>" + request.getHeader(name) + "<BR><BR>");
        }
        %>
    </BODY>
</HTML>

通过方法可以知道访问者的request.getHeader("Referer");其他的方法下列
System.out.println("Protocol: " + request.getProtocol());
System.out.println("Scheme: " + request.getScheme());
System.out.println("Server Name: " + request.getServerName() );
System.out.println("Server Port: " + request.getServerPort());
System.out.println("Protocol: " + request.getProtocol());
System.out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo());
System.out.println("Remote Addr: " + request.getRemoteAddr());
System.out.println("Remote Host: " + request.getRemoteHost());
System.out.println("Character Encoding: " + request.getCharacterEncoding());
System.out.println("Content Length: " + request.getContentLength());
System.out.println("Content Type: "+ request.getContentType());
System.out.println("Auth Type: " + request.getAuthType());
System.out.println("HTTP Method: " + request.getMethod());
System.out.println("Path Info: " + request.getPathInfo());
System.out.println("Path Trans: " + request.getPathTranslated());
System.out.println("Query String: " + request.getQueryString());
System.out.println("Remote User: " + request.getRemoteUser());
System.out.println("Session Id: " + request.getRequestedSessionId());
System.out.println("Request URI: " + request.getRequestURI());
System.out.println("Servlet Path: " + request.getServletPath());
System.out.println("Accept: " + request.getHeader("Accept"));
System.out.println("Host: " + request.getHeader("Host"));
System.out.println("Referer : " + request.getHeader("Referer"));
System.out.println("Accept-Language : " + request.getHeader("Accept-Language"));
System.out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding"));
System.out.println("User-Agent : " + request.getHeader("User-Agent"));
System.out.println("Connection : " + request.getHeader("Connection"));
System.out.println("Cookie : " + request.getHeader("Cookie"));
System.out.println("Created : " + session.getCreationTime());
System.out.println("LastAccessed : " + session.getLastAccessedTime());

时间: 2024-10-30 08:28:37

jsp request.getHeader的使用方法的相关文章

jsp request.getHeader(&quot;User-Agent&quot;) 获取用户浏览器信息

jsp教程 request.getHeader("User-Agent") 获取用户浏览器信息 <%@ page language="java" contentType="text/html" %> <html>   <head>     <title>Browser Check</title>   </head>   <body bgcolor="white

jsp Request获取url信息的各种方法对比_JSP编程

从Request对象中可以获取各种路径信息,以下例子:  假设请求的页面是index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路径信息如下  String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+

几个提升JSP应用程序效率的方法

   本文介绍了几个调整JSP和servlet的一些非常实用的方法,它可使你的servlet和JSP页面响应更快,扩展性更强.而且在用户数增加的情况下,系统负载会呈现出平滑上长的趋势.我将通过一些实际例子和配置方法使得你的应用程序的性能有出人意料的提升.其中,某些调优技术是在你的编程工作中实现的,而另一些技术是与应用服务器的配置相关的.我们将详细地描述怎样通过调整servlet和JSP页面,来提高你的应用程序的总体性能.在阅读本文之前,你还需要有基本的servlet和JSP的知识.  方法一:在

jsp速度优化七种方法

 方法一:在servlet的init()方法中缓存数据     当应用服务器初始化servlet实例之后,为客户端请求提供服务之前,它会调用这个servlet的init()方法.在一个servlet的生命周期中,init()方法只会被调用一次.通过在init()方法中缓存一些静态的数据或完成一些只需要执行一次的.耗时的操作,就可大大地提高系统性能.     例如,通过在init()方法中建立一个JDBC连接池是一个最佳例子,假设我们是用jdbc2.0的DataSource接口来取得数据库连接,在

servlet/jsp中getHeader获取ip

前置条件  无 作者本人环境配置  1.无 getHeader方法基本用法                 System.out.println("rotocol: " + request.getProtocol());    System.out.println("Scheme: " + request.getScheme());    System.out.println("Server Name: " + request.getServer

jsp request.getParameter()接受表单和url数据代码

request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据.request.getParameter()方法返回String类型的数据.   <%@ page import="java.util.*" %> <%    String title = "HttpServletRequest Method Values";    Map entries = new TreeMap();    e

jsp实现防盗链的方法_JSP编程

本文实例讲述了jsp实现防盗链的方法.分享给大家供大家参考,具体如下: 最近碰到盗链的问题,即复制一个url地址,在另一个地方也能访问. index.jsp页面 <html> <head><title>Simple jsp page</title></head> <body>Place your content here here is index jsp get header info <a href="a.jsp&

利用xml+xsl快速生成大量JSP的常用代码的方法.

js|xml 利用xml+xsl快速生成大量JSP的常用代码的方法. 参考Jbuilder的Servlet向导来使用xml+xsl产生JSP的常用代码.xml样本: <?xml version="1.0" encoding="GB2312"?><?xml-stylesheet type="text/xsl" href="jspram.xsl"?><jsp xmlns:xsi="http:

Jsp,JavaBean,Mysql的连接方法

js|mysql Jsp,JavaBean,Mysql的连接方法 利用JSP实现Web与数据库的连接: (1).完成环境设置,导入java.sql包,命令如下: import java.sql.* (2).载入驱动器 (3).连接到数据库 (4).语句接口 (5).获得结果集 1. 测试环境: windows 2003 j2sdk1.4.2_06 Tomcat 5.0 mysql-4.0.23-win mm.mysql-2.0.4-bin.jar 2. 建立数据库及表 在Mysql中建个publ