• Servlet的类和方法


    开发 Servlet 相关的程序包主要有两个,即 javax. servlet和j avax.servlet.http。大多数 Servlet 是针对 HTTP 协议的 Web 容器,这样,开发 Servlet 的方法时,会使用 javax.servlet.http.Httpservlet 类。下面介绍 Servlet 开发中经常使用的 API。

    1. Servlet接口

    此接口位于 javax.servlet 包中,定义了 Servlet 的主要方法,声明如表 1 所示。

    方法声明说明
    public void service(ServletRequest request, ServletResponse response)Servlet 在处理客户端请求时调用此方法
    public void destroy()Servlet 容器移除 Servlet 对象时调用此方法,以释放资源空间
    public ServletConfig getServletConfig()用于获取 Servlet 对象的配置信 息,返回 ServletConfig 对象
    public String getServletInfo()返回有关 Servlet 的信息,如作者、版本柄息等

    2. HttpServlet类

    HttpServlet 类是 Servlet 接口的实现类,主要封装了 HTTP 请求的方法,常用的方法声明如表 2 所示。

    方法声明说明
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)用于处理 GET 类型的 HTTP 请求方法
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)用于处理 POST 类型的 HTTP 请求方法
    protected void doPut(HttpServletRequest req, HttpServletResponse resp)用于处理 PUT 类型的 HTTP 请求方法

    3. HttpServletRequest接口

    HttpServletRequest 接口位于 javax.servlet.http 包中,用于封装 HTTP 的请求。通过此接口,可以获取客户端传递的 HTTP 请求参数,常用方法的声明及其说明如表 3 所示。

    方法声明说明
    public String getContextPath()返回上下文路径,此路径以“/”开始
    public Cookie getCookies()返回所有 Cookie 对象,返回值类型为 Cookie 数组
    public String getMethod()返回 HTTP 请求的类型,如 GET 和 POST 等
    public String getQueryString()返回请求的查询字符串
    public String getRequestURI()返回主机名到请求参数之间的部分字符串
    public HttpSession getSession()返回与客户端页面关联的 HttpSession 对象

    4. HttpServletResponse接口

    HttpServletResponse 接口位于 javax.servlet.http 包中,它封装了对 HTTP 请求的响应。

    通过此接口,可以向客户端发送回应,其常用方法声明及说明如表 4 所示。

    方法声明说明
    public void addCookie(Cookie cookie)向客户端发送 Cookie 信息
    public void sendError(int sc)发送一个错误状态码为 sc 的错误响应到客户端
    public void sendError(int sc,String msg)发送包含错误状态码及错误信息响应到客户端
    public void sendRedirect(String location)将客户端请求重定向到新的 URL

    HttpServletRequest 接口和 HttpServletResponse 接口中封装了 HTTP 请求,更多的方法读者可以参阅 JavaEE API 文档。

    要开发一个可以处理 HTTP 请求的 Servlet 程序,需要继承 HttpServlet 类,继承 HttpServlet 之后,就可以重写 HttpServlet 类中的方法,然后编写代码实现。

    【例1】创建 Servlet 程序 Welcome.java,程序运行显示 “Welcome Servlet”。

    首先创建一个 Servlet 文件 Welcome.java,编写代码如下:

    1. import javax.servlet.ServletException;
    2. import javax.servlet.http.HttpServlet;
    3. import javax.servlet.http.HttpServletRequest;
    4. import javax.servlet.http.HttpServletResponse;
    5. public class Welcome extends HttpServlet
    6. {
    7. //第一个Servlet
    8. public void goGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
    9. {
    10. PrintWrite out=response.getWrite(); //创建输出流对象,准备输出
    11. out.println("");
    12. out.println("Welcome Servlet");
    13. out.println("");
    14. out.print("

      Welcome Servlet

      ");
    15. out.println("");
    16. out.println("");
    17. out.close();
    18. }
    19. }

    以上代码从 HttpServletResponse 对象中获取一个输出流对象,然后通过输出流对象 out 输出每个 HTML 元素。

    编译后仍无法直接访问,需要在 \WEB-INF\web.xml 文件中进行配置,完成 Servlet 程序的映射,Servlet 才能执行。本例在 web.xml 文件中添加如下代码:

    1. Welcome
    2. ch05.Welcome
    3. Welcome
    4. /servlet/Welcome

    上面的配置程序表示:通过 /servlet/Welcome 路径可以找到对应的  节点,找到  所指定的 Servlet 程序。

    启动服务器后,在浏览器中输入 http://localhost:8080/ch05/5-2/servlet/Welcome,程序运行结果如图 1 所示。


    图1 Welcome程序的运行结果

     

  • 相关阅读:
    云计算(Docker)
    【k哥爬虫普法】非法入侵计算机信息系统,获取1500万余条个人信息!
    分布式模式之Broker模式
    12.1 Go 测试的概念
    Ubuntu下运行QEMU模拟riscv64跑Debian
    【云原生|探索 Kubernetes 系列 5】简化 Kubernetes 的部署,深入解析其工作流程
    Vue2(十二):Vuex环境搭建、Vuex工作原理、几个配置项、多组件共享数据、Vuex模块化
    【Shell脚本8】Shell printf 命令
    巧用正则表达式
    七、自定义配置
  • 原文地址:https://blog.csdn.net/unbelievevc/article/details/127815915