Servlet处理HTTP请求(2)

HTTP协议请求行由三个标记组成:请求的HTTP方法、请求的URL、HTTP版本,中间用空格分开。HttpServletRequest对象可以对HTTP请求做出分析,它提供了一些方法来访问请求行的信息:

    getMethod():获取HTTP的请求方法,例如GET、POST等
    getRequestURI():获取请求的URI资源
    getRequestURL():获取请求的URL,包含协议名、服务器名或IP、端口号和请求资源但不包括查询字符串参数
    getQueryString():获取请求URL后面的查询字符串
    getProtocol():获取HTTP的协议名和版本号
    getContextPath():获取请求URI资源的上下文路径
    getServletPath():获取Servlet的映射路径

在Servlet中,HTTP请求头可以通过调用HttpServletRequest对象的如下方法:

    getHeader(name):返回指定的请求头的值 
    getHeaders(name) :返回一个Enumeration(枚举)包含请求头中的所有值 
    getHeaderNames():特定请求中接受到的所有请求头的名称
    getIntHeader(name):获取特定请求头的值,并将其转化为int类型
    getDateHeader(name):获取特定请求头的值,并将其转化为Date类型

获取所有请求头:

    Enumeration enum = request.getHeaderNames();
    while (enum.hasMoreElements()) {
    String headerName = (String) enum.nextElement();
    String headerValue = request.getHeader(headerName);
    out.print("<b>"+headerName + "</b>: ");
    out.println(headerValue + "<br>");
  }

获取浏览器类型:

    String userAgent = request.getHeader("User-Agent");
if((userAgent != null) && (userAgent.indexOf("MSIE")!=-1) )
{
message = "您正在使用MicroSoft IE浏览器";
}
else if((userAgent != null) &&
    (userAgent.indexOf("Firefox")!=-1) )
{
    message = "您正在使用FireFox火狐浏览器";
}

获取表单数据:

Enumeration enum = request.getParameterNames();
while (enum.hasMoreElements()) {
  String pName = (String) enum.nextElement();
  String[] pValues = request.getParameterValues(pName);
  out.print("<b>"+pName + "</b>: ");
  for (int i=0;i<pValues.length;i++) {
    out.print(pValues[i]);
  }
  out.print("<br>");
}

获取原始表单数据:
POST请求不仅可以传输文本信息还可以传输二进制数据
使用HttpServletRequest对象提供的getInputStream()或getReader()方法直接访问表单数据
利用输入流分析原始的输入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值