javaweb中Cookie的使用

来源:互联网 发布:淘宝背景音乐喵喵喵 编辑:程序博客网 时间:2024/06/04 18:53

之前的代码中已经学习了关于javaweb的简单程序编写,现在需要使用cookie来进行参数的传递,这里以自动登录来学习。

  • 首先我们需要在登陆页面中插入自动登录选项框,相应的代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>login</title></head><!-- 页面的样式文件 --><style type="text/css">body{background-color : #eee;}#first{width:500px;margin:30px auto;}</style><body><div id="first">${sessionScope.message}<br><br><form action="login.do" method="post" ><table><tr><td>用户名:</td><td><input type="text" name="username"></td></tr><tr><td>密 码:</td><td><input type="password" name="password"></td></tr><tr><td><input type="checkbox" name="check" value="check"/>自动登录<br></td></tr><tr><td><input type="submit" value="确认"></td><td><input type="reset" value="取消"></td></tr></table></form></div></body></html>

  • 其次我们在验证登陆的servlet中进行cookie代码编写,但是我按照书本上的来进行发现不会实现相应的功能,所以我就按照自己的方式来完成了(页面在刷新的时候应该是先执行doget方法,但是将cookie写在doget方法里程序运行的时候并不会执行,所以我将doget要实现的功能在dopost里面来进行代码编写,最终实现了相应的功能)。相应的代码如下:
package king;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class loginservlet */@WebServlet(name="loginservlet",urlPatterns={"/login.do"})public class loginservlet extends HttpServlet {private static final long serialVersionUID = 1L;String message = "";       protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");//发现写在doget方法里的代码不会执行String value1 = "",value2 = "";Cookie cookie = null;Cookie[] cookies = request.getCookies();//获得Cookie对象数组if(cookies!=null){for(int i = 0;i<cookies.length;i++){cookie = cookies[i];if(cookie.getName().equals("username")){value1 = cookie.getValue();}if(cookie.getName().equals("password")){value2 = cookie.getValue();}}if(value1.equals("admin") && value2.equals("1234")){message = "欢迎您!" + value1 + "再次登录该页面!";request.getSession().setAttribute("message", message);response.sendRedirect("register.jsp");}else{response.sendRedirect("login.jsp");}}else{response.sendRedirect("login.jsp");}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String value1 = "",value2 = "";Cookie cookie = null;Cookie[] cookies = request.getCookies();//获得Cookie对象数组if(cookies!=null){for(int i = 0;i<cookies.length;i++){cookie = cookies[i];if(cookie.getName().equals("username")){value1 = cookie.getValue();}if(cookie.getName().equals("password")){value2 = cookie.getValue();}}if(value1.equals("admin") && value2.equals("1234")){message = "欢迎您!" + value1 + "再次登录该页面!";request.getSession().setAttribute("message", message);response.sendRedirect("register.jsp");}else{response.sendRedirect("login.jsp");}}//如果没有cookieelse{//获得用户的用户名和密码String username = request.getParameter("username").trim();String password = request.getParameter("password").trim();//Cookie代码if(!username.equals("admin") || !password.equals("1234")){message = "用户名或密码错误,请重试!";request.getSession().setAttribute("message", message);response.sendRedirect("login.jsp");}else{//如果用户选中了“自动登陆”复选框,向浏览器发送两个Cookieif(request.getParameter("check")!=null && (request.getParameter("check").equals("check"))){Cookie namecookie = new Cookie("username",username);Cookie passwordcookie = new Cookie("password",password);namecookie.setMaxAge(60*60);passwordcookie.setMaxAge(60*60);response.addCookie(namecookie);response.addCookie(passwordcookie);}message = "欢迎"+username+"你已成功登陆!";request.getSession().setAttribute("message", message);response.sendRedirect("register.jsp");}}}}

  • 进行程序验证。
首先登陆界面:

登陆之后:


在Javaweb中的cookie使用上,我也是有点懵,如果哪位大神看了之后有什么不对的地方,希望能够不吝赐教。
0 0
原创粉丝点击