jsp--3.cookies
来源:互联网 发布:故障树分析软件 编辑:程序博客网 时间:2024/06/04 18:34
1 Cookie
1.1 概述
服务器脚本向浏览器发送一组Cookie。例如:姓名、年龄或识别号码等。
浏览器将这些信息存储在本地计算机上,以备将来使用。
当下一次浏览器向 Web 服务器发送任何请求时,浏览器会把这些 Cookie 信息发送到服务器,服务器将使用这些信息来识别用户。
1.2 创建并设置
1.2.1 创建
Cookie cookie1 = new Cookie("username", username);
// 为名字和姓氏创建 Cookie
Cookie name = new Cookie("name",URLEncoder.encode(username,"UTF-8")); // 中文转码
1.2.2 设置有效时间
cookie1.setMaxAge(10*24*60*60);
1.2.3 设置关联路径
cookie1.setPath(request.getContextPath());
1.2.4 写入cookie
response.addCookie(cookie1);
1.3 得到并使用
1.3.1 得到cookie
得到一个数组
Cookie[] cookies = request.getCookies();
后面步骤通过for遍历得到每一个cookie
1.3.2 遍历cookie
1.3.3 得到cookie的name和value
String cookieName = cookie.getName();
String cookieValue =cookie.getValue();
1.3.4 根据name得到value
if ("username".equals(cookieName)) {
username= cookieValue;
}
补充:
假如记录的用户名和密码,不要被固始思维困扰,此时就不要请求作用域(ognl)的数据,传入的是上面在cookie获得的参数,
还有一点很重要,假如从cookie获得用户名和密码,不要吝啬servlet(action),就不要写在原来那个需要登录访问的servlet(action),再建一个servlet,重复原来的部分功能都可以
2 十天免登录原始
2.1 先搭建登录环境
2.1.1 Jsp
2.1.1.1 login.jsp
<body><form action="LoginServlet" method="post">用户名:<input type="text" name="username"/><br />密码:<input type="password" name="password" /><br /><input type="checkbox" name="day10" value="ok"/>十天<br /><input type="submit" value="提交"/></form></body>
2.1.1.2 成功页面one.jsp
<body>登录陈宫<%=session.getAttribute("username") %></body>
2.1.1.3 失败页面fair.jsp
<body>失败</body>
2.1.2 Servlet
2.1.2.1 登录UserServlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");String username = request.getParameter("username");String password = request.getParameter("password");User user = new User();user.setUsername(username);user.setPassword(password);System.out.println(user.getUsername());//连接数据库验证用户密码UserService userService = new UserService();boolean flag = userService.login(user);//登录成功跳转,失败跳到失页面if (flag) {request.getSession().setAttribute("username", user.getUsername());response.sendRedirect("one.jsp");} else {response.sendRedirect("fair.jsp");}}
2.1.3 Service
public boolean login(User user) {UserDao userDao = new UserDao();return userDao.login(user);}
2.1.4 Dao
public boolean login(User user) {Connection conn = new DbUtil().getDBConn();PreparedStatement pstmt;ResultSet res;boolean flag = false;try {String sql = "SELECT * FROM t_user WHERE username = ? AND PASSWORD = ?";pstmt = conn.prepareStatement(sql);pstmt.setString(1, user.getUsername());pstmt.setString(2, user.getPassword());res = pstmt.executeQuery();if (res.next()) {flag = true;}System.out.println(flag);return flag;} catch (SQLException e) {e.printStackTrace();return flag;}}
2.1.5 Bean
2.1.6 Utils
//连接数据库 登录界面public class DbUtil { String url = "jdbc:mysql://localhost:3306/cookie" ; String username = "root" ; String password = "root" ; Connection con = null ; public Connection getDBConn(){try {Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection(url,username,password);return con;} catch (Exception e) {e.printStackTrace();return null;}}}
2.2 Cookie修改
2.2.1 实现思路
获得cookie的username和password,然后servlet重新请求,说白了就是新建一个servlet
新建是servlet作为程序的入口
2.2.2 Sevlet—修改UserServlet
String day10 = request.getParameter("day10");System.out.println(day10);if ("ok".equals(day10)) {//创建cookieCookie cookie1 = new Cookie("username", username);Cookie cookie2 = new Cookie("password", password);//设置有效时间cookie1.setMaxAge(10*24*60*60);cookie2.setMaxAge(10*24*60*60);//设置关联路径cookie1.setPath(request.getContextPath());cookie2.setPath(request.getContextPath());//发送cookie给浏览器response.addCookie(cookie1);response.addCookie(cookie2);}
2.2.3 Servlet—isLogin,
程序入口改为这个
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//从request获取所有cookieCookie[] cookies = request.getCookies();String username = null;String password = null; if (cookies != null) {//遍历cookiefor (Cookie cookie : cookies) {String cookieName = cookie.getName();String cookieValue = cookie.getValue();if ("username".equals(cookieName)) {username = cookieValue;}if ("password".equals(cookieName)) {password = cookieValue;}}}if (username != null && password != null) {User user = new User();user.setUsername(username);user.setPassword(password);//连接数据库验证用户密码UserService userService = new UserService();boolean flag = userService.login(user);//登录成功跳转if (flag) {request.getSession().setAttribute("username", user.getUsername());response.sendRedirect("one.jsp");} else {response.sendRedirect("fair.jsp");}} else {response.sendRedirect("login.jsp");}}
注意:此时属性封装的不是页面数据,而是cookie的数据,所以需要新的servlet,准确的点说,不在同一个方法
3 Struts中
3.1 Action
3.2 实现思路:
和原始方式大同小异,重新来个action,程序入口改为这个
3.3 修改UserAction
3.4 修改IndexAction
3.5 Struts.xml
源代码文件:http://download.csdn.net/detail/qq_26553781/9825051
- jsp--3.cookies
- jsp .cookies
- JSP-- cookies
- JSP Cookies
- jsp读写cookies
- jsp读写Cookies
- JSP中的Cookies
- JSP Cookies 处理
- JSP Cookies 处理
- JSP中如何设置Cookies
- JSP中如何设置Cookies
- 详细介绍Jsp中的Cookies
- 详细介绍Jsp中的Cookies
- JSP中如何设置Cookies
- 详细介绍Jsp中的Cookies
- jsp清除页面session、cookies缓存
- jsp中session 和 cookies区别
- session和cookies在jsp中的使用方法
- 退役了~
- getFields()与getDeclaredFields()区别
- 人工智能与机器学习知识梳理
- 前端获取表格中一行内容
- 一些web前端的优化技巧总结
- jsp--3.cookies
- SAP最大命中数的修改
- Maven运行项目出现架包丢失错误
- Idea 实用功能简介
- LeetCode 151. Reverse Words in a String && 186. Reverse Words in a String||&&557. Reverse
- Linux命令行与shell脚本(19)--实例:监测磁盘空间
- 关于Unity中NGUI的相机深度问题
- JAVA设计模式之代理模式
- TF库的使用与理解