软件架构
B/S 浏览器/服务器
C/S 客户端/服务器
tomcat : 服务器软件
Servlet : 全称 sever applet
概念:运行在服务器端的小程序
Servlet就是一个接口,定义了java类被浏览器访问到(tomcat识别)的规则
将来自定义一个类,实现Servlet接口,复写方法
快速入门
:1.创建JavaEE项目
2.定义一个类,实现Servlet接口
3.实现接口中的抽象方法
4.配置Servlet
执行原理
:1.当服务器接受客户端浏览器的请求之后,会解析请求URL路径,获取访问的
Servlet
的资源路径
2.查找web.xml文件,看是否有对应的<url-patton>
的标签体内容
3.如果有,则再查找到对应的<servlet - class>
全类名
4.tomcat会将字节码文件加载进内存,并且创建其对象
5.再调用类中的方法
生命周期
:常用: 1.被创建:执行`init()`方法,只执行一次,一般用于加载资源 `要点`:Servlet方法什么时候被创建? 默认情况下,第一次被访问时,Servlet被创建 但是可以通过配置,来控制Servlet被创建的时机 `配置方法`: 在web.xml文件下的`<servlet></servlet>`标签中配置 (1).当`<load-on-startup></load-on-startup>`标签中的值为负数时(默认),第一次被访问时,Servlet对象被创建 (2).当`<load-on-startup></load-on-startup>`标签中的值为0或者正整数时,服务器启动时i,Servlet对象被创建 `注意事项`: Servlet的init方法只被调用一次,说明只有一个Servlet在内存中只存在一个对象,Servlet是单例的 多个用户同时访问时,可能存在线程安全问题 `解决方法`: 尽量不要在Servlet中定义成员变量,即是定义了,也不要修改成员变量,可以定义方法中的临时局部变量,以此避免并发数据安全问题 2.提供服务:执行server方法,每次调用都执行一次 每次访问Servlet时,server方法都会被执行一次 3.被销毁:执行destroy方法,只执行一次 Servlet被销毁时执行。服务器关闭时,Servlet会被销毁 只有服务器正常关闭时,才会执行`destroy()`方法 `destroy()`方法在Servlet销毁前被执行,一般用户释放资源
不常用: 1.`getServletConfig()`方法:用于获取`ServletConfig`对象 方法返回值为:` ServletConfig`(Servlet的配置对象) 2.`getServletInfo()`:用于获取Servlet的一些版本、作者等信息 方法返回值为:`String`(Servlet的版本信息)
体系结构
:
Servlet
— 接口
| 继承
GenericSeverlet
– -抽象类
| 继承
HttpServlet
—抽象类
GenericServlet : 将Servlet接口中其他的方法做了默认空实现,只将常用的server()
方法作为抽象
service()
方法HttpServlet : 对http协议的一种封装,简化操作
doGet()
或doPost()
方法