Servlet

Servlet :server applet

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

Servlet就是一个接口, 定义了Java类被浏览器访问到(tomcat识别)的规则。
将来我们自定义一个类,实现Servlet接口,复写方法。

2、入门:

(1)创建JavaEE项目
(2)定义一个类,实现Servlet接口

public class ServletDemo1 implements Servlet

(3)实现接口中的抽象方法
(4)配置Servlet

3、执行原理:

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

4、Servlet中的生命周期方法:

生命周期:被创建,提供服务,被销毁
方法:
	(1)被创建:执行init方法,只执行一次
			Servlet什么时候被创建?
				默认情况下,Servlet对象第一次访问时,Servlet被创建
				配置(在<servlet>标签下配置)执行Servlet的创建时机
					1.Servlet对象第一次被访问时创建
						* <load-on-startup>的值为负数
					2.在服务器启动时创建
						* <load-on-startup>的值为0或正整数
			Servlet的init方法,只执行一次,说明一个Servlet在内存中只存
			在一个对象,Servlet是单例的
			
			多个用户同时访问时,可能存在线程安全问题。
			解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,
			也不要对其赋初始值

	(2)提供服务:执行service方法,执行多次
	(3)被销毁:执行destroy方法,只执行一次
			服务器正常关闭时才会调用该方法,destroy方法在Servlet销毁前
			执行,释放资源

5、Servlet3.0 :

好处:支持注解配置,可以不需要web. xml。
步骤:
(1)创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web. xml
(2)定义一个类,实现Servlet接口
(3)重写Servlet接口方法
(4)在类上使用@WebServlet注解,进行配置:@WebServlet( “资源路径”)

如:@WebServlet(“/demo”),我的虚拟路径为NO2_servlet
那么在浏览器地址栏上输入:localhost:8080/NO2_servlet/demo就可以了

6、IDEA与tomcat的相关配置

(1)IDEA会为每一个tomcat部署的项目单独建立一份配置文件
(2)查看控制台的log : `Using CATALINA_ BASE: "C: \Users\fqy\. IntelliJIdea2018.1\system\tomcat\_ itcast"`
(3)工作空间项目和tomcat部署的web项目
	tomcat真正访问的是“tomcat部署的web项目”,而"tomcat部署的web项目”
	对应着"工作空间项目"的web目录下的所有资源
	
	注意:WEB- INF目录下的资源不能被浏览器直接访问。

7、Servlet的体系结构

Servlet --接口
|
|(extends)
V	
Genericservlet --抽象类
|
|(extends)
V
HttpServlet -- 抽象类

(1) GenericServlet :将servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象,将来定义servlet类时,可以继承GenericServlet, 实现service( )方法即可
(2)HttpServlet :对http协议的一种封装,简化操作
实现:定义一个类继承HttpServlet,同时该类复写doGet/ doPost方法

8、Servlet相关配置

urlpartten:Servlet访问路径
1. 一个Servlet可以定义多个访问路径:
	 @WebServlet({"/d4" , "/dd4" , "/ddd4"})
2.路径定义规则:
(1)/xxx
(2)/xxx/xxx:多层路径,目录结构(如:/user/demo2)
(3)*.do(如:访问demo,只能输入demo.do,输入demo访问不到)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值