当前位置:编程学习 > JAVA >>

深入体验JavaWeb开发内幕——Request相关知识及应用总结

HttpServletRequest

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

一、通过request常用方法获得相关信息:

1、通过request常用方法获得客户机信息

    getRequestURL方法返回客户端发出请求时的完整URL。

    getRequestURI方法返回请求行中的资源名部分。

    getQueryString方法返回请求行中的参数部分。

   getRemoteAddr方法返回发出请求的客户机的IP地址

   getRemoteHost方法返回发出请求的客户机的完整主机名

   getRemotePort方法返回客户机所使用的网络端口号

  getLocalAddr方法返回WEB服务器的IP地址。

  getLocalName方法返回WEB服务器的主机名

  getMethod得到客户机请求方式

例如在Request.java中加入如下代码:

[java] view plaincopy
<span style="font-size:14px;"><strong>//返回相关请求的信息 
        String uri=request.getRequestURI(); 
        String rad = request.getRemoteAddr(); 
        String rh = request.getRemoteHost(); 
        String ru = request.getRemoteUser(); 
        int rp = request.getRemotePort(); 
        String cp = request.getContextPath(); 
        String la = request.getLocalAddr(); 
        String ce = request.getCharacterEncoding(); 
        String gm = request.getMethod(); 
        String qs = 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); 
</strong></span> 
 即可获取相关信息。

2、通过request常用方法获得客户机请求头信息

  getHead(name)方法

 getHeaders(String name)方法

 getHeaderNames方法

如:

[java] view plaincopy
<span style="font-size:14px;"><strong>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); 
        } 
    } 
</strong></span> 

获得客户机请求参数(客户端提交的数据)

  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等组件的值进行数据库操作或其他处理操作。

来看一个具体应用:

 

界面代码如下:

[html] view plaincopy
<span style="font-size:14px;"><strong>  Register.html 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
    <title>Register.html</title> 
     
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
    <meta http-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/> 
    密码:  <input type="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> 
   
  </body> 补充:Web开发 , 其他 ,

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,