1.servlet 生命周期描述?
首先,Servlet运行在容器中,其生命周期由容器来管理。
初始化:在服务器启动时,Web容器加载servlet,仅调用执行 一次 init()方法。
处理请求:当请求到达时,运行其service()方法。service()自动派遣运行与请求相对应的doGet或者doPost方法。
销毁:在服务器端停止且卸载Servlet时,web容器会仅调用执行 一次 servlet的distroy()方法销毁servlet。
2.JSP与Servlet有什么区别?
不同点:
1.servlet更擅长于逻辑控制,jsp更擅长表现于页面显示。
2.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到
3.jsp经编译后就变成了Servlet,jsp 本质 是 servlet。
3.forward() 与sendRedirect()的区别?
都是servlet种的两种主要的跳转方式。forward又叫转发,redirect叫做重定向
有以下不同:a.数据共享:
forward: 转发页面和 转发到的页面 可以共享request里面的数据
redirect:不能共享数据.
b.地址栏显示:
forward 是服务器内部完成,地址栏还是原来的地址,没有变化。
redirect 是服务端让浏览器重新去请求那个地址.地址栏显示的是真实的新URL
c.请求情况:
forward: 转发产生一次请求,转发只能在当前项目内部转发
redirect: 产生两次请求,可以转发到项目以外的任何网址
d.使用场景:
forward:主要用于用户登陆的时候,根据角色转发到相应的模块。
redirect:主要 用于用户注销登陆时返回主页面或者跳转到其它的网站等。
4.get 和post 请求区别:
1.get 参数通过URL 传递,大小有限制,post 参数通过request body 的form 表单提交,数据量无限制。
2.get 请求不安全,post相对安全点。
3.get 只能是文本数据, post 可以文本数据,也可以二进制文件。
5.session与cookie的区别?
1.Cookie和Session都是会话技术,cookie数据存放在客户的浏览器上,session数据放在服务器上。
2.cookie不是很安全,基于安全考虑应当使用session
3.Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session是没有大小限制和服务器的内存大小有关。
6.四种会话跟踪技术
java中会话跟踪常用的方法:cookie,session,url重写,隐藏域。
page域 数据在一个页面范围内有效,通过pageContext对象访问
request域 数据在一个服务器请求范围内有效,通过request对象访问
session域 数据在一次会话范围内容有效,通过session对象访问
application域 数据在一个应用服务器范围内有效,通过application对象访问
7. Jsp的九大内置对象,三大指令,七大动作?
内置对象:
request 包含用户端请求的信息
response 包含服务器传回客户端的响应信息
session 与请求有关的会话期
pageContext 管理网页属性
application 服务器启动时创建,服务器关闭时停止,为多个应用程序保存信息
out 向客户端输出数据
config servlet的架构部件
page 指网页本身
exception 针对错误页面才可使用
三大指令:
Page : 指令是针对当前页面的指令
Include : 用于指定如何包含另一个页面
Taglib : 用于定义和指定自定义标签
七大动作:
Forward,执行页面跳转,将请求的处理转发到另一个页面
Param :用于传递参数
Include :用于动态引入一个jsp页面
Plugin :用于下载javaBean或applet到客户端执行
useBean :使用javaBean
setProperty :修改javaBean实例的属性值getProperty :获取javaBean实例的属性值
8.过滤器,拦截器,监听器 作用?
a.启动加载顺序:监听器>过滤器>拦截器
b.过滤器和拦截器差异:
过滤器Filter 依赖于Servlet容器,基于回调函数,过滤范围大。
拦截器Interceptor 依赖于框架容器, 基于反射机制,只过滤请求。
c.三者主要用途:
监听器:
用途:
1、统计在线人数和在线用户
2、系统启动时加载初始化信息
3、统计网站访问量
4、记录用户访问路径
5、跟Spring结合
过滤器:
用途:
1、过滤字符编码
2、业务逻辑判断
3、用户是否已经登陆
4、有没有权限访问该页面
拦截器:
在面向切面编程AOP 中应用的
用途:
1.用户权限验证
感觉 过滤器 和拦截器好像不是很明晰,似乎有些事过滤器和拦截器都可以做。