Servlet

Servlet
1.概念:Servlet是运行在服务器上的类,java类,用来实现一些接口。
Servlet容器为JavaWeb应用提供运行时的环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。
Servlet容器也称为JavaWeb应用容器,或者Servlet/JSP容器。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法Servlet和客户的通信采用“请求/响应”的模式。
2.Servlet的功能:
1)接收客户请求的HTTP协议,解析。获取用户发送的请求
2)返回一个http的响应协议,让浏览器再去解析。
在这里插入图片描述
Requesr客户请求
Response服务器响应
Servlet包含一组servlet
3)开起一个Servlet的三种方法:
a.实现Javax.servelt.Servlet接口
b.继承Javax.servlet.GenericServlet
c.继承javax.Servlet.http.HttpServlet.
3.Servlet的生命周期
Servlet的生命周期,指的是Servlet的出生到结束。分别经历了加载、初始化、服务、销毁。启动tomcat、访问项目、访问项目、停止tomcat。
加载阶段:加载并实例化(创建servlet实例)
初始化阶段: 调用init()方法
响应客户请求阶段:调用service()方法,一般业务逻辑在这里处理,该方法在访问该servlet时,会被调用
终止阶段:调用destroy()方法
第一次访问请求:
第一次请求访问

第二次访问请求:
第二次访问请求
1.servlet就是一个普通的java类,要是实现servlet
有三种方法:
实现javac.servlet.Servlet接口
继承javax.servlet.GenericServlet
继承javax.servlet.http.HttpServlet(推荐)
一般我们用eclipse去创建servlet时,他可以自动帮我们生成一个servlet
2)在web.xml去配置和映射servlet

hello

com.hpe.servlet.HelloServlet

hello /hello 在浏览器的访问路径就是:http://localhost:8080/Servlet01/hello

重点:
2.servlet容器,运行servlet,jsp等组件的运行环境
1).负责管理servlet声明周期
2).声明周期方法:由servlet容器负责调用
构造器:只被调用一次,第一次请求servlet时,创建servlet实例,调用该构造器,servlet是单实例的
init:只被调用一次,在创建好servlet实例后,立即被调用,负责初始化servlet
service:被调用多次,每次请求都会被调用service方法,用于响应请求
destroy:只被调用一次,在当前servlet所在的web应用被卸载的时候,用于释放当前servlet所占用的资源

3.load-on-startup:指定servlet创建和初始化的时机
1)
one
com.hpe.servlet.Onservlet
-1

2)load-on-startup:如果为负数,在第一次请求servlet时创建和初始化
如果是正数或0,在当前web应用加载的时候创建该实例
多个的时候,数值越小越早创建
4.servlet-mapping:
1)同一个servlet可以有多个mapping,但是servlet—name必须一致
一种格式是“.扩展名”,
另一种格式是以正斜杠(/)开头并以“/
”结尾,不能/*.dao,两种方式不能组合

5.servletConfig:封装当前servlet的配置信息,他代表当前servlet 局部变量
功能:
1).读取当前servlet的配置信息
getServletName() 获取当前Servlet在web.xml中配置的名字
getServletContext() 获取代表当前web应用的ServletContext对象
2).他可以获取servletContext对象 代表当前web应用 代表全局变量
getInitParameter(String) 获取当前Servlet指定名称的初始化参数的值
getInitParameterNames() 获取当前Servlet所有初始化参数的名字组成的枚举

6.三大域对象(可以被共享的对象)
ServletContext
HttpSession:(当前一次会话下,信息是可以共享的)
HttpServletRequest:同一个请求下可以共享
7.功能
获取WEB应用程序的初始化参数。
获取项目的真实的路径。
做为域对象,保存多个客户共享的数据。
1.请求转发和请求重定向
本质区别:请求转发,只是转发一次请求,重定向发送两次请求。
1)请求转发:地址栏还是初次请求的地址栏
请求重定向:地址栏不是初次请求的地址栏,地址栏是最后一次响应的地址栏
2)请求转发:在最终的Servlet中,request对象和中转的request对象是同一个对象
请求重定向:在最终的Servlet中,request对象和中转的request对象不是同一个对象
3)请求转发:/代表当前web应用的根目录http://localhost:8089/Servlet02
请求重定向:/代表当前web站点的根目录http://localhost:8089–这是当前web站点
4)请求转发:只能转到当前web资源
请求重定向:可以重定向到外部资源

2.表单的重复提交
1).点击了浏览器的后退按钮,再点击提交;
2).在响应界面未完成响应时,重复点击提交按钮;
3).在表单请求一个servlet,而servlet有通过转发的方式响应到另一个servlet处理
当进行刷新时,地址栏还是原来请求的那个地址栏,这样就出现了重复提交。重定向不会出现重复提交。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值