jsp session.setAttribute()和session.getAttribute()用法案例详解
Session可以理解为服务器为每个用户建立的一个单独的存储空间。它可以用来跟踪用户在整个会话期间的状态信息,比如登录状态、购物车商品等。
1. 用户登录状态管理
Java
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
// 验证用户名密码
if (/* 验证通过 */) {
session.setAttribute("username", username);
response.sendRedirect("welcome.jsp");
} else {
response.sendRedirect("login.jsp");
}
%>
在welcome.jsp中可以获取用户名:
Java
<%
String username = (String) session.getAttribute("username");
out.println("欢迎您," + username + "!");
%>
2. 购物车功能
Java
<%
// 添加商品到购物车
Product product = new Product(1, "手机", 2999);
List<Product> cart = (List<Product>) session.getAttribute("cart");
if (cart == null) {
cart = new ArrayList<>();
}
cart.add(product);
session.setAttribute("cart", cart);
%>
3. 用户个性化设置
Java
<%
String theme = request.getParameter("theme");
if (theme != null) {
session.setAttribute("theme", theme);
}
%>
在后续的页面中根据session中的theme值来设置页面的主题。
// 商品类
class Product {
int id;
String name;
double price;
// ... getter and setter
}
// 添加商品到购物车
<%
Product product = new Product(1, "手机", 2999);
List<Product> cart = (List<Product>) session.getAttribute("cart");
if (cart == null) {
cart = new ArrayList<>();
}
cart.add(product);
session.setAttribute("cart", cart);
%>
// 显示购物车
<%
List<Product> cart = (List<Product>) session.getAttribute("cart");
if (cart != null && !cart.isEmpty()) {
for (Product product : cart) {
out.println(product.getName() + " - " + product.getPrice());
}
}
%>
session.setAttribute() 和 session.getAttribute() 是JSP中非常常用的方法,用于在会话期间存储和获取数据。通过合理地使用Session,可以实现很多有用的功能,比如用户认证、购物车、个性化设置等。
温馨提示:
如果您还有其他问题,欢迎随时提问!