ITPub博客

首页 > 数据库 > 数据库开发技术 > 第一个Servlet程序

第一个Servlet程序

原创 数据库开发技术 作者:jackzhang 时间:2017-12-21 12:54:12 0 删除 编辑

前几天准备学习SSH框架,可是发现它需要先学习一些其他的基础知识,比如 HTML、 CSS、 JSP以及 Servlet等。接下来我们就一起来学习 Servlet&JSP的一些知识。这部分的内容知识点很多来自 Servlet、JSP和SpringMVC初学指南一书,如果有些地方说的不太详细,大家可以去参考这本书。接下来我们就开始第一个 Servlet程序吧!不过在开始之前,我们还是得预热一下 Servlet的知识。 Servlet技术的核心就是 Servlet接口,它是所有 Servlet类必须直接或间接实现的一个接口。这个接口中声明了如下5个方法,其中包括:

  • 三个生命周期方法:

  1. ● void init(ServletConfig config) throws ServletException:当该Sservlet第一次被请求时,

  2. Servlet容器会调用这个方法。这个方法在后续请求中不会被再次调用。换句话说,就是该方法只会执行一次。

  3. 我们可以利用该方法来做一些初始化的工作。

  4. ● void service(ServletRequest reqeust, ServletResponse response) throws

  5. ServletException, java.io.IOException:每当请求Servlet时,Servlet容器就会调用这个方法。

  6. 第一次请求Servlet时,Servlet容器调用init方法和service方法。后续的请求只会调用service方法。

  7. ● void destroy():当要销毁Servlet时,Servlet容器就会调用这个方法。当要卸载应用程序时,

  8. 或者当要关闭Servlet容器时,就会发生这种情况。一般在这个方法中编写清除代码。


  • 两个非生命周期方法

  1. ● java.lang.String getServletInfo():该方法返回Servlet的描述。你可以返回有用或为null的任意字符串。

  2. ● ServletConfig getServletConfig():这个方法会返回由Servlet容器传给init方法的ServletConfig。

  3. 但是,为了让该方法返回一个非null值,必须将传给init方法的ServletConfig赋给一个类级变量。


OK,第一个 Servlet程序,简单明了,直接上代码:

  1. package com.servlet;

  2. import java.io.IOException;

  3. import java.io.PrintWriter;

  4. import javax.servlet.Servlet;

  5. import javax.servlet.ServletConfig;

  6. import javax.servlet.ServletException;

  7. import javax.servlet.ServletRequest;

  8. import javax.servlet.ServletResponse;

  9. import javax.servlet.annotation.WebServlet;

  10. /**

  11. * Servlet implementation class MyServlet

  12. */

  13. @WebServlet(name = "MyServlet", urlPatterns = {"/my"})

  14. public class MyServlet implements Servlet {

  15.    private transient ServletConfig servletConfig;

  16.    /**

  17.     * @see Servlet#init(ServletConfig)

  18.     */

  19.    public void init(ServletConfig servletConfig) throws ServletException {

  20.        this.servletConfig = servletConfig;

  21.    }

  22.    /**

  23.     * @see Servlet#destroy()

  24.     */

  25.    public void destroy() {

  26.        // TODO Auto-generated method stub

  27.    }

  28.    /**

  29.     * @see Servlet#getServletConfig()

  30.     */

  31.    public ServletConfig getServletConfig() {

  32.        return servletConfig;

  33.    }

  34.    /**

  35.     * @see Servlet#getServletInfo()

  36.     */

  37.    public String getServletInfo() {

  38.        return "My Servlet";

  39.    }

  40.    /**

  41.     * @see Servlet#service(ServletRequest request, ServletResponse response)

  42.     */

  43.    public void service(ServletRequest request, ServletResponse response)

  44.            throws ServletException, IOException {

  45.        String servletName = servletConfig.getServletName();

  46.        response.setContentType("text/html");

  47.        PrintWriter writer = response.getWriter();

  48.        writer.print("<html><head></head>" + "<body>Hello from " +

  49.                servletName + "</body></html>");

  50.    }

  51. }

首先我们注意到这句代码:

  1. @WebServlet(name = "MyServlet", urlPatterns = {"/my"})

name属性中我们可以填写类名,这个都是次要的,最关键的是 urlPatterns属性,该属性可以用于在浏览器中访问你的应用程序,但是前提是你得在你的电脑上部署好Tomcat服务器,然后将你的项目部署到Tomcat安装目录下的 webapps目录下就可以访问了,如果你还没有安装Tomcat服务器的话,请移步下方阅读原文看Tomcat的安装教程。比如: http://localhost:8080/你的项目名称/my就可以访问上述第一个 Servlet程序了。运行该项目后会在浏览器中显示 HellofromMyServlet字符串,是通过 service方法将字符串发送给浏览器的。对于每一个针对 Servlet进来的HTTP请求,都会调用 service方法。

在浏览器中输入:http://localhot:8080/HttpHeaderResponse/my,得到如下结果:

恭喜你,你已经成功编写并正确运行了你的第一个Servlet程序!

原文作者:数据派探险家;如有侵权,请联系管理员删除。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2017-12-19

  • 博文量
    119
  • 访问量
    55942