更新時間:2016年09月21日11時58分 來源:傳智播客JAVA培訓學院 瀏覽次數(shù):
<body> <%-- 本頁面提供登錄表單,還要顯示錯誤信息 --%> <h1>登錄</h1> <% /* 讀取名為uname的Cookie! 如果為空顯示:"" 如果不為空顯示:Cookie的值 */ String uname = ""; Cookie[] cs = request.getCookies();//獲取請求中所有的cookie if(cs != null) {// 如果存在cookie for(Cookie c : cs) {//循環(huán)遍歷所有的cookie if("uname".equals(c.getName())) {//查找名為uname的cookie uname = c.getValue();//獲取這個cookie的值,給uname這個變量 } } } %> <% String message = ""; String msg = (String)request.getAttribute("msg");//獲取request域中的名為msg的屬性 if(msg != null) { message = msg; } %> <font color="red"><b><%=message %> </b></font> <form action="/Example22/LoginServlet" method="post"> <%-- 把cookie中的用戶名顯示到用戶名文本框中 --%> 用戶名:<input type="text" name="username" value="<%=uname%>"/><br/> 密 碼:<input type="password" name="password"/><br/> 驗證碼:<input type="text" name="verifyCode" size="3"/> <img id="img" src="/Example22/VerifyCodeServlet"/><br> <input type="submit" value="登錄"/> </form> </body> |
public class VerifyCodeServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* * 1. 生成圖片 * 2. 保存圖片上的文本到session域中 * 3. 把圖片響應給客戶端 */ VerifyCode vc = new VerifyCode(); BufferedImage image = vc.getImage(); request.getSession().setAttribute("session_vcode", vc.getText());//保存圖片上的文本到session域 VerifyCode.output(image, response.getOutputStream()); } } |
/* * 校驗驗證碼 * 1. 從session中獲取正確的驗證碼 * 2. 從表單中獲取用戶填寫的驗證碼 * 3. 進行比較! * 4. 如果相同,向下運行,否則保存錯誤信息到request域,轉發(fā)到login.jsp */ String sessionCode=(String)request.getSession(). getAttribute("session_vcode"); String paramCode = request.getParameter("verifyCode"); if(!paramCode.equalsIgnoreCase(sessionCode)) { request.setAttribute("msg", "驗證碼錯誤!"); request.getRequestDispatcher("/session/login.jsp"). forward(request, response); return; } |
<script type="text/javascript"> function _change() { /* 1. 得到img元素 2. 修改其src為/day11_3/VerifyCodeServlet */ var imgEle = document.getElementById("img"); imgEle.src = "/Example22/VerifyCodeServlet?a=" + new Date().getTime(); } </script> ... ... <a href="javascript:_change()">換一張</a> |