Session禁用Cookie
- Java Web规范支持通过配置禁用Cookie
- 禁用自己项目的Cookie
<?xml version='1.0' encoding='utf-8'?> <Context path="/ouzicheng" cookies="false"> </Context>
- 在META-INF文件夹下的context.xml文件中修改(没有则创建)
- 禁用全部web应用的Cookie
- 在conf/context.xml中修改
注意:该配置只是让服务器不能自动维护名为jsessionid的Cookie,并不能阻止Cookie的读写。
Session案例
使用Session完成用户简单登陆
- 先创建User类
private String username = null; private String password = null; public User() { } public User(String username, String password) { this.username = username; this.password = password; } ....各种set、get方法
使用简单的集合模拟一个数据库
private static List<User> list = new ArrayList<>(); //装载些数据进数据库 static { list.add(new User("aaa","111")); list.add(new User("bbb","222")); list.add(new User("ccc","333")); } //通过用户名和密码查找用户 public static User find(String username, String password) { for (User user : list) { if (user.getUsername().equals(username) && user.getPassword().equals(password)) { return user; } } return null; }
表单提交的工作我就在jsp写了,如果在Servlet写太麻烦了!
<form action="/ouzicheng/LoginServlet" method="post"> 用户名:<input type="text" name="username"><br/> 密码:<input type="password" name="password"><br/> <input type="submit" value="提交"> </form>
获取到表单提交的数据,查找数据库是否有相对应的用户名和密码。如果没有就提示用户名或密码出错了,如果有就跳转到另外一个页面
String username = request.getParameter("username"); String password = request.getParameter("password"); User user = UserDB.find(username, password); //如果找不到,就是用户名或密码出错了。 if (user == null) { response.getWriter().write("you can't login"); return; } //标记着该用户已经登陆了! HttpSession httpSession = request.getSession(); httpSession.setAttribute("user", user); //跳转到其他页面,告诉用户成功登陆了。 response.sendRedirect(response.encodeURL("index.jsp"));
- 我们来试试下数据库没有的用户名和密码,提示我不能登陆。
试试数据库存在的用户名和密码