java servlet编程知识点记录

1.redirect(重定向)和forword(转发)的区别

 

request.redirect()request.getRequestDispatcher().forward(request,response)
浏览器发请求到服务器,服务器将重定向url返回给浏览器,(http状态302),浏览器再发请求到重定向url。浏览器发了两个请求浏览器发请求到服务器,forword访问应用到内部地址,得到response再返回给浏览器,浏览器发了一个请求
redirect之后,会清掉request,例如servlet-->redirect-->jsp,在jsp页面要想获取request参数是不可行到,因为request是null,但是可以用session由于在整个定向的过程中用的是同一个request,因此forward会将request的信息带到被重定向的jsp或者servlet中使用
浏览器中地址栏url发生变化浏览器中地址栏url不变

2.session

session是可以跨页面的,看看在redirect(重定向)上可用就知道了

 

3.HttpServletRequest的常用方法

request.getParameter(String name), request.getSession(),request.setAttribute(String name, Object value)等等

4.HttpServletResponse的常用方法

response.redirect(String url),response.getWriter()等等

5.servlet怎样通过通过sessionId获取session?

Servlet2.1之后不支持SessionContext里面getSession(String id)方法。

但是,我们可以通过HttpSessionListener监听器和全局静态map自己实现一个SessionContext。

原文链接:https://blog.csdn.net/sihai12345/article/details/81098765

6.:session 的过期机制

session.maxINactiveInterval(int)可以设置时间

1小时=3600, session.maxINactiveInterval(3600)

既然有生效时间,为什么我们在浏览器上关闭页面之后感觉session就失效了?

session是存在在服务器端的,在生效时间之内,session还是存在在服务端的,只是关闭页面,打开一个新页面的时候,

 页面请求会在后端生成一个新的session,新老session的id不一样,在新session上获取老session的属性,自然获取不到。

所以我们在请求中会带上sessionId(例如在cookie中存储,url中以参数形式带上)

 

待续学习...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值