Servlet

  1. Servlet 概念:运行在服务器端的小程序
  • Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。
  • 将来我们自定义一个类,实现Servlet接口,复写方法。

一、XML执行原理

  1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径 (图中的 /demo1 就是资源路径)

  2. 查找web.xml文件,是否有对应的标签体内容。

  3. 如果有,则在找到对应的全类名 (图中的demo1)

  4. tomcat会将字节码文件加载进内存,并且创建其对象

  5. 调用service其方法

在这里插入图片描述
二、生命周期

Servlet 需要实现5个方法

  1. 1 初始化:servlet 被创建时候执行, 执行一次
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init....");
    }
  1. 2 在XML中的 init :Servlet什么时候创建 :

    ① 下边负数代表访问servlet时候创建(默认)

    ②.正数代表服务器启动时创建

        <load-on-startup>-5</load-on-startup>
  1. 获取的是servlet的配置对象
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
  1. 提供服务的方法,servlet被访问时候执行,访问一次执行一次,比如页面刷新一次就执行一次
@Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("service......");
    }
  1. 获取servlet的信息如:版本、作者…
    @Override
    public String getServletInfo(){
        return null;
    }
  1. 服务器被关闭时候执行,也是执行一次
@Override
    public void destroy() {
        System.out.println("destroy....");

    }
注:如果服务器不是正常关闭,这个方法不会执行,并且在Servlet销毁之前执行,毕竟要是Servlet被销毁了,这个方法也就执行不了了。

三、注解配置

  1. WebServlet 内容
@Target({ElementType.TYPE}) //允许类使用
@Retention(RetentionPolicy.RUNTIME) //类加载中
@Documented //可以制作文档
public @interface WebServlet {
	String name() default "";//相当于<Servlet-name>
				
	String[] value() default {};//代表urlPatterns()属性配置
				
	String[] urlPatterns() default {};//相当于<url-pattern>
				
	int loadOnStartup() default -1;//相当于<load-on-startup>
				
	WebInitParam[] initParams() default {};
				
	boolean asyncSupported() default false;
				
	String smallIcon() default "";
				
	String largeIcon() default "";
				
	String description() default "";
				
	String displayName() default "";
	
	}
  1. 实现
    直接放到类上,传入的参数 相当于 value = “/demo” ,value省略,传的 /demo 就是资源路径。
@WebServlet("/demo")
public class demo implements Servlet {}
  1. 好处就是省略了一堆XML配置,但是JavaEE项目,要选择Servlet的版本3.0以上的才行。
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐