java用cookie最新浏览商品_javaWeb 使用cookie显示商品浏览记录

packagede.bvb.cookie;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.Arrays;importjava.util.Date;importjava.util.LinkedList;importjava.util.Map.Entry;importjavax.enterprise.inject.ResolutionException;importjavax.servlet.ServletException;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.swing.text.DateFormatter;/*** 显示商品详情

*

*@authorjoker

**/

public class CookieDemo12 extendsHttpServlet {public voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html; charset=UTF-8");

PrintWriter out=response.getWriter();//显示商品详情

out.write("商品详情:
");

String id= request.getParameter("id");for (Entryb : Db.getBooks().entrySet()) {if(id.equals(b.getKey())) {

out.write(b.getValue().getId()+ "
");

out.write(b.getValue().getName()+ "
");

out.write(b.getValue().getDescription()+ "
");

}

}//回写cookie,保存最后浏览的商品id

String history =buildIds(id, request);

Cookie cookie= new Cookie("history", history);

cookie.setMaxAge(1 * 30 * 24 * 60 * 60);

cookie.setPath("/web");

response.addCookie(cookie);

}privateString buildIds(String id, HttpServletRequest request) {

String history= null;

Cookie[] cookies=request.getCookies();for (int i = 0; cookies != null && i < cookies.length; i++) {if (cookies[i].getName().equals("history")) {

history=cookies[i].getValue();

}

}if (history == null) {returnid;

}

LinkedList ids = new LinkedList(Arrays.asList(history

.split("\\,")));if(ids.contains(id)) {

ids.remove(id);

}else{if (ids.size() >= 3) { //最多显示3条浏览历史

ids.removeLast();

}

}

ids.addFirst(id);

StringBuffer sb= newStringBuffer();for(String s : ids) {

sb.append(s).append(",");

}return sb.deleteCharAt(sb.length() - 1).toString();

}public voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

doGet(request, response);

}

}

JavaWeb应用中,为了实现用户登录认证,通常会使用Session和Cookie。 Session是在服务端保存用户状态的一种机制,每个用户在访问服务器时都会被分配一个唯一的Session ID,通过该ID可以在服务端存储和获取与该用户相关的信息。在用户登录后,可以将用户信息存储到Session中,供之后的页面访问和使用Cookie是在客户端保存用户状态的一种机制,通过在服务端设置Cookie,在客户端保存一个唯一的标识符,带着该标识符可以在客户端和服务端之间传递数据。在用户登录后,可以将用户信息存储到Cookie中,供之后的页面访问和使用使用Session和Cookie实现登录认证的基本流程如下: 1. 用户在登录页面输入用户名和密码。 2. 服务器接收到请求后,验证用户名和密码是否正确。 3. 如果验证通过,生成一个唯一的Session ID,并将用户信息存储到Session中。 4. 将Session ID 存储到Cookie中,并设置Cookie的有效期。 5. 用户访问其他页面时,将Cookie中的Session ID 发送到服务器,服务器根据Session ID 获取用户信息,判断用户是否登录。 6. 如果用户已经登录,返回需要访问的页面内容;如果用户未登录,跳转到登录页面。 示例代码如下: ```java // 生成Session ID String sessionId = UUID.randomUUID().toString(); // 将用户信息存储到Session中 HttpSession session = request.getSession(); session.setAttribute("username", username); // 将Session ID 存储到Cookie中,并设置有效期为1天 Cookie cookie = new Cookie("sessionId", sessionId); cookie.setMaxAge(24 * 60 * 60); response.addCookie(cookie); // 获取Cookie中的Session ID,并根据Session ID 获取用户信息 Cookie[] cookies = request.getCookies(); String sessionId = null; if (cookies != null) { for (Cookie c : cookies) { if ("sessionId".equals(c.getName())) { sessionId = c.getValue(); break; } } } if (sessionId != null) { HttpSession session = request.getSession(false); if (session != null) { String username = (String) session.getAttribute("username"); if (username != null) { // 用户已经登录,返回需要访问的页面内容 } } } // 用户未登录,跳转到登录页面 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值