Servlet 是什么,Servlet 简介

499 阅读3分钟

「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战」。

Servlet 简介

Servlet 是sun 公司开发动态web 的一门技术。动态web 就是和后台有数据交互,每人请求网页的时候,可以根据程序的逻辑控制,展现出不同的效果。

sun 公司在这些api 中提供一个接口,接口叫做servlet。

所以说,如果你想开发一个动态web 程序(Servlet 程序),只需要完成两个小步骤:

  1. 编写一个类实现Servlet 接口
  2. 把开发好的java 类部署到web 服务器中

把实现了Servlet 接口的java 程序叫做Servlet。

servlet 的简单实现

Servlet 接口,sun 公司有两个默认的实现类。如HttpServlet

  1. 构建一个简单的Maven 项目,删掉里面的src 文件夹,以后的学习就可以在这个项目中建立Module。这个工程就是maven 的“主工程”。可以在这个主工程的依赖配置文件中添加一些通用的依赖。在主工程中可以尽可能地把需要的依赖进行导入。比如说servlet 的,jsp 的等等。

可以到这里去找一些依赖包的配置,比如说找jsp 的配置:mvnrepository.com/search?q=js…

  1. 关于maven 父子工程的理解:在父项目中会有modules,子项目中会有parent。父项目中的jar 包,子项目可以直接使用。
  2. maven 环境的优化
    1. 修改web.xml 为最新的
    2. 将maven 的结构搭建完整
  3. 编写一个Servlet 程序
    1. 编写一个普通类
    2. 实现Servlet 接口(由于有个HttpServlet 类,实现了Servlet 接口,所以可以直接继承HttpServlet 类)

这是Servlet 接口中的各个方法:

public interface Servlet {

    public void init(ServletConfig config) throws ServletException;
    
    public ServletConfig getServletConfig();

    public void service(ServletRequest req, ServletResponse res)
   throws ServletException, IOException;

    public String getServletInfo();

    public void destroy();
}

重点的方法是service 方法。GenericService 实现了Service 方法,没有对Service 做什么操作。

HttpServlet 实现了GenericService 类,这里实现了service 方法。实现GenericService 类,内部做了一些事情。可以打开源码具体看看。

对于我们自定义的实现(继承了HttpServlet),重写doGet 方法或者doPost 方法就可以。

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.print("hello, servlet");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doGet(req, resp);
    }
}
  1. 编写Servlet 的映射。为什么需要映射:我们写的是java 程序,但是需要通过浏览器进行访问,而浏览器需要连接web 服务器,所以我们需要在web 服务中注册我们写的Servlet,还需要给它一个浏览器可以访问的路径。在web.xml 中进行如下配置

image.png

  1. 设置好服务器及发布路径。服务器配置Tomcat image.png

image.png

  1. 启动测试。如图,会生成一个target 文件夹。同时会生成一个war 包,这个就是我们的网站。war 包上面的servlet 文件夹就是war 包的解压文件。启动之后,可以在浏览器进行访问。页面展示出的分别是默认的页面和自己编写的页面。

image.png


image.png

至此,完成了Sevlet 的基本概念介绍,同时完成了编写一个简单的Servlet 程序。