• 【Java后台】从零开始的Java后台开发(三)


    编写基础的Servlet应用程序

    1 Servlet

    使用Servlet需要在pom.xml中引入以下依赖:

        
        <dependency>
          <groupId>javax.servletgroupId>
          <artifactId>javax.servlet-apiartifactId>
          <version>4.0.1version>
          <scope>providedscope>
        dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Servlet接口定义了以下5个方法

    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();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    init、service和destroy方法属于servlet生命周期方法。servlet根据以下原则调用这三个方法:

    • init:第一次请求Servlet时,Servlet容器就会调用这个方法。在后续的请求中,将不会再调用该方法。可以利用这个方法来编写一些应用程序初始化相关的代码。在调用这个方法时,Servlet容器会传递一个ServletConfig。
    • service:每次请求Servlet时,Servlet容器都会调用这个方法。必须在这里编写要Servlet完成的相应代码。第一次请求Servlet时,Servlet容器会调用init和service,之后每次请求,不会再调用init,只会调用service方法。
    • destroy:要销毁Servlet时,Servlet容器就会调用这个方法。它通常发生在卸载应用程序,或者关闭Servlet容器的时候,一般来说,可以在这个方法中编写一些资源清理相关的代码。

    Servlet中的另外两个方法是非生命周期方法:getServletInfo和getServletConfig。必须注意的一点是线程安全性。一个应用程序中的所有用户将共用一个Servlet实例。

    2 编写Servlet示例

    确保在pom.xml文件中已经引入servlet-api依赖包。项目目录结构如下:
    在这里插入图片描述

    package com.servlet.demo;
    
    import javax.servlet.*;
    import javax.servlet.annotation.WebServlet;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    @WebServlet(name = "MyServlet", urlPatterns = {"/my"})
    public class MyServlet implements Servlet {
    
        private transient ServletConfig servletConfig;
    
        @Override
        public void init(ServletConfig config) throws ServletException {
            this.servletConfig = config;
        }
    
        @Override
        public ServletConfig getServletConfig() {
            return servletConfig;
        }
    
        @Override
        public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
            String servletName = servletConfig.getServletName();
            res.setContentType("text/html");
            PrintWriter writer = res.getWriter();
            writer.print("Hello from " + servletName + "");
        }
    
        @Override
        public String getServletInfo() {
            return "My Servlet";
        }
    
        @Override
        public void destroy() {
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    上述使用了@WebServlet注解,所以需要在web.xml中配置允许使用注解,web.xml 的顶层标签 中有一个属性:metadata-complete,该属性用于指定当前 web.xml 是否是完全的。若该属性设置为 true,则容器在部署时将只依赖 web.xml,忽略所有的注解。若不配置该属性,或者将其设置为 false,则表示启用注解支持。配置如下所示:

    DOCTYPE web-app PUBLIC
            "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
            "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <web-app
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://xmlns.jcp.org/xml/ns/javaee"
            xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
            version="4.0" metadata-complete="false">
        
        
        <display-name>Archetype Created Web Applicationdisplay-name>
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    现在,就可以运行Servlet项目了。

    3 配置Servlet容器

    • 点击Add Configuration
      在这里插入图片描述
    • 点击 add new
      在这里插入图片描述
    • tomcat选择local
      在这里插入图片描述
    • 选择Application Server
      在这里插入图片描述
    • 选择本地的tomcat目录
      在这里插入图片描述
    • 更改如下两个端口号(如果没有被占用可以不用更改)
      在这里插入图片描述
    • 配置Deployment
      在这里插入图片描述
      在这里插入图片描述
    • 更改一下application context
      在这里插入图片描述
      然后点击ok。

    运行项目

    依次按照下图顺序点击运行:
    在这里插入图片描述
    运行成功后如下图所示,有一个对钩
    在这里插入图片描述
    然后浏览器中输入如下所示:
    在这里插入图片描述
    【Java后台】从零开始的Java后台开发(二)
    【Java后台】从零开始的Java后台开发(一)

  • 相关阅读:
    一步一步教你安装部署 Jenkins,不信你安不上
    Java项目如何导出数据为 PDF 文件?
    移动端布局方案
    移动端阻止Touch导致的页面滑动/缩放
    frp内网穿透搭建-宝塔版
    提升 React 应用的安全性:从这几点入手
    PyQt中线程和线程信号的使用
    数据库设计与前端框架
    什么是I/O内存?
    算法练习题(涉外黄成老师)
  • 原文地址:https://blog.csdn.net/u013293125/article/details/126180069