Servlet学习笔记

Servlet学习笔记

概念:运行在服务器端上的小程序

浏览器向服务器发送请求会经过Servlet处理

服务器上存放着动态资源、静态资源

Servlet处理动态资源 访问已经写好逻辑性的java代码(类)

Java类依赖于服务器才能运行,tomcat执行它,需要遵守一定的规则(接口),才能被tomcat所识别

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

**将来自定义一个类,实现Servlet接口,复写方法。

快速入门

1.创建javaEE项目。

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

3.实现接口中的抽象方法。

4.配置Servlet。

*执行原理

1.当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径。

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

3.如果有,则在找到对应的全类名。

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

5.调用其方法。

*Servlet生命周期

初始化-提供服务-被销毁

**Servlet什么时候被创建?

​ *默认情况下,第一次被访问时,servlet被创建

*可以改变Servlet的创建时机 ---------↓↓↓
  1. 第一次被访问时,创建

    *的值为负数

  2. 在服务器启动时,创建

    *的值为0或正整数

*Servlet的init()方法,只执行一次,说明一个Servlet在内存里只存在一个对象,Servlet是单例的

​ *多个用户同时访问时,可能存在线程安全问题

​ *解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对其修改值

生命周期方法

init() 初始化方法在Servlet创建时执行,只会执行一次。

**service()**提供服务方法每一次Servlet被访问,执行,可被执行多次。

**destory()**销毁方法当Servlet被正常关闭时执行,只会执行一次。Servlet被销毁之前执行。

ServletConfig() Servlet的配置对象

getServletInfo() 获取Servlet的一些信息,版本,作者等等。。

*Servlet3.0

*好处:

​ *支持注解配置。可以不需要web.xml了。

*步骤:

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

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

​ 3.复写方法

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

​ *@WebServlet(“资源路径”) == @WebServlet(patterns = “资源路径”)

@WebServlet注解方法值::

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebServlet {
    String name() default "";

    String[] value() default {};

    String[] urlPatterns() default {};

    int loadOnStartup() default -1;

    WebInitParam[] initParams() default {};

    boolean asyncSupported() default false;

    String smallIcon() default "";

    String largeIcon() default "";

    String description() default "";

    String displayName() default "";

IDEA与Tomcat的相关配置

1.在idea开发 idea会为每一个tomcat部署的项目单独建立一份配置文件

​ *查看控制台的log: using catalina_base : “C:\Users\10501\AppData\Local\JetBrains\IntelliJIdea2021.3\tomcat”

2.工作空间项目 和 tomcat部署的web项目

​ *tomcat真正访问的是“tomcat部署的web项目","tomcat部署的web项目”对应着"工作空间项目"的web目录下的所有资源

​ *WEB-INF目录下的资源不能被浏览器直接访问

​ *断点调试Tomcat

Servlet的体系结构

Servlet是一个接口,被GenericServlet抽象类实现,被HttpServlet抽象类继承

*GenericServlet:将Servlet接口中其他的方法做了默认的空实现,只将Service()方法作为抽象 *将来定义Servlet可以去继承GenericServlet做Service()方法实现即可.

*HttpServlet:对Http协议的一种封装,简化操作

1.定义类继承HttpServlet

2.复写doGet或doPost方法

Servlet的相关配置

1.url-pattern:Servlet的访问路径

​ * 一个Servlet可以定义多个访问路径 : @WebServlet({"/demo1","/d1"})

​ *路径定义规则:

​ 1./XXX

​ 2./XXX/XXX

​ 3. *.do

总结:Servlet就是一个接口通过服务器访问后执行Java类里面的代码的那么一个接口类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值