jsp: forward和response.sendRedirect()两种跳转语句区别:
如果使用前者的话:
服务器跳转,跳转后地址栏不变;
属于无条件跳转,执行之后立即跳转,跳转之前的语句会执行,而跳转之后的语句
将不会执行,那么如果现在在jsp中使用了jdbc之后,很明显必须在跳转至那进行数据库的关闭,否则就无法在关闭了。
如果使用后者的话:
客户端跳转,跳转之后地址栏改变,不可以传递request属性
是在所有语句执行完之后才完成的跳转。
Cookie:
按照Cookie的理论来说,所有的Cookie应该都保存了客户端,那么即使现在的浏览器
关闭后也应该可以继续取得
如果Cookie没有设置保存时间的话,默认的实在一个浏览器中保存的,如果浏览器关闭的话
,则Cookie消失,那么如果要先真正的保存在客户端上一段时间,则必须使用Cookie类提供的setMaxAge()方法完成。
response对象主要表示的是服务器端对客户端的回应,对于Cookie的操作本身是存在安全隐患的,如果存放客户端信息的时候都使用
Cookie保存即可。
Cookie代码用例:
<%@page contentType="text/html" pageEncoding="GBK"%>
<html>
<body>
<%
Cookie c1=new Cookie("name","runner");
Cookie c2= new Cookie("url","www.baidu.com");
c1.setMaxAge(100);
c2.setMaxAge(100);
response.addCookie(c1);
response.addCookie(c2);
%>
</body>
</html>
<%@page contentType="text/html" pageEncoding="GBK"%>
<html>
<body>
<%
Cookie[] c=request.getCookies();
for(int i=0;i<c.length;i++){
%>
<%=c[i].getName() %> ------><%=c[i].getValue() %><br>
<%
}
%>
<!-- <h3>3秒跳转,如果没有跳转,请点击<a href="1.jsp">这里</h3>
<%
response.setHeader("refresh", "3;URL=1.jsp");//3s跳转
%>
-->
</body>
</html>