Servlet-获取request与header信息

request可以获得的信息:

package com.pas.request;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetInfoRequest extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		response.setCharacterEncoding("gb2312");
		PrintWriter out = response.getWriter();
		
		out.println("完整URL:"+request.getRequestURL().toString());
		out.println("</br>");
		out.println("部分URI:"+request.getRequestURI().toString());
		out.println("</br>");
		out.println("QueryString:"+request.getQueryString());
		out.println("</br>");
		out.println("客户端地址:"+request.getRemoteAddr());
		out.println("</br>");
		//请求方没有在dns上注册,则返回ip,否则返回机器名
		out.println("主机名:"+request.getRemoteHost());
		out.println("</br>");
		out.println("远程端口:"+request.getRemotePort());
		out.println("</br>");
		out.println("服务器端口:"+request.getLocalPort());
		out.println("</br>");
		out.println("服务器IP:"+request.getLocalAddr());
		out.println("</br>");
		out.println("服务器名:"+request.getLocalName());
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doGet(request, response);
	}

}

Header信息:

package com.pas.request;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetRequestHeader extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		response.setCharacterEncoding("gb2312");
		PrintWriter out = response.getWriter();
		
		//获取请求的header信息
		out.println(request.getHeader("Host"));
		
		out.println("</br>");
		out.println("************Head信息************");
		out.println("</br>");
		//getHeaderNames(打印整个http请求消息)
		Enumeration<?> headers= request.getHeaderNames();
		String head="";
		
		while(headers.hasMoreElements())
		{
			head=headers.nextElement().toString();
			out.println(head+":"+request.getHeader(head));
			out.println("</br>");
		}

	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doGet(request, response);
	}

}

 

转载于:https://my.oschina.net/u/1246663/blog/165508

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 过滤器中,可以通过 `HttpServletRequest` 对象来获取访问地址的 Request Header。以下是一个示例代码: ```java import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { // 初始化过滤器 } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; // 获取 Request Header String userAgent = httpRequest.getHeader("User-Agent"); String referer = httpRequest.getHeader("Referer"); // 在这里可以对获取到的 Request Header 进行处理 // 继续执行过滤器链 chain.doFilter(request, response); } @Override public void destroy() { // 销毁过滤器 } } ``` 在上面的示例中,我们创建了一个名为 `MyFilter` 的过滤器。在 `doFilter` 方法中,我们将传入的 `ServletRequest` 强制转换为 `HttpServletRequest` 对象,以便获取更多的 HTTP 请求相关信息。 通过 `HttpServletRequest` 对象,我们可以使用 `getHeader` 方法来获取指定的 Request Header。示例中展示了如何获取 "User-Agent" 和 "Referer" 的值,你可以根据自己的需求获取其他的 Request Header获取Request Header 后,你可以根据需要进行相应的处理操作。最后,通过调用 `chain.doFilter(request, response)` 继续执行过滤器链,确保请求继续向下传递。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值