后台获取前端信息的纽带--HttpServletRequest

HttpServletRequestRequest对象具体应用

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

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

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

  •     getRequestURL方法返回客户端发出请求时的完整URL。
  • getRequestURI方法返回请求行中的资源名部分。
  • getQueryString 方法返回请求行中的参数部分。
  • getRemoteAddr方法返回发出请求的客户机的IP地址
  • getRemoteHost方法返回发出请求的客户机的完整主机名
  • getRemotePort方法返回客户机所使用的网络端口号
  • getLocalAddr方法返回WEB服务器的IP地址。
  • getLocalName方法返回WEB服务器的主机名
  • getMethod得到客户机请求方式

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

[java]  view plain copy
  1. //返回相关请求的信息  
  2.            String uri=request.getRequestURI();  
  3.               Stringrad = request.getRemoteAddr();  
  4.               Stringrh = request.getRemoteHost();  
  5.               Stringru = request.getRemoteUser();  
  6.               intrp = request.getRemotePort();  
  7.               Stringcp = request.getContextPath();  
  8.               Stringla = request.getLocalAddr();  
  9.               Stringce = request.getCharacterEncoding();  
  10.               Stringgm = request.getMethod();  
  11.               Stringqs = request.getQueryString();  
  12.    
  13.               System.out.println(uri);  
  14.               System.out.println(rad);  
  15.               System.out.println(rh);  
  16.               System.out.println(ru);  
  17.               System.out.println(rp);  
  18.               System.out.println(cp);  
  19.               System.out.println(la);  
  20.               System.out.println(ce);  
  21.               System.out.println(gm);  
  22.               System.out.println(qs);  

  即可获取相关信息。

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

  •   getHead(name)方法
  •   getHeaders(String name)方法
  •   getHeaderNames方法 

如:

[java]  view plain copy
  1. private void getRequestValue(HttpServletRequest request) {  
  2.         //获得客户机请求头及请求头的值  
  3.         System.out.println(request.getHeader("method"));  
  4.         Enumeration e = request.getHeaderNames();  
  5.         while(e.hasMoreElements()){  
  6.             String name = (String)e.nextElement();  
  7.             String value = request.getHeader(name);  
  8.             System.out.println(name+":"+value);  
  9.         }  
  10.     }  


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

来看一个具体应用:


界面代码主体部分如下:

 

[html]  view plain copy
  1.  Register.html  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">  
  3. <html>  
  4.  <head>  
  5.    <title>Register.html</title>  
  6.         
  7.     <metahttp-equivmetahttp-equiv="keywords"content="keyword1,keyword2,keyword3">  
  8.     <metahttp-equivmetahttp-equiv="description" content="this is my page">  
  9.    <meta http-equiv="content-type" content="text/html;charset=UTF-8">  
  10.      
  11.    <!--<link rel="stylesheet" type="text/css"href="./styles.css">-->  
  12.    
  13.  </head>  
  14.    
  15.  <body>  
  16.  <form action ="RequestLogin" method ="post">  
  17.     用户名:<input type="text"name = "username" ><br/>  
  18.     密码:  <inputtypeinputtype="password" name = "password"><br/>  
  19.   性别:<input type="radio"name = "sex" value ="male">男  
  20.      <input type="radio" name = "sex" value="female"><br/>  
  21.   籍贯: <select name="city">  
  22.        <option value ="HeBei">河北</option>  
  23.        <opton value ="HuBei">湖北</opton>  
  24.        <option value ="ShanXi">山西</option>  
  25.      </select><br/>  
  26. 简历:<br/>  
  27.   &nsp;<textarea rows="5" cols="20" name="intro"></textarea>  
  28. <br/>  
  29. 爱好:<br/>  
  30. <input type="checkbox" name="hobbies" value ="sing"/>唱歌  
  31. <input type="checkbox" name="hobbies" value ="dance"/>跳舞  
  32. <input type="checkbox" name="hobbies" value ="readbook"/>读书  
  33. <input type="checkbox" name="hobbies" value ="readnewspaper"/>看报<br/>  
  34. 上传头像:<br/>  
  35. <input type="file" value="image" name ="browser"><br/>  
  36. <input type="submit" value="提交"/>  
  37.  </form>  
  38. <br/>  
  39. <input type="submit" value="提交"/>  
  40.  </form>  
  41.    
  42.  </body>  
  43. </html>  

然后,定义一个RequestLogin.java类通过request对象获取表单中组件的值:

如调用自定义方法:

[java]  view plain copy
  1. private void getInformation(HttpServletRequest request)  
  2. throws UnsupportedEncodingException {  
  3. //取出参数值   
  4. ="submit" value="提交"/>  
  5.  </form>  
  6.    
  7.  </body>  
  8. </html>  

然后,定义一个RequestLogin.java类通过request对象获取表单中组件的值:

如调用自定义方法:

[java]  view plain copy
  1. private void getInformation(HttpServletRequest request)  
  2. throws UnsupportedEncodingException {  
  3. //取出参数值   
  4. String name = request.getParameter("username"
相关文章
相关标签/搜索