zoukankan      html  css  js  c++  java
  • 使用Servlet处理请求<http://blog.sina.com.cn/s/blog_5d3fb3cc0100ep9q.html>

    一、GET和POST的区别

    1.GET提交的是文本内容,规定其数据长度不超过255个字符。在GET方式提交的URL中会显示出提交的查询数据而却提交数据的缓存会在浏览器的URL历史状态中,这样我们往往在浏览网页的时候点击后退键不需要重新发送请求。

    2.POST提交的可以使文本内容,也可以使二进制内容,所以我们上传文件的时候用的就是POST得方式。POST对于提交数据长度没有限制,我们发送的数据也不会在URL中出现,所以这种方式较为安全。但是网页提交的数据缓存不会在浏览器中存在,所以我们点击后退到此类的网页的时候一般会出现数据过期等提示。

    3.提交数据的时候一般只有表单才用POST的形式,其他的都是GET的方式。

    二、HTTP请求方法与HttpServlet方法的对应关系

           1.容器调用service(ServletRequest ,ServletResponse)方法;

           2. service(ServletRequest ,ServletResponse)方法再调用同一个Servlet类中的service(HttpServletRequest ,HttpServletResponse)方法;

           3. service(HttpServletRequest ,HttpServletResponse)将分析HTTP请求,找到请求方法类型然后调用相应的处理方法。

           4.如果在自定义的Servlet类中覆盖service方法,do×××方法将不会自动调用。

    三、HTTP请求行的获取

    getMothod():获得请求提交方式

    getRequestURI():获取提交的URI

    getServletPath():获取Servlet映射路径。

    四、HTTP请求头的获得

           Enumeration eu = request.getHeaderName();

           while(eu.hasMoreElements()){

           String name = (String)en.nextElements();

           String values = (String)en.getHeader(name);

    }

    五、HTTP消息体的获取

    利用getParameter(String name)可获得提交表单的内容,但该方法只适用于文本文件的获得,不能获取二进制的数据。

    六、文件上传

           1.设置表单提交数据方式为POST,并设置以二进制提交。

                  Enctype=”multipart/form-data”

           2.request.getInputStream()获得Request输入流

           3.解析输入流并创建文件

    七、请求转发

    利用请求转发可以让每个客户的请求传递给很多Servlet以及web应用程序中的其他资源。重定向和请求转发的最大区别在于,重定向是在客户端完成,需要2次请求,而转发只是在服务端完成,只需要1次请求。

    我们可以利用getRequestDispatcher()方法获得RequestDispatcher对象 ,然后利用forward()或者include()方法实现转发。前者意味着把请求和响应派发给别的资源后就不会再去做任何处理,而后者在派发后并不是完全移交,只是暂时把控制权交给别人。

  • 相关阅读:
    新增模块--性能调测问题荟萃
    SSDB(网络LevelDB)-- 实际遇到的问题
    内存池--定长内存池
    分布式系统
    Tcp Ip -- tcpdump win窗口大小
    GCC手册学习(序)
    GNU--gprof使用总结
    几种TCP连接中出现RST的情况(转载)
    Tcp/Ip--正常情况下的三次握手,四次挥手
    关于cnblogs的排版
  • 原文地址:https://www.cnblogs.com/lowerCaseK/p/Servlet_deal_request.html
Copyright © 2011-2022 走看看