Cookie存储&获取账号密码信息解决思路
当我们写一个JavaWeb页面,信息的存储&获取是我们关注的第一要素。
这是我研究了一上午研究出来的存储&获取账号密码信息的一个小途径,希望可以给正在寻找此类问题答案的同学帮助。
用一个例子来分析
要求如图:
BUG重现
: 由于页面有很多操作按钮,每次我们操作之后,页面或许就不会知道我们的身份导致我们对自己的文章没法执行修改和删除操作。
解决BUG前的分析
那么如何保证每次操作之后系统仍然知道我们的身份,并以此判断文章是否是我们的呢?
或许你想到了用域对象还有cookie以及session的知识点解决
我这里就是用cookie解决这个问题
实现步骤
: 当我们登录信息的时候,存储身份信息的cookie,当我们再需要用身份信息判断的页面,获取cookie,
代码实现
:
servlet模块:
// 正题:1.存储身份信息的cookie。
Cookie cookie=new Cookie("userid",String.valueOf(login.getUserid()));
Cookie cookie1=new Cookie("account",String.valueOf(login.getAccount()));
Cookie cookie2=new Cookie("passwprd",String.valueOf(user.getPassword()));
// 2.添加cookie
response.addCookie(cookie);
response.addCookie(cookie1);
response.addCookie(cookie2);
request.getRequestDispatcher("MainServlet").forward(request,response);
一系列操作之后,跳转到身份判断页面
main.jsp
<%--准备获取cookie--%>
<body>
<%
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
String name = cookie.getName();
String value = cookie.getValue();
if (name.equals("userid")){
request.setAttribute("userid",value);
}
}
%>
......
<%-- 注意这里,我们将收到的文章a.uid 和 cookie获取到并发给域对象的 userid 进行比对--%>
<c:if test="${a.uid eq requestScope.userid}">
<a href="FindArtServlet?aid=${a.aid}"><input type="button" value="set"></a>
<a href="DelArtServlet?aid=${a.aid}&uid=${a.uid}"><input type="button" value="del"></a>
</c:if>
此时,即可排除bug