1.jsp的九大内置对象和作用2.get和post请求的区别,表单请求的方法)
(1)GET请求把表单数据显示在url地址上,POST请求把表单数据放在请求体内
(2)GET表单数据长度有限,而POST没有限制
(3)GET请求 速度快些,POST相对会慢些
(4)GET请求一次性把数据和请求头header发送给服务器,服务器返回200
,POST先把请求头header发送给服务器,服务器返回状态码100后再继续发送数据
(5)假如表单中有图片、音频、视频等数据时,只能用post请求,不能用get
get请求只能以字符形式发送请求,post请求既可以用字符也可以用字节
- 请求转发和重定向区别 (页面跳转)
(1)请求转发通过request,重定向是通过response
(2)请求转发的url地址仍然显示跳转前原页面地址,而重定向的url地址会显示跳转后的页面地址
(3)请求转发内部转发,一次客户端请求,而重定向,客户端是2次请求
(4)请求转发只能跳转本应用程序内的资源,而重定向可以跳转应用程序以外的资源4,session的作用和原理
.session的作用
解决http协议无状态无连接的问题,在session的生命周期中,可以随意的对session进行存取
重定向可以配合session完美保存数据状态
.session的原理
客户端发送一个请求时,会在服务器端为该客户端创建一个session,会有一个sessionid,
sessionid存放到一个cookie里,返回给客户端,当客户端再次发送请求时,
这时会把sessionid传给服务端,服务端会比较 sessionId来区别是否是同一个id。
5.session的三种销毁方式
从浏览器打开使用session开始,一直到关闭浏览器或者手动销毁session或者session设置有效时间中止时,session结束
手动销毁session
session.invalidate()
session的有效时长
session.setMaxInactiveInterval(10);//单位是秒,10秒钟后,session内容自动被清除
6.cookie是什么。如何使用
cookie(值存放在客户端)
(1)cookie到底是个什么?
由客户端浏览器生成的一个文件,用于存放一些值,
(2)cookie如何使用?
cookie不是jsp的内置对象,需要手动创建cookie对象,cookie对象的值只能支持字符串,不支持其他类型
a.创建cookie对象
Cookie cookie = new Cookie("name","张三");
b.发送给客户端
response.addCookie(cookie);
c.从客户端获取cookie的值
Cookie[] cookies = request.getCookies();
cookie[0].getName() //获取cookie的key
cookie[0].getValue()//获取cookie的value
d.设置cookie的有效时长
cookie.setMaxAge(10);//设置cookie存活10秒,10秒后客户端会自动删除该cookie
(3)使用cookie会有一个风险?
当客户端禁用的cookie的时候,cookie就无法使用
7.jsp四大范围
page范围 pageContext:只能在当前页面获取到
request 请求转发中,原jsp页面中存入值,使用请求转发跳转到另外一个页面,在另外一个页面中可以取出该值
session 只要在同一个会话中,之前存入session的值,都可以获取到
application 只要在同一个应用程序中,之前存入的值,在所有页面都可以获取8.禁用cookie后,如何让session继续能使用(url重写)
注1:客户端禁用cookie,客户端无法存放sessionid,session失效
如何在客户端禁用cookie,仍然能继续使用session?
url重写:
encodeURL()
redirectEncodeURL()
response.encodeRedirectURL("index.jsp")
url重写 假如cookie被禁用,url会重写,cookie没有被禁用,url不会被重写
重写前url地址:http://localhost:8080/testweb1/index.jsp
重写后url地址:http://localhost:8080/testweb1/index.jsp;jsessionid=EAD8EDEABF078D8F46B7B89E23340976