Servlet&jSP
1 Servlet和JSP的区别?
1 Servlet是一个运行在服务器上的Java类,依靠服务器支持向浏览器传输数据
2 JSP本质上是Servlet的一种简易形式,可以简化页面的生成
3 Servlet的应用逻辑在Java文件中,并且完全从HTML分离而来,JSP则是Java和HTML组合成一个扩展名为.jsp文件
4 JSP侧重于视图,而Servlet侧重于控制逻辑,在MVC架构模式中,JSP适合充当视图View,Servlet适合充当控制器Controller
2 简述Servlet生命周期
1 init() 初始化
2 service() 处理客户端请求
3 destroy() 销毁方法
3 如何现实servlet的单线程模式?
<%@ page isThreadSafe="false" %>
4 请求转发(forward)和重定向(redirect)的区别?
1:效率上
转发(forward) > 重定向(redirect)
2:显示上
重定向(redirect):显示新的URL
转发(forward):地址栏不变
3:数据上
转发(forward):可以共享request里面的数据
重定向(redirect):不能
4:请求次数
重定向(redirect)是两次
转发(forward)是一次
5 get请求和post请求的区别?
GET:
1:从服务器上获取数据,一般不能使用在写操作接口
2:由URL所限制,GET方式传输的数据大小有所限制,传送的数据量不超过2KB
3:请求的数据会附加在URL之后,以?分隔URL和传输数据,多个参数用&连接
4:安全性差
POST:
1:向服务器提交数据,一般处理写业务
2:POST方式传送的数据量比较大,一般被默认为没有限制
3:安全性高
4:请的求的数据内容放置在HTML HEADER中
6 JSP的9个内置对象和4个作用域?
(1)9 个内置对象:
1 request:封装客户端的请求,其中包含来自 GET 或 POST 请求的参数;
2 application:封装服务器运行环境的对象;
3 response:封装服务器对客户端的响应;
4 session:封装用户会话的对象;
5 page:JSP 页面本身(相当于 Java 程序中的 this);
6 config:Web 应用的配置对象;
7 exception:封装页面抛出异常的对象;
8 pageContext:通过该对象可以获取其他对象;
9 out:用来传送回应的输出;
(2)4 个域对象
1 page(当前页面)
2 request(一次请求)
3 session( 一次会话)
4 application (整个会话)
7 会话跟踪技术有哪些?
1 由于 HTTP 协议本身是无状态的,服务器为了区分不同的用户,就需要对用户会话进行跟踪,简单的说就是 为用户进行登记,为用户分配唯一的 ID,下一次用户在请求中包含此 ID,服务器根据此判断到底是哪一个用户。
2 URL 重写:在 URL 中添加会话信息作为请求的参数,或者将唯一的会话 ID 添加到 URL 结尾,以表示一个 会话;
3 设置表单隐藏域:将和会话跟踪相关的字段添加到隐藏域中,这些信息不会在浏览器显示,但是提交表 单时会提交给服务器;
4 cookie:cookie 有两种,一种是基于窗口的,浏览器关闭后,cookie 就没有了;另一种是将信息存储在一
个临时文件中,并设置其有效路径和最大存活时间。当用户通过浏览器和服务器建立一次会话后,会话ID就会随相应信息储存在基于窗口的 cookie 中,那就意味着只要浏览器没有关闭,会话没有超时,下一次请求时这个会话ID
又会提交给服务器,让服务器识别用户身份。在使用 cookie 时要注意几点:首先不要在 cookie 中存放敏 感信息;
其次 cookie 存储的数据量有限(4k),不能将过多的内容存储 cookie 中;再者浏览器通常只允许一个站点最多存
放 20 个 cookie。当然,和用户会话相关的其他信息(除了会话 ID)也可以存在 cookie 方便进行会话 跟踪;
5 HttpSession:在所有会话跟踪技术中,HttpSession 对象是最强大也是功能最多的。当一个用户第一次访 问某个
网站时会自动创建 HttpSession,每个用户可以访问他自己的 HttpSession。可以通过 HttpServletRequest对象的
getSession 方法