`

在Servlet中获取来源URL

    博客分类:
  • J2EE
阅读更多

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		out.println(""-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("");
		out.println("  请求来源");
		out.println("  ");
		String fromURL = request.getHeader("Referer");      
		out.print("来源于:"+fromURL);
		StringBuffer requestURL = request.getRequestURL();
		String queryString = request.getQueryString();
		if(queryString != null){
			requestURL .append("?").append(queryString);
		}
		out.print("请求:"+requestURL.toString());
		out.println("  ");
		out.println("");
		out.flush();
		out.close();
	}

从代码中可以看出获取来源URL,是通过获取HTTP头的方式得到的,代码中String fromURL = request.getHeader("Referer");  语句。而request.getRequestURL()是获取请求的URL,不包括参数。request.getQueryString()用于获取参数信息。


以下附录在编程常要获取的,包括获取一些常用的HTTP头:
out.println("Protocol: " + request.getProtocol()); 
out.println("Scheme: " + request.getScheme()); 
out.println("Server Name: " + request.getServerName() ); 
out.println("Server Port: " + request.getServerPort()); 
out.println("Protocol: " + request.getProtocol()); 
out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo()); 
out.println("Remote Addr: " + request.getRemoteAddr()); 
out.println("Remote Host: " + request.getRemoteHost()); 
out.println("Character Encoding: " + request.getCharacterEncoding()); 
out.println("Content Length: " + request.getContentLength()); 
out.println("Content Type: "+ request.getContentType()); 
out.println("Auth Type: " + request.getAuthType()); 
out.println("HTTP Method: " + request.getMethod()); 
out.println("Path Info: " + request.getPathInfo()); 
out.println("Path Trans: " + request.getPathTranslated()); 
out.println("Query String: " + request.getQueryString()); 
out.println("Remote User: " + request.getRemoteUser()); 
out.println("Session Id: " + request.getRequestedSessionId()); 
out.println("Request URI: " + request.getRequestURI()); 
out.println("Servlet Path: " + request.getServletPath()); 
out.println("Accept: " + request.getHeader("Accept")); 
out.println("Host: " + request.getHeader("Host")); 
out.println("Referer : " + request.getHeader("Referer")); 
out.println("Accept-Language : " + request.getHeader("Accept-Language")); 
out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding")); 
out.println("User-Agent : " + request.getHeader("User-Agent")); 
out.println("Connection : " + request.getHeader("Connection")); 
out.println("Cookie : " + request.getHeader("Cookie")); 
out.println("Created : " + session.getCreationTime()); 
out.println("LastAccessed : " + session.getLastAccessedTime());


2
0
分享到:
评论

相关推荐

    Servlet中文API文档

    - **运行环境**:与Applets不同,Servlet并不运行在Web浏览器或GUI环境中,而是通过servlet引擎在Web服务器中执行。 - **通信方式**:客户端(如Web浏览器)通过HTTP协议向Web服务器发送请求,请求由Servlet引擎处理...

    servlet分发控制器

    Servlet分发控制器是一种在Web应用中用于管理请求和响应流程的核心组件,它的设计灵感来源于Struts 1框架中的控制器概念。在Java Web开发中,Servlet扮演着服务器端程序的角色,负责接收HTTP请求并生成响应。...

    jsp和servlet之中的session详细介绍

    本文将深入探讨JSP和Servlet中的session概念,以及它们如何在Web应用程序中实现状态管理。HTTP协议本身是无状态的,这意味着每次客户端(浏览器)向服务器发送请求时,服务器无法识别请求是否来自同一个会话。为了...

    教会你怎样用好servlet

    此外,HttpServletRequest还提供了获取请求头信息的方法,如`getHeader()`,用于获取特定头部字段的值,例如`referer`(记录来源页面的URL)、`accept-language`(用户的语言偏好)和`User-Agent`(用户使用的浏览器...

    url大全

    在这个场景下,Servlet可能接收一个URL请求,然后从数据库或其他来源获取报警历史数据,并将其转换为Excel格式以便用户下载。 基于这些信息,我们可以讨论以下URL相关知识点: 1. **URL结构**:URL由协议(如http...

    flex与后台servlet建立连接

    Flex提供了`mx.rpc.http.HTTPService`组件,可以方便地从Servlet获取XML数据。你可以通过设置其`resultFormat`属性为`e4x`来处理XML结果,或者使用`mx.utils.XMLUtil`类进行XML操作。 5. **事件驱动编程**:Flex...

    javaee5编程郭庆j2ee-4-第4章servlet.ppt

    4. 在web.xml文件中配置Servlet,指定URL映射和初始化参数。 5. 运行Web应用,通过浏览器访问Servlet。 4.7-4.11分别讲解了Servlet接收请求参数、存取属性对象、视图派发、获取初始化参数以及设置Servlet的加载顺序...

    java servlet获得客户端相关信息的简单代码

    本文将详细介绍如何通过Java Servlet获取客户端的IP地址和访问URL,并提供相应的简单代码示例。 首先,我们要理解Servlet接口中的`HttpServletRequest`对象。这个对象是Servlet容器(如Tomcat、Jetty)在请求到达...

    struts1之ActionServlet详解_动力节点Java学院整理

    在init方法中,ActionServlet会获取/WEB-INF/struts-config.xml文件中的配置信息,然后将其解析成ActionMapping对象,并将其存储在内存中。然后,ActionServlet会将用户请求传递给对应的Action对象,以完成用户请求...

    jspServlet基础入门手册

    这通常发生在缓存中获取数据而非直接从服务器获取。 7. **204 No Content** - 服务器成功处理了请求,但是没有返回任何内容。这对于某些只需要确认操作已完成而无需返回数据的场景非常有用。 8. **205 Reset ...

    JSP中通过Servlet 将服务器硬盘图片并展示到浏览器

    在JSP中,我们可能会利用request对象来获取当前的上下文路径,并构建出完整的URL,包括请求的协议、服务器名、端口号和Servlet的映射路径。 通过上述步骤,我们就可以在JSP页面中通过Servlet动态地展示服务器硬盘上...

    servlet的程序编写的乱码处理

    当使用`sendRedirect()`进行重定向时,如果URL中包含中文字符,也会出现乱码问题。 解决方法是使用`URLEncoder.encode()`对中文进行编码处理。 ```java protected void doGet(HttpServletRequest request, ...

    Hessian实战应用之获取客户端请求URL和重新转发客户端请求

    在实战应用中,获取客户端请求的URL是一项常见的需求,这有助于我们理解请求来源,进行日志记录,或者根据不同的URL采取不同的处理策略。在Hessian服务端,我们可以利用Servlet API来获取这些信息。例如,`...

    JAVA项目实践,URL存在跨站漏洞,注入漏洞解决方案.docx

    XSS攻击通常发生在网页开发过程中遗留的漏洞被恶意利用的情况下。攻击者通过巧妙的方法注入恶意指令代码,使得这些恶意代码随着网页一同被加载和执行。攻击成功后,攻击者可能会获得各种敏感信息,例如用户的会话...

    httpservlet_request

    在Servlet中,可以通过检查HttpServletRequest的`getHeader("Referer")`方法来获取请求的来源。如果来源不是预期的站点,那么可以拒绝服务。 5. **标签中的"java servlet request"`:这部分主要指使用Java编程处理...

    getAttribute和getParameter区别

    - **示例**:如果一个链接为 `http://a.jsp?id=123`,那么可以通过 `request.getParameter("id")` 来获取URL中的参数值 "123"。 - **getAttribute**:此方法用于获取由服务器端设置的数据,这些数据可以被多个组件...

    破解图片防盗链servlet

    - **Token验证**:在图片URL中加入特定的标识符(如Token),并在服务器端进行验证。 - **HTTPS加密验证**:确保图片链接只能通过HTTPS访问,提高安全性。 - **自定义头部信息**:设置自定义的HTTP头部信息进行...

    获取上一页面的URL和本页的URL的方法

    在Web开发中,有时我们需要获取用户访问历史中的信息,例如上一页面的URL以及当前页面的URL。这在实现某些功能时非常有用,比如页面跟踪、数据统计、导航或者实现某些特定的交互逻辑。本节将详细介绍两种常用的方法...

    请求的几种情况.txt

    这种方式在安全性上存在隐患,因为所有参数都暴露在URL中,可能被浏览器历史记录或网络监听截获。 #### 请求头分析 每个GET请求都包含一系列的请求头信息,如`Accept`、`Accept-Language`、`User-Agent`等,这些...

Global site tag (gtag.js) - Google Analytics