【HttpServletRequest简介】

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获取客户端的这些信息。

【获取当前请求的URI和URL】

request.getRequestURI();   //返回客户端发出请求的完整URL
request.getRequestURL(); //返回客户端发出请求的请求行中的资源名部分

【获取 当前请求行中的参数部分】

request.getQueryString();

【获取 当前发出请求的客户端的IP地址】

request.getRemoteAddr();

【获取当前发出请求的客户端的完整主机名】

request.getRemoteHost();

【获取当前发出请求的客户端的网络端口号】

request.getRemotePort();

【返回Web服务器的IP地址】

request.getLocalAddr();

【返回Web服务器的主机名】

request.getLocalName();

【返回当前客户端请求的请求方式】

request.getMethod();

【使用request获取请求头相关的方法(使用了Servlet3.0)】

[ QWE.java (Servlet)]

package com.Higgin.servlet;

import java.io.IOException;
import java.util.Enumeration; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; @WebServlet("/QWE")
public class QWE extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Accept-Encoding:"+request.getHeader("Accept-Encoding")); System.out.println("--------------遍历Accept-Encoding中所有的value------------------");
Enumeration e=request.getHeaders("Accept-Encoding");
while(e.hasMoreElements()){
String value=(String) e.nextElement();
System.out.println(value);
}
System.out.println("-------------遍历所有的请求头的名字和属性-------------------");
Enumeration ehs=request.getHeaderNames(); //获取所有的请求头名字
while(ehs.hasMoreElements()){
String name=(String) ehs.nextElement();
String value=request.getHeader(name);
System.out.println(name+" ----- "+value);
}
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
} }

【运行结果】

[ 客户端浏览器 ]

[ 服务端控制台 ]

【获取POST/GET传递的参数】

String name=request.getParameter("name");  //获取一个参数
String[] names=request.getParameterValues("names"); //获取多个参数
Enurmation<String> names=request.getParameterNames(); //将发送请求页面中form表单里所有具有name属性的表单对象获取(包括button).返回一个Enumeration类型的枚举.

14_Request对象的更多相关文章

  1. 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

    阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...

  2. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  3. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  4. Asp.Net WebApi核心对象解析(下篇)

    在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...

  5. JS核心系列:浅谈原型对象和原型链

    在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象(Object)和函数对象(Function). 一般而言,通过new Function产生的对象是函数对象,其他对 ...

  6. Chrome出了个小bug:论如何在Chrome下劫持原生只读对象

    Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...

  7. XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法

            在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...

  8. ASP.NET内置对象的总结

    1. Response对象可形象的称之为响应对象,用于将数据从服务器发送回浏览器. 实例源码:链接: http://pan.baidu.com/s/1dDCKQ8x 密码: ihq0  2. Requ ...

  9. ADO.NET对象的详解

    1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...

随机推荐

  1. 菜单设计器(Menu Designer)及其B/S,C/S双重实现(B/S开源)

    ERP/MIS开发 菜单设计器(Menu Designer)及其B/S,C/S双重实现(B/S开源)   一直从事ERP/MIS的开发工作,今天来展现一下菜单设计器的设计,及其用途,并对B/S部分代码 ...

  2. 英语阅读积累<一>

    Passage 1.Woodpecker    惹treat or trick There are many apple trees in a garden.  They’re good friend ...

  3. 安卓开发21:深入理解Handler

    Handler相关说明: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释:安卓的UI线程(即OnCreate函数创建的线程)是线程非安全的.也就是说,在UI线程中,使用sleep这样 ...

  4. gradle编译出错:Execution failed for task &#39;:app:compileTestDebugJava&#39;.

    今天更新了android studio,从0.5.3升级到0.6.1版本号,结果在IDE中编译时没有问题.可是在命令行时编译就会出现下面错误: :app:compileTestDebugJava FA ...

  5. 基于S7-200的PLC对里程轮(增量式码盘)解码的应用

             解码模块为JC-11:工业增量式码盘 解码模块,接口简单,易于使用. 应用Step7-MicroWIN编程软件,为S7-200PLC设计本编码盘的应用程序.由于编码盘输出的脉冲信号频 ...

  6. win8如何删除未知账户(s-1-5-21-2000478354-1390067357-725345543-1003)

    今天突然发现从别处复制来的游戏压缩文件不能解压,并且以前把游戏文件都是放在该目录下的,以前局域网玩起游戏来老是不能作为主机,且不能下载局域网玩的RPG地图,以前就注意过这个未知账户(s-1-5-21- ...

  7. 一天JavaScript示例-在功能上的标量参数和数组参数的差异

    <!DOCTYPE> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta h ...

  8. 打开已存在 Android项目及常见的问题

    Eclipse 打开已存在 Android项目及常见的问题   1.  点击菜单“File”-- "Import",会弹出 Import 对话框:   2,  选择“General ...

  9. [012]泛型--lambda表达式捕获

    lambda表达式的捕获跟参数差不多,可以是值或者引用. 1.值捕获 与传值参数类似,采用值捕获的前期是变量可以拷贝:与参数不通透的是:被捕获的变量的值是在lambda创建时拷贝,而不是调用时拷贝. ...

  10. Windows7中Emacs 24 shell使用Gitbash

    今天发现可以在shell中直接打开Gitbash,Gitbash提供了一些有用的Linux风格命令,最关键是我用emacs的时候不用再打开一个Gitbash终端操纵Git了. 在~/.emacs.d/ ...