ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaWeb05-Servlet

2021-07-31 20:05:34  阅读:182  来源: 互联网

标签:web 接口 demo01 Override Servlet public JavaWeb05


概念

Servet = Server applet 运行在服务器的小程序
Servlet就是一个接口,定义了Java类被浏览器访问到的规则。

在这里插入图片描述
将来定义一个类,实现Servlet接口,复写方法即可。

快速入门

步骤:
1.创建JavaEE项目
2.定义一个类,实现Servlet接口
3.实现接口中的抽象方法
4.配置Servlet
示例:
(0)创建一个Web项目,虚拟路径指定为/Servlet
(1)继承Servlet接口:

package com.yatolove;

import javax.servlet.*;
import java.io.IOException;

public class ServerletDemo01 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 {

    }

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

    @Override
    public void destroy() {

    }
}

(2)配置Servlet 访问路径
在web.xml中的根标签内部配置:

    <servlet>
        <servlet-name>demo01</servlet-name>
        <servlet-class>com.example._01_servlet.ServletDemo01</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo01</servlet-name>
        <url-pattern>/demo01</url-pattern>
    </servlet-mapping>

(3)启动Tomcat,并通过浏览器访问
http://localhost:8080/Servlet/demo01
demo01就是配置中的url-pattern

Servlet执行原理

浏览器通过: ip:port/项目虚拟路径/Servlet资源名称 找到此Servlet
先找到web项目,然后找web.xml,然后找Servlet的url-pattern,然后根据映射关系找到Servlet类
在这里插入图片描述

Servlet生命周期

在这里插入图片描述

Servlet生命周期分为三个阶段:

1,初始化阶段 调用init()方法

2,响应客户请求阶段  调用service()方法

3,终止阶段  调用destroy()方法

  • init()方法在Servlet类被加载的时候执行,且仅执行一次
    Servlet类加载时机根据web.xml中的配置决定:
    load-on-startup<0 第一次请求此Servlet的时候加载Servlet类;
    load-on-startup>=0 启动Tomcat容器的时候加载Servlet类
    <servlet>
        <servlet-name>demo01</servlet-name>
        <servlet-class>com.example._01_servlet.ServletDemo01</servlet-class> 
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo01</servlet-name>
        <url-pattern>/demo01</url-pattern>
    </servlet-mapping>

1.Serverlet的int只执行一次,说明只有一个Servlet对象,Servlet对象是单例的;
2.多个用户同时访问同一个Servlet的时候,可能存在线程安全问题
尽量不要在Servlet中定义成员变量,定义了成员变量,也不要对其进行set操作。

  • service() 每接收一次请求,调用一次

  • destroy()在Servlet销毁的时候执行,且仅执行一次
    服务器正常关闭的时候才会销毁Servlet

Servlet 注解配置

注解配置,就不用在web.xml中配置了,在创建web项目的时候可以不创建web.xml
Servlet必须在3.0及以上版本才可以。
配置方式:
1. @WebServlet(urlPattern="/demo01")
2. @WebServlet(value="/demo01")
注解类型中,如果只有一个属性的话,可以省去value
3. @WebServlet("/demo01")

Servlet体系结构

Servlet接口
|
GenericServlet抽象类
|
HttpServlet 抽象类

1.GenericServlet 继承 只需要复写Service;对Serverlet接口的其他方法做了默认实现


public class ServletDemo02 extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        
    }
}

2.HttpServlet抽象类
对http协议封装了,只需要复写doGet/doPost方法即可

Servlet url配置

1.@WebServlet可以指定多个访问路径
@WebServlet{"/d4","/dd4","/ddd4"}
2.路径定义规则:
1./xxx
2./xxx/xx 多层路径
3.*.do

标签:web,接口,demo01,Override,Servlet,public,JavaWeb05
来源: https://blog.csdn.net/weixin_43589563/article/details/119273404

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有