Servlet的定义及生命周期
定义:Servlet是web开发的一个标准,主要是交互式地浏览和修改数据,生成动态的web内容
生命周期:web容器加载Servlet时,servlet生命周期开始。
生命周期开始:通过调用servlet的initial()方法进行初始化
开始服务;根据请求的不同调用不同的service方法
结束服务:执行servlet的destroy()方法
转发和重定向的区别
转发:服务器直接访问目标的url地址,将响应的内容读取过来,然后发送给客户端,客户端只发了一次请求,所以访问的地址不会发生变化
重定向:服务器根据逻辑给浏览器客户端发了一个状态码,让客户端去访问那个地址。客户端发了2次请求
doGet(),doPost()的调用及区别?
调用:Jsp页面form标签里menthod属性为get时调用doget,为post时调用dopost,超链接跳转页面用doget
区别:doget方法会把名值对拼接在url地址后面,由于url对字符数目有限制,所以请求的参数就有限制,
由于参数信息是拼接在url地址后,请求的参数是可见的,所以敏感的信息不能用这种方式
dopost方法是将参数信息放在请求体中,所以参数是没有限制的,因为在请求体中,所以参数信息对外部是不可见的
JSP和Servlet有哪些相同点和不同点
相同点:jsp其实是servlet技术的扩展,本质是servlet的简易方式,更加注重的应用的外观表达。翻译后是类Servlet文件
不同点:Servlet的应用程序是在java中,完全和HTML分离,而jsp则是将java和HTML组合成扩展名为。jsp的文件
Servlet注重的是逻辑,jsp注重的是视图
四种会话跟踪技术
1.page否代表与一个页面的相关的属性和对象
2 request:代表与web客户机发出的一次请求的相关对象和属性
3 session:代表与某个客户机的一个用户体验的相关属性和对象
4 application:代表与整个web程序相关的对象和属性
描述Cookie和Session的作用,区别和各自的应用范围
cookie是一种发送到客户端的文本串,并保存到硬盘中。可以在web站点的会话间持久的保存数据
session指访问者从到达某个特定的主页到离开的时间,session是利用cookie的信息进行工作的,当用户进行请求时,session就在浏览器中创建了cookie,当session会话结束,这个cookie也就过期了
cookie和session的相同点:他们都是用来跟踪浏览器用户身份的会话方式
不同点:cookie的数据保存在客户端,session的数据保存在服务器中
session的工作原理
session的数据都保存在服务器中,当用户向服务器发送请求时会发送当前会话的session,服务器会根据session判断用户数据标志,
以此来确定用户是否登录或者具有某种权限
HTTP响应的结构是怎么样的?
1状态码:描述了响应的状态,可以根据状态码找出对应的失败原因
2Http头部: 包含了响应的信息,如指定响应的过期时间,用户传输内容的编码格式等
3主体:包含了响应的内容。如html代码,图片等。位于http头部后面的数据字节组成
什么是HTTP隧道
HTTP隧道就是利用HTTP或者HTTPS把其他的多种网络协议封装起来进行通信的技术
隐含对象是什么意思?有哪些隐含对象?
隐含对象的概念:指编译成servlet时,servlet内部产生的可以直接使用的对象
类型:application
page
request
response
session
out
config
exception
pagecontex
Servlet处理请求的流程:
1当用户在浏览器的地址栏中输入一个地址,按回车键后,浏览器会向服务器发送一个httprequest
2服务器中首先是web server接收请求,并将请求交给容器,容器会根据请求的url调用对应的servlet
3容器根据web.xml中对servlet的描述去查找要访问的servlet。若找到,则将servlet实例化(第一次请求),并调用service方法处理请求
当第二次同样的请求时,servlet不会实例化,而是直接调用原来
servlet实例中的service方法处理
4.若没有找到,则返回一个404的错误代码到客户端,表示访问的资源不存在