学习笔记-Servlet入门

定义:server applet 运行在服务器的小程序
servlet就是一个接口,定义了java类被浏览器访问到(tomcat)识别的规则;实现servlet接口复写其中的方法就称这个类为一个servlet。

步骤:
1.创建javaEE项目
2.定义一个类实现servlet接口
3.实现接口中的抽象方法
4.配置servlet
在web.xml中配置:

<servlet>
    <servlet-name>demo01</servlet-name>
    <servlet-class>com.fengqi.web.servlet.ServletDemo01</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>demo01</servlet-name>
    <url-pattern>/demo01</url-pattern>
</servlet-mapping>

执行原理
1.当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
2.查找web.xml文件是否有对应的标签体内容
3.如果找到则再找到对应全类名
4.tomcat会将全类名对应的字节码文件加载进内存并且创建其对象
5.调用其方法

Servlet的生命周期(servlet中的方法)
1.创建:被创建时会执行init()方法并且只执行一次
默认情况下第一次被访问时servlet被创建
可以指定(配置)servlet的创建时机,在web.xml的servlet标签中添加值,当值为负数时第一次被访问时servlet被创建(默认为负值),当值为0或整数时服务器被启动时servlet被创建
注意:Servlet的init方法只执行一次,说明一个Servlet在n内存中只存在一个对象(Servlet是单例的);多个用户同时访问可能存在线程安全问题
解决:尽量不要在Servlet中定义成员变量,即使定义了也不要对其修改

2.提供服务:执行service()方法,可以执行多次
每次访问Servlets时service()方法都会被调用一次
3.销毁:执行destroy方法()也只执行一次
Servlet被销毁之前执行destroy,服务器被关闭时Servlet被销毁,只有服务器正常关闭时才会执行destroy()方法

Servlet3.0
支持注解配置,可以不需要web.xml了
步骤:
1.创建javaEE项目,选择Servlet版本3.0以上,可以不创建web.xml
2.定义一个类实现Servlet接口
3.复写方法
4.在类上使用@webServlet注解进行配置,如:@WebServlet("/demo01"),/demo01是资源路径

IDEA与tomcat的相关配置

  1. IDEA会为每一个tomcat部署的项目单独建立一份配置文件
    查看控制台的log:Using CATALINA_BASE: “C:\Users\niefengqi.IntelliJIdea2018.2\system\tomcat_basic-code”

  2. 工作空间项目和tomcat部署的web项目
    tomcat真正访问的是“tomcat部署的web项目”,“tomcat部署的web项目"对应着"工作空间项目” 的web目录下的所有资源
    WEB-INF目录下的资源不能被浏览器直接访问。

Servlet的体系结构
Servlet(接口)<-GenericServlet(抽象类)<-HttpServlet(抽象类)

GenericServlet:将Servlet接口中的其他方法作了默认空实现,只将service方法作为抽象

HttpServlet:对Http协议的一种封装,简化使用(推荐使用)
使用步骤:
1.定义类继承HttpServlet
2.复写doGet(),doPost()方法

Servlet注解配置
1.WebServlet注解的属性urlPatterns的值是一个数组,所以Servlet的访问路径可以有多个
2.访问路径的定义规则:
①/xxx(推荐使用)
②/xxx/xx:多层路径目录结构
③*.do(do为自定义,可以用其他代替do,星号前面不能加反斜杠)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值