您的位置:首页 > 编程语言 > Java开发

java web之路 jsp状态管理 cookie在登陆中的应用

2018-01-07 22:50 597 查看
通过cookie保存登陆使用的使用名及密码

login.jsp页面中输入用户名及密码,选择是否将帐户信息保存在cookie中

提交至dologin.jsp页面中,在dologin.jsp中使用cookie保存用户信息,设置链接到user.jsp页面

user.jsp页面通过cookie来读取帐户信息,验证cookie保存是否成功

login.jsp

<form action="dologin.jsp" name="login" method="post">
<table>
<tr>
<td>用户名:<input type="text" name="username" value="<%=username%>"></td>
</tr>
<tr>
<td>密码:<input type="password" name="password" value="<%=password%>"></td>
</tr>
<tr>
<td><button type="submit" value="dologin">登陆</td>
</tr>
<tr>
<td><input type="checkbox" name="usecookie" checked="checked">十天内记住用户名密码</td>
</tr>

</table>
</form>


dologin.jsp

<%
String username="";
String password="";
//获得是否选择了保存帐户信息
String isusecookie = request.getParameter("usecookie");
/* 	String[] isusecookie = request.getParameterValues("usecookie"); */
if(isusecookie!=null){
username=request.getParameter("username");
password=request.getParameter("password");
Cookie usernamecookie=new Cookie("username",username);//新建username cookie对象
Cookie passwordcookie=new Cookie("password",password);
usernamecookie.setMaxAge(846000);//设置cookie存在的时间,单位秒
passwordcookie.setMaxAge(846000);
response.addCookie(usernamecookie);//将username cookie对象写入cookie中
response.addCookie(passwordcookie);
}else{
Cookie[] cookies=request.getCookies();//不保存帐户信息时需要清除原cookie信息
if(cookies!=null&&cookies.length>0){
for(Cookie c : cookies){
if(c.getName().equals("username")||c.getName().equals("password")){
c.setMaxAge(0);
response.addCookie(c);
}
}
}
}
%>
<a href="user.jsp">链接到user.jsp</a>


user.jsp

<%
String username="";
String password="";
Cookie[] cookie = request.getCookies();
for (Cookie c : cookie) {
if(c.getName().equals("username")){
username=c.getValue();
}
if(c.getName().equals("password")){
password=c.getValue();
}

}
%>
用户名:<%=username %>
<br>
密码:<%=password %>


login.jsp页面 如果保存了帐户信息,那么在帐户输入框中显示,修改后的页面

<%
String username="";
String password="";
Cookie[] cookie = request.getCookies();
for (Cookie c : cookie) {
if(c.getName().equals("username")){
username=c.getValue();
}
if(c.getName().equals("password")){
password=c.getValue();
}

}
%>
<body>
<form action="dologin.jsp" name="login" method="post"> <table> <tr> <td>用户名:<input type="text" name="username" value="<%=username%>"></td> </tr> <tr> <td>密码:<input type="password" name="password" value="<%=password%>"></td> </tr> <tr> <td><button type="submit" value="dologin">登陆</td> </tr> <tr> <td><input type="checkbox" name="usecookie" checked="checked">十天内记住用户名密码</td> </tr> </table> </form>


题外话:

学习的过程中,有过一点迷糊:什么时候使用request/resonpse ?

web有页面->页面, 页面->服务器

页面之前跳转,A到B,A提交信息至B,那么在B中使用request对象来得到相关信息,相反,B要把信息返回给A或者返回给客户端,B中使用response。

无论是谁传给谁,获取信息时使用requset, 发出信息时使用response;

在cookie的使用中,需要将cookie信息给到客户端,所以只有response对象才有addCookie方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: