public accept() {
super();
// TODO Auto-generated constructor stub
}
Servlet:就是一个接口,定义了Java类被浏览器访问(tomcat识别)的规则
将来我们自己写一个类,实现Servlet接口,就可以被浏览器访问到
快速入门:
- 创建JavaEE项目
- 定义一个类,实现Servlet接口
- 实现接口中的抽象方法
- 配置servlet
servlet是连接Web服务器与服务端Java程序协议,是一种通讯规范
Servlet是servlet接口实现类的实例对象,是运行在服务器上的一段Java小程序
Servlet功能:根据客户端提交的请求,调用服务器端相关代码
Servlet生命周期:
servlet对象被创建(init):在servlet被创建时执行,只会执行一次
Servlet:默认情况下,第一次被访问时,servlet被创建
也可以指定servlet什么时候被创建
1.在配置文件里面指定servlet的创建时机
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>jia.demo</servlet-class>
<!-- 指定servlet的创建时机
1.第一次访问时,创建
<load-on-startup>的值为负数
2.在服务器启动时,创建
<load-on-startup>的值为正整数或0-->
<load-on-startup>-5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/fighting1</url-pattern>
</servlet-mapping>
Servlet的init方法只执行一次,说明servlet在内存中只存在一个对象,servlet是单例的
多个用户同时访问可能存在线程安全问题
解决方法:
尽量不要再servlet中定义成员变量,可以定义局部变量
Service方法:每次servlet被访问时,都被执行。Servlet被访问几次就会执行几次
destroy:在服务器正常关闭时,执行,只会执行一次
Destroy是在servlet被销毁之前执行,用于释放资源
服务器正常关闭时,destroy被执行,服务器不是正常关闭,destroy不被执行
servletConfig对象:获取ServletConfig对象,实际上是servlet配置对象,这个方法是需要我们自己去实现的
getServletInfo:获取servlet的信息,像版本,作者等
servlet放在Javax.servlet包里
你实现接口,必须要实现接口里面的类
init:初始化
localhost:8081/first/fighting在客户端运行servlet,firs是servlet所在的项目,/fighting是web.xml里面的路径
Tomcat执行servlet原理:
- 当服务器端接受岛客户端浏览器的请求后,会解析请求URL路径,获取访问的servlet的资源路径
- 查找web.xml文件,是否有对应的<url-pattern>标签体内容
- 如果有,则在找到对应的<servlet-class>全类名
- Tomca会将字节码文件加载进内存,并创建其对象
- 调用其方法
Java EE开发基于B/S:浏览器/服务器
B/S:浏览器/服务器
浏览器通过网址(请求)可以找到服务器
静态资源:所有用户访问后得到的结果都是一样的
网页前端的HTML、css、JavaScript
动态资源:动态资源第一件事是转换为静态资源,然后被浏览器解析这个操作叫响应
网络通信的三要素:
IP:计算机设备,在网络中的唯一标识
端口号:应用程序在计算机中的唯一标识
传输协议:数据传输的规则
- tcp:安全协议,三次握手
- Udp:不安全,速度快
Servlet相关配置:
- urlpattern:servlet的访问路径
路径的定义规则
- /xxx:
- /xxx/xxx:多层路径
- *.do
2.@WebServlet(asyncSupported = true, urlPatterns = { "/enen" ,"/eee"})
中urlPatterns = { "/enen" ,"/eee"},指的是/enen和/eee都可以访问到这个servlet
所以从上述可得一个servlet可以定义多个访问路径