JavaWeb学习笔记——Servlet

文章目录

    • Servlet
      • 基础实现步骤
      • Servlet执行原理
      • Servlet生命周期方法
      • Servlet其他方法
      • Servlet 3.0注解配置
        • 实现步骤
    • Servlet体系结构
    • Servlet路径定义

Servlet

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器

Servlet是一个接口,定义了Java类被浏览器访问到的规则

基础实现步骤

1. 创建JavaEE项目

2. 定义一个类,实现Servlet接口

public class myServlet1 implements Servlet

3. 实现接口中的抽象方法,在service方法中输出内容

@Override
public void init(ServletConfig servletConfig) throws ServletException {
     

}

@Override
public ServletConfig getServletConfig() {
     
    return null;
}

// 提供服务的方法
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
     
    System.out.println("Hello Servlet");
}

@Override
public String getServletInfo() {
     
    return null;
}

@Override
public void destroy() {
     

}

4. 配置Servlet

在web.xml的< web-app >标签中配置Servlet


<servlet>
    
    <servlet-name>myServlet1servlet-name>
    
    <servlet-class>web.servlet.myServlet1servlet-class>
servlet>


<servlet-mapping>
    
    <servlet-name>myServlet1servlet-name>
    
    <url-pattern>/myServlet1url-pattern>
servlet-mapping>

5. 启动Tomcat,在打开网页的地址栏后添加url-pattern中的映射路径
在这里插入图片描述
控制台输出
JavaWeb学习笔记——Servlet_第1张图片

Servlet执行原理

  1. 当服务器接收到客户端浏览器的请求后,会解析请求URL路径

http : //localhost:8080/Servlet/myServlet1

localhost:8080:通过localhost找到主机,并通过端口号寻找到tomcat

Servlet:寻找到tomcat下部署的项目

myServlet1:在对应项目的web.xml中查找Servlet的映射路径

  1. 通过查找到的映射路径,继续查找到对应的servlet-name,并通过servlet-name查找到Servlet的全类名
  2. tomcat将对应的字节码文件加载进内存,并创建其对象
  3. 调用对象方法

Servlet生命周期方法

① init():初始化方法,在Servlet被创建时执行,只执行一次

@Override
public void init(ServletConfig servletConfig) throws ServletException {
     
    System.out.println("创建Servlet init...");
}

默认情况下,第一次被访问时,Servlet被创建

可以在web.xml的< servlet >标签中指定Servlet的创建时机

<load-on-startup>load-on-startup>

如果标签体内值为负数,则在第一次被访问时创建Servlet

如果标签体内值为0或正整数,则在服务器启动时创建Servlet

② service():提供服务方法,每当Servlet被访问时执行,可执行多次

@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
     
    System.out.println("提供服务 service...");
}

③ destroy():销毁方法,在服务器正常关闭时执行,只执行一次

@Override
public void destroy() {
     
    System.out.println("关闭服务器 destroy...");
}

启动服务器
在这里插入图片描述
多次刷新页面
JavaWeb学习笔记——Servlet_第2张图片
关闭服务器
JavaWeb学习笔记——Servlet_第3张图片

Servlet其他方法

① getServletConfig():获取ServletConfig对象

② getServletInfo():获取Servlet的信息(版本,作者等)

Servlet 3.0注解配置

使用注解配置可以不配置web.xml中的内容

实现步骤

  1. 创建JavaEE项目,选择3.0以上版本的Servlet,可以不创建web.xml

  2. 定义一个类来实现Servlet接口

  3. 实现抽象方法

  4. 在类上使用@WebServlet注解进行配置

    @WebServlet(“资源路径”)

@WebServlet("/myServlet1")
public class myServlet1 implements Servlet {
     
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
     

    }

    @Override
    public ServletConfig getServletConfig() {
     
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
     
		System.out.print("service...");
    }

    @Override
    public String getServletInfo() {
     
        return null;
    }

    @Override
    public void destroy() {
     

    }
}

Servlet体系结构

JavaWeb学习笔记——Servlet_第4张图片

GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象方法,在定义Servlet类时,可以继承GenericServlet类,只实现service()方法即可

HTTPServlet:对HTTP协议的封装,简化操作,若类继承了HttpServlet类,需要复写doGet()方法和doPost()方法

Servlet路径定义

一个Servlet可以定义多个访问路径:@WebServlet({"/S1","/S2",“S3”})

单层路径:/name

多层路径:/pname/name

你可能感兴趣的:(Servlet,Java,Web,servlet,java,web)