(3)HttpServletRequest

HttpSereletRequest对象
请求信息的获取API,在下面的代码中有体现。
注意实体内容用doPost方法
什么方式请求就要用什么方法获取数据GET–doGet post—doPost
编程小问题:当每次修改完代码运行时,要在server中右击要运行的工程,reploy…下(重新部署工程)

<form action="/day10/RequestDemo" method="post">//action:设置表单信息发送存储的URL
       用户名<input type="text" name="user" value=""/>
      密码<input type="text" name="psw" value=""/>
   <input type="submit" value="提交数据"/>
   </form>
public class RequestDemo extends HttpServlet {
/*
 * 
 * ①Tomcat服务器接收到浏览器发送的请求数据,然后封装到HttpServletRequest对象中
 * 是服务器封装的对象,因为浏览器可能就不是用Java写的
 * ②Tomcat服务器调用doGet方法,然后把request对象传入到servlet中
 * 
 */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

             //requestLine(request);
            //请求头

           //requestHeaders(request);
    }


    @Override//为了接收post提交的请求
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

         InputStream in=req.getInputStream();

         //字节流读出
         byte [] buf=new byte[1024];
         int len=0;
         while((len=in.read(buf))!=-1)
         {
             System.out.println(new String(buf,0,len));
         }
    }


    private void requestHeaders(HttpServletRequest request) {
        System.out.println("请求访问的目标地址:"+request.getHeader("host"));//单独取一个消息头信息

        //取所有的消息头信息
        Enumeration<String> en=request.getHeaderNames();//获取所有的头键值对
        while(en.hasMoreElements())
        {
           String key=en.nextElement();
           System.out.println(key+":"+en.nextElement());

        }
    }

    private void requestLine(HttpServletRequest request) {
        //从request对象中取出请求数据

            //请求行  格式:GET /day09/hello HTTP/1.1
            System.out.println("请求方式:"+request.getMethod());

            System.out.println("URI:"+request.getRequestURI());

            System.out.println("URL:"+request.getRequestURL());

            System.out.println("http协议版本:"+request.getProtocol());
    }

}
posted @ 2017-08-10 13:05  测试开发分享站  阅读(111)  评论(0编辑  收藏  举报