1.JSP有哪些内置对象?作用分别是什么?
JSP有九大内置对象:
request:封装客户端的请求,其中包含来自get或post请求的参数
response:封装服务器对客户端的响应
pageContext:通过该对象可以获取其他对象
session:封装用户会话的对象
application:封装服务器运行环境的对象
out:输出服务器响应的输出流对象;
config:web应用的配置对象
page:JSP页面本身(相当于Java程序中的this)
exception:封装页面抛出异常的对象。
2.说一下JSP的4种作用域?
page:代表与一个页面相关的对象和属性
request:代表与客服端发出的一个请求相关的对象和属性。一个请求可以跨越多个页面,涉及多个web组件;需要在页面显示的临时数据可以至于此作用域
session:代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的session中
application:代表与整个web应用程序相关的对象和属性,它实质上是跨越整个web应用程序,包括多个页面、请求和会话的一个全局作用域。
3.session和cookie有什么区别?
存储位置不同:session存储在服务器端;cookie存储在浏览器端。
安全性不同:cookie安全性一般,在浏览器存储,可以被伪造和修改
容量和个数限制:cookie有容量限制,每个站点下的cookie也有个数限制
存储的桂多样性:session可以存储在Redis中,数据库中,应用程序中;而cookie只能存储在浏览器中。
4.说一下session的工作原理?
session的工作原理是客服端登录完成之后,服务器会创建对应的session,session创建完之后,会把session的id发送给客户端,客户端再存储在浏览器中。这样客户端每次访问服务器时。都会带着sessionid,服务器拿到sessionid之后就能在内存中找到与之对应的session这样就可以正常工作了
5.如果客服端禁止cookie能实现session还能用吗?
可以用,session只是依赖cookie存储sessionid,如果cookie被禁用了,可以使用url添加seessionid的方式保证session能正常使用
5.forward和redirect的区别?
地址栏是url显示:转发forward不会改变,redirect url会发生改变;
数据共享:forward可以共享request里的数据,redirect不能共享;
效率:forward比redirect效率高