HttpServletRequest接口

来源:互联网 发布:淘宝物流详情页面html 编辑:程序博客网 时间:2024/05/16 13:58
-研究javax.servlet.http.HttpServletRequest接口
       1.HttpServletRequest是一个接口,Servlet规范中重要的接口之一,
       2.继承关系
          -public interface HttpServletRequest extends ServletRequest{
            
          }
       3.HttpServletRequest接口的实现类是WEB容器负责实现的,Tomcat服务器有自己的的实现,
                     但是程序员还是只需要面向HttpServletRequest接口调用方法即可,不需要关心具体实现。
       4.HttpServletRequest这个对象中封装了哪些信息?
                        封装了Http请求协议的全部内容:
             -请求方式:
             -URI:
             -协议版本号:
             -表单提交的数据
                                  。。。。
       5.HttpServletRequest一般变量的名字叫做:request,表示请求,HttpServletRequest代表一次请求,
                  一次请求对应一个Request对象,100个请求对应100个request对象,所以request对象的声明周期是短暂的。
       6.HttpServletRequest接口中常用的方法:

           String getParameter(String name)//通过key获取value这个一维数组中的首元素

           String[] getParameterValues(String name)//通过Map集合的Key获取Value

           Map getParameterMap();//获取这个Map集合
           Enumeration getParameterNames()//获取整个Map集合的所有Key

         
           //表单是这样的格式提交的,POST请求在请求体中提交,数据格式:
           //username=admin&password=123&sex=m&interest=sport&interest=music&grade=dz&introduce=ok
           -表单提交的数据,会自动被封装到request对象中,request对象中有Map集合存储这些数据:
           map集合的key是name,value是一个字符串类型的一维数组
           /*
             Map<String,String[]>
             key             value
             --------------------------
             username        {"admin"}
             password        {"123"}
             sex             {"m"}
             interest        {"sport","music"}
             grade           {"dz"}
             introduce       {"ok"}

           */

方法使用案例代码如下:

      public class SaveUserServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //获取用户信息,表单提交的,这些数据被自动封装到request对象中了
        //从request中获取这些信息
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        String sex=request.getParameter("sex");
        String interest=request.getParameter("interest");
        String grade=request.getParameter("grade");
        String introduce=request.getParameter("introduce");
        System.out.println(username);
        System.out.println(password);
        System.out.println(sex);
        System.out.println(interest);
        System.out.println(grade);
        System.out.println(introduce);
        //获取所有兴趣对象
        //这个方法适合获取chckbox中的数据
        String [] interests=request.getParameterValues("interest");
        for(String in:interests){
            System.out.println(in);
        }
        //获取整个参数Map集合
        Map<String,String[]> parameterMap=request.getParameterMap();
        Set<String> names=parameterMap.keySet();
        for(String name:names){
            String [] value=parameterMap.get(name);
            System.out.println(name+"="+value);
        }
        //获取集合Map中的所有key
         Enumeration<String> keys=request.getParameterNames();
        while(keys.hasMoreElements()){
             String key= keys.nextElement();
             System.out.println(key);
        }
    }
 

}

web.xml文件配置如下:

 <welcome-file-list>
       <welcome-file>register.html</welcome-file>
    </welcome-file-list>
    <servlet>
       <servlet-name>save</servlet-name>
       <servlet-class>com.qq1009108034.SaveUserServlet</servlet-class>
    </servlet>
    <servlet-mapping>
       <servlet-name>save</servlet-name>
       <url-pattern>/user/save</url-pattern>
    </servlet-mapping>

前台代码如下:

<html>
<head>
  <title>注册</title>
</head>
<body>
  <form action="/prj-servlet-12/user/save" method="post">
    用户名:
    <input type="text" name="username"/>
    <br>
    密码:
    <input type="password" name="password"/>
    <br>
    性别:
          男<input type="radio"name="sex" value="m"/>
         女<input type="radio"name="sex" value="f"/>
     <br>
    爱好:
    <input type="checkbox" name="interest" value="sport"/>运动
    <input type="checkbox" name="interest" value="music"/>音乐
    <input type="checkbox" name="interest" value="dance"/> 跳舞
    <input type="checkbox"name="interest"value="study"/>学习
    <input type="checkbox" name="interest" value="read"/> 阅读
    <br>
    学历:
    <select name="grade">
       <option value="gz">高中</option>
        <option value="dz">大专</option>
         <option value="db">本科</option>
    </select>
    <br>
    简介:
    <textarea rows="10" cols="60" name="introduce"> </textarea>
    <br>
    <input type="submit" value="注册"/>
    <input type="reset" value="重置"/>
     </form>
</body>
</html>
     
          
          
          
         
0 0
原创粉丝点击