HttpServletRequest对象

来源:互联网 发布:清华大学软件学院分数 编辑:程序博客网 时间:2024/06/08 05:37

转自:http://www.cnblogs.com/xdp-gacl/p/3798347.html

获得客户机请求头

getHeader(string name)方法:String 

getHeaders(String name)方法:Enumeration 

getHeaderNames()方法

import java.io.IOException;

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


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


/*
 * HttpServletRequest对象代表客户端的请求,父类是ServletRequest,在客户端通过HTTP协议访问服务器时,请求的所有信息都封装在这个对象中,
 * 通过该对象的方法可以取到请求的所有信息
 * 获取客户端信息的常用方法:
 * getRequestURL方法返回客户端发出请求时的完整URL。
  getRequestURI方法返回请求行中的资源名部分。
  getQueryString 方法返回请求行中的参数部分。
  getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
  getRemoteAddr方法返回发出请求的客户机的IP地址。
  getRemoteHost方法返回发出请求的客户机的完整主机名。
  getRemotePort方法返回客户机所使用的网络端口号。
  getLocalAddr方法返回WEB服务器的IP地址。
  getLocalName方法返回WEB服务器的主机名。


 * 
 * */
public class HttpServletRequest005 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 1、
/*
* String url = request.getRequestURL().toString(); String uri =
* request.getRequestURI(); String queryStr = request.getQueryString();
* String path = request.getPathInfo(); String add =
* request.getRemoteAddr(); String host = request.getRemoteHost();
* String localAdd = request.getLocalAddr(); String localName =
* request.getLocalName(); String method =
* request.getMethod();//得到请求URL地址时使用的方法 HttpSession
* session=request.getSession(); String
* sessionid=request.getRequestedSessionId();
* response.setHeader("content-type", "text/html;charset=UTF-8"); //
* 使用outputStream流输出 OutputStream os = response.getOutputStream();
* os.write(("输出的url:" + url).getBytes()); os.write("</br>".getBytes());
* os.write(uri.getBytes()); // 使用PriterWriter输出 PrintWriter out =
* response.getWriter(); out.write("获取到的客户机信息如下:"); out.write("<hr/>");
* out.write("请求的URL地址:" + url); out.write("<br/>"); out.write("请求的资源:"
* + uri); out.write("<br/>"); out.write("请求的URL地址中附带的参数:" + queryStr);
* out.write("<br/>"); out.write("来访者的IP地址:" + path);
* out.write("<br/>"); out.write("来访者的主机名:" + host); out.write("<br/>");
* out.write("remoteUser:" + path); out.write("<br/>");
* out.write("请求使用的方法:" + method); out.write("<br/>");
* out.write("pathInfo:" + path); out.write("<br/>");
* out.write("localAddr:" + localAdd); out.write("<br/>");
* out.write("localName:" + localName); out.write("<br/>");
* out.write("请求的sessionId:" + sessionid+"请求的session:"+
* session.getCreationTime()+";"+session.getId()+";"+session.
* getAttributeNames());
*/
// 获取客户端的请求头信息
response.setCharacterEncoding("utf-8");
response.setHeader("content-type", "text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// Enumeration 封装了有关枚举数据集合的方法
Enumeration<String> reqHeaders = request.getHeaderNames(); // 获取所有的请求头
out.write("获取到的客户端所有的请求头信息如下:");
out.write("<hr/>");
while (reqHeaders.hasMoreElements()) {
String headName = reqHeaders.nextElement();
String headValue = request.getHeader(headName);// 根据请求头的名字获取对应的请求头的值
out.write(headName + ":" + headValue);
out.write("<br/>");
}
out.write("<br/>");
out.write("获取到的客户端Accept-Encoding请求头的值:");
out.write("<hr/>");
String value = request.getHeader("Accept-Encoding");// 获取Accept-Encoding请求头对应的值
out.write(value);
Enumeration<String> e = request.getHeaders("Accept-Encoding");
while (e.hasMoreElements()) {
String string = (String) e.nextElement();
System.out.println(string);
}
}


}

0 0
原创粉丝点击