栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

对HttpServlet源码分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对HttpServlet源码分析

  • HttpServlet类是专门为HTTP协议准备的。比GenericServlet更适合HTTP协议下开发。

  • HttpServletRequest对象中封装了什么信息?

    • HttpServletRequest,简称request对象。

    • HttpServletRequest中封装了请求协议的全部内容。

    • Tomcat服务器将“请求协议”中的数据全部解析出来,然后将这些对象全部封装到request对象当中。

  • HttpServletResponse对象是专门来响应HTTP协议到浏览器的。

  • 直接编写一个Servlet直接继承HttpServlet,直接重写HttpServlet类中的service()方法可以么?

    • 可以,只是不会再享受405错误的提示。

  • 如何开发一个Servlet类?

    • 第一步:编写一个Servlet类继承HttpServlet

    • 第二步:重写doGet方法或者重写doPost方法,重写谁?由javaweb程序员说的算。

    • 第三步:将Servlet类配置到web.xml文档中。

    • 第四步:准备前端的页面(form表单),form表单中指定请求路径即可。


一些主要的方法:

  • doGet()和doPost()方法:
    • 在HttpServlet的service(HttpServletRequest,HttpServletResponse)方法会去判断当前请求是GET还是POST。如果是GET请求,那么会去调用本类的doGet()方法,如果是POST请求会去调用doPost()方法,这说明我们在子类中去覆盖doGet()或doPost()方法即可。
    • public void doGet(HttpServletRequest request, HttpServletResponse response)
                          throws ServletException, IOException {
                  }
      
      
      
       public void doPost(HttpServletRequest request, HttpServletResponse response)
                          throws ServletException, IOException {
                  }
  •  HttpServletRequest的方法:
    • String getParameter(String paramName);    //获取指定请求参数的值
      
      String getMethod();   //获取请求方法,例如GET或POST
      
      String getHeader(String name);    //获取指定请求头的值
      
      void setCharacterEncoding(String encoding);    
      //设置请求体的编码!因为GET请求没有请求体,所以这个方法只只对POST请求有效。当调用request.setCharacterEncoding(“utf-8”)之后,再通过getParameter()方法获取参数值时,那么参数值都已经通过了转码,即转换成了UTF-8编码。所以,这个方法必须在调用getParameter()方法之前调用!

       

  •  HttpServletResponse的方法:
    • PrintWriter getWriter();   //获取字符响应流,使用该流可以向客户端输出响应信息
      
      ServletOutputStream getOutputStream();    //获取字节响应流,当需要向客户端响应字节数据时,需要使用这个流,例如要向客户端响应图片
      
      void setCharacterEncoding(String encoding);    //用来设置字符响应流的编码,例如在调用setCharacterEncoding(“utf-8”);之后,再response.getWriter()获取字符响应流对象,这时的响应流的编码为utf-8,使用response.getWriter()输出的中文都会转换成utf-8编码后发送给客户端
      
      void setHeader(String name, String value);    //向客户端添加响应头信息,例如setHeader(“Refresh”, “3;url=http://www.itcast.cn”),表示3秒后自动刷新到http://www.itcast.cn
      
      void setContentType(String contentType);    //该方法是setHeader(“content-type”, “xxx”)的简便方法,即用来添加名为content-type响应头的方法。content-type响应头用来设置响应数据的MIME类型,例如要向客户端响应jpg的图片,那么可以setContentType(“image/jepg”),如果响应数据为文本类型,那么还要台同时设置编码,例如setContentType(“text/html;chartset=utf-8”)表示响应数据类型为文本类型中的html类型,并且该方法会调用setCharacterEncoding(“utf-8”)方法
      
      void sendError(int code, String errorMsg);   //向客户端发送状态码,以及错误消息。例如给客户端发送404:sendError(404, “您要查找的资源不存在!”)
      
      
      

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/891762.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号