HttpServletRequestRequest对象具体应用
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的相关方法,即可以获得客户的这些信息。
一、通过request常用方法获得相关信息:
1、通过request常用方法获得客户机信息
- getRequestURL方法返回客户端发出请求时的完整URL。
- getRequestURI方法返回请求行中的资源名部分。
- getQueryString 方法返回请求行中的参数部分。
- getRemoteAddr方法返回发出请求的客户机的IP地址
- getRemoteHost方法返回发出请求的客户机的完整主机名
- getRemotePort方法返回客户机所使用的网络端口号
- getLocalAddr方法返回WEB服务器的IP地址。
- getLocalName方法返回WEB服务器的主机名
- getMethod得到客户机请求方式
例如在Request.java中加入如下代码:
- //返回相关请求的信息
- String uri=request.getRequestURI();
- Stringrad = request.getRemoteAddr();
- Stringrh = request.getRemoteHost();
- Stringru = request.getRemoteUser();
- intrp = request.getRemotePort();
- Stringcp = request.getContextPath();
- Stringla = request.getLocalAddr();
- Stringce = request.getCharacterEncoding();
- Stringgm = request.getMethod();
- Stringqs = request.getQueryString();
-
- System.out.println(uri);
- System.out.println(rad);
- System.out.println(rh);
- System.out.println(ru);
- System.out.println(rp);
- System.out.println(cp);
- System.out.println(la);
- System.out.println(ce);
- System.out.println(gm);
- System.out.println(qs);
即可获取相关信息。
2、通过request常用方法获得客户机请求头信息
- getHead(name)方法
- getHeaders(String name)方法
- getHeaderNames方法
如:
- private void getRequestValue(HttpServletRequest request) {
- //获得客户机请求头及请求头的值
- System.out.println(request.getHeader("method"));
- Enumeration e = request.getHeaderNames();
- while(e.hasMoreElements()){
- String name = (String)e.nextElement();
- String value = request.getHeader(name);
- System.out.println(name+":"+value);
- }
- }
3.获得客户机请求参数(客户端提交的数据)
- getParameter(name):获取指定名称的参数值。这是最为常用的方法之一。
- getParameterValues(String name):获取指定名称参数的所有值数组。它适用于一个参数名对应多个值的情况。如页面表单中的复选框,多选列表提交的值。
- getParameterNames():返回一个包含请求消息中的所有参数名的Enumeration对象。通过遍历这个Enumeration对象,就可以获取请求消息中所有的参数名
- getParameterMap():返回一个保存了请求消息中的所有参数名和值的Map对象。Map对象的key是字符串类型的参数名,value是这个参数所对应的Object类型的值数组。
二、request的常见应用
1、 各种表单输入项数据的获取
如可以获取form表单中的text、password、radio、checkbox、 file、select、textarea、 hidden、image、button等组件的值进行数据库操作或其他处理操作。
来看一个具体应用:

界面代码主体部分如下:
- Register.html
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">
- <html>
- <head>
- <title>Register.html</title>
-
- <metahttp-equivmetahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
- <metahttp-equivmetahttp-equiv="description" content="this is my page">
- <meta http-equiv="content-type" content="text/html;charset=UTF-8">
-
- <!--<link rel="stylesheet" type="text/css"href="./styles.css">-->
-
- </head>
-
- <body>
- <form action ="RequestLogin" method ="post">
- 用户名:<input type="text"name = "username" ><br/>
- 密码: <inputtypeinputtype="password" name = "password"><br/>
- 性别:<input type="radio"name = "sex" value ="male">男
- <input type="radio" name = "sex" value="female">女<br/>
- 籍贯: <select name="city">
- <option value ="HeBei">河北</option>
- <opton value ="HuBei">湖北</opton>
- <option value ="ShanXi">山西</option>
- </select><br/>
- 简历:<br/>
- &nsp;<textarea rows="5" cols="20" name="intro"></textarea>
- <br/>
- 爱好:<br/>
- <input type="checkbox" name="hobbies" value ="sing"/>唱歌
- <input type="checkbox" name="hobbies" value ="dance"/>跳舞
- <input type="checkbox" name="hobbies" value ="readbook"/>读书
- <input type="checkbox" name="hobbies" value ="readnewspaper"/>看报<br/>
- 上传头像:<br/>
- <input type="file" value="image" name ="browser"><br/>
- <input type="submit" value="提交"/>
- </form>
- <br/>
- <input type="submit" value="提交"/>
- </form>
-
- </body>
- </html>
然后,定义一个RequestLogin.java类通过request对象获取表单中组件的值:
如调用自定义方法:
- private void getInformation(HttpServletRequest request)
- throws UnsupportedEncodingException {
- //取出参数值
- ="submit" value="提交"/>
- </form>
-
- </body>
- </html>
然后,定义一个RequestLogin.java类通过request对象获取表单中组件的值:
如调用自定义方法:
- private void getInformation(HttpServletRequest request)
- throws UnsupportedEncodingException {
- //取出参数值
- String name = request.getParameter("username"