Servlet:(server applet)
概念:运行在服务器端的小程序
Servlet就是一个接口,定义了java类被浏览器访问(tomcat识别)的规则
我们自定义类,实现servlet接口,复写方法。
Servlet运行在服务器里面(servlet的运行不能脱离服务器(Tomcat))
说白了就是一个可以接受客户端请求和响应请求(这部分工作由Tomcat完成)的java类,靠这个类可以联系前端和后台
快速入门:
1.创建javaEE项目
2.定义一个类,实现servlet接口
public class ServletDemo1 implements Servlet
3.实现接口中的抽象方法
4.配置servlet (通过资源名称映射到类,来访问类) (xml配置的方式) 通常我们用的是注解的方式而不是xml配置文件
demo1
web.servlet.ServletDemo1
这里了解一下就好
Servlet的执行原理
1.当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的servlet的资源路径
2.查找web.xml文件,是否有对应的标签体内容
3.如果有,则在找到对应的全类名
4.Tomcat会将字节码文件加载进内存,并且创建其对象
5.调用其方法
Servlet的生命周期
1.被创建 执行init方法,执行一次
Servlet什么时候被创建?
默认情况下,第一次被访问时被创建
2.提供服务 执行service方法,执行多次
3.被销毁 被销毁时执行一次destroy方法
Servlet的init方法只执行一次,说明一个servlet类在内存中只存在一个对象,servlet是单例的
多个用户同时访问时,可能存在线程安全问题
解决:尽量不要在servlet中定义成员变量,即使定义了成员变量,也不要对其修改值。
Servlet3.0:
好处:支持注解配置。可以不需要web.xml.
步骤:
1.创建javaEE项目,servlet的版本3.0以上,不可不创建web.xml
2.定义一个类,实现servlet接口
3.复写方法
4.在类上使用@webServlet注解,进行配置
@webServlet(“资源路径”)
IDEA与Tomcat的相关配置
IDEA会为每个Tomcat部署的项目单独建立一份配置文件
查看控制台的log
Using CATALINA_BASE: “C:\Users\user.IntelliJIdea2018.2\system\tomcat\Tomcat_9_0_ShoppingProject”
2.工作空间项目 和 Tomcat部署的web项目
Tomcat真正访问的是“Tomcat部署的web项目”,Tomcat部署的web项目对应着“工作空间项目”的web目录下的所有资源
Web-INF下的资源不能被浏览器直接访问
GenericServlet:抽象类
HttpServlet:对http协议的一种封装,简化操作
1.定义类继承httpServlet
2.复写doget dopost
其实我们通常是直接创建一个类然后继承httpServlet
IDEA中可以直接创建servlet类
Servlet相关配置
1.urlpartten:servlet的访问路径 一个servlet可以定义多个访问路径(数组)
2.定义规则 1./xxx 2./xxx/xxx (/user/*) 3. *.do