Servlet相关(request域转发、重定向、刷新头)(session域)

>请求域的转发(request.getRequestDispatcher(/转发路径).forward(req,resp))

转给静态的资源:

转给动态的servlet:

>请求域设置属性值:

域中的Attribute操作是程序员自己搞得,传递数据。

Parameter是来自页面带来的参数。

扫描二维码关注公众号,回复: 5372385 查看本文章

>请求域的重定向(response.setRedirect(/项目名/资源名))

>转发与重定向的区别

转发和重定向区别 :  web-inf 里的资源

转发: 可以把请求转给web-inf里的资源

重定向不可以. 相当于用户浏览器直接访问web-inf里的资源 , 不可以;

>请求域的刷新头设置

>session对象(记录登录状态):

session的实现原理

常规情况下session底层是依赖Cookie的。当首次使用session时,服务器端要创建session,session是保存在服务器端,而给客户端的session的id(一个cookie中保存了sessionId)。客户端带走的是sessionId,而数据是保存在session中。当客户端再次访问服务器时,在请求中会带上sessionId,而服务器会通过sessionId找到对应的session,而无需再创建新的session。

session保存在服务器,而sessionId通过Cookie发送给客户端,但这个Cookie的生命不-1,即只在浏览器内存中存在,也就是说如果用户关闭了浏览器,那么这个Cookie就丢失了。

当用户再次打开浏览器访问服务器时,就不会有sessionId发送给服务器,那么服务器会认为你没有session,所以服务器会创建一个session,并在响应中把sessionId中到Cookie中发送给客户端。     

你可能会说,那原来的session对象会怎样?当一个session长时间没人使用的话,服务器会把session删除了!这个时长在Tomcat中配置是30分钟,可以在${CATALANA}/conf/web.xml找到这个配置,当然你也可以在自己的web.xml中覆盖这个配置。

web.xml

    <session-config>

        <session-timeout>30</session-timeout>

    </session-config>

session失效时间也说明一个问题!如果你打开网站的一个页面开始长时间不动,超出了30分钟后,再去点击链接或提交表单时你会发现,你的session已经丢失了。

 

猜你喜欢

转载自blog.csdn.net/AhaQianxun/article/details/88045755
今日推荐