美文网首页
Servlet和JSP学习总结(五)--javax.servle

Servlet和JSP学习总结(五)--javax.servle

作者: madlike | 来源:发表于2017-08-16 14:11 被阅读0次

    大多数应用程序都要与HTTP结合起来使用。这意味着可以利用HTTP提供的特性。javax.servlet.http包是Servlet API中另一个比较重要的包,其中包含了用于编写Servlet应用程序的类和接口。javax.servlet.http中的许多类型都覆盖了javax.servlet中的类型。


    javax.servlet.http包中的主要成员

    本文将对HttpServlet类、HttpServletRequest接口和HttpServletResponse接口进行简要概括,有关Cookie的内容会在后续文章中进行详细介绍。

    1.HttpServlet类

    HttpServlet类继承了GenericServlet类,并且覆盖了GenericServlet中的抽象方法service。此外,HttpServlet还增加了一个service方法,这个方法和Servlet接口中的方法的区别在于,前者接受HttpServletRequest和HttpServletResponse,而不是ServletRequest和ServletResponse。

    下面是HttpServlet中对原始service方法的实现:

    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
        HttpServletRequest request;
        HttpServletResponse response;
        try {
            request = (HttpServletRequest) req;
            response = (HttpServletResponse) res;
        } catch (ClassCastException e) {
            throw new ServletException("non-HTTP request or response");
        }
        service(request, response);
    }
    

    原始的Service方法将Servlet容器的请求和响应对象分别转换成HttpServletRequest和HttpServletResponse,并调用新的Service方法。这种转换总是会成功的,因为在调用Servlet的Service方法时,Servlet容器传入的就是HttpServletRequest和HttpServletResponse对象。

    HttpServlet中的Service方法会检验用来发送请求的HTTP方法(通过调用request.getMethod),并调用以下方法之一:doGet、doPost、doHead、doPut、doTrace、doOptions和doDelete。这7 种方法中,每一种方法都表示一个HTTP方法。doGet和doPost是最常用的。因此,HttpServlet的子类不需要覆盖Service方法,只要覆盖doGet或者doPost,或者同时覆盖doGet和doPost即可。

    2.HttpServletRequest接口

    HttpServletRequest表示HTTP环境中的请求。它扩展javax.servlet.ServletRequest接口,并添加了几个方法。新增的部分方法如下:

    java.lang.String getContextPath()
    返回表示请求上下文的请求URI部分。
    Cookie[] getCookies()
    返回一个Cookie对象数组。
    java.lang.String getHeader(java.lang.String name)
    返回指定HTTP标题的值。
    java.lang.String getMethod()
    返回生成这个请求的HTTP方法名称。
    java.lang.String getQueryString()
    返回请求URL中的查询字符串。
    HttpSession getSession()
    返回与这个请求相关的会话对象。如果没有,将创建一个新的会话对象。
    HttpSession getSession(boolean create)
    返回与这个请求相关的会话对象。如果没有,并且create参数为True,将创建一个新的会话对象。

    3.HttpServletResponse接口

    HttpServletResponse 表示HTTP 环境中的Servlet 响应。下面是它里面定义的部分方法:

    void addCookie(Cookie cookie)
    给这个响应对象添加一个cookie。
    void addHeader(java.lang.String name, java.lang.String value)
    给这个响应对象添加一个header。
    void sendRedirect(java.lang.String location)
    发送一条响应码,将浏览器跳转到指定的位置。

    下一篇:Servlet和JSP学习总结(六)--部署描述符与@webservlet注解

    相关文章

      网友评论

          本文标题:Servlet和JSP学习总结(五)--javax.servle

          本文链接:https://www.haomeiwen.com/subject/cnhirxtx.html