<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Login</title> <!-- Fav Icon Link --> <link rel="shortcut icon" type="image/png" href="images/fav.png"> <!-- Bootstrap core CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <!-- themify icons CSS --> <link rel="stylesheet" href="css/themify-icons.css"> <!-- Main CSS --> <link rel="stylesheet" href="css/styles.css"> <link rel="stylesheet" href="css/green.css" id="style_theme"> <link rel="stylesheet" href="css/responsive.css"> <script src="js/modernizr.min.js"></script> <style> .checkCodes{ position: relative; right: 12px; top: 7px; } .center{ margin-top: 120px; } .error{ 50%; margin-left: 120px; } </style> </head> <body class="auth-bg" > <div class="center"> <!-- Pre Loader --> <div class="loading"> <div class="spinner"> <div class="double-bounce1"></div> <div class="double-bounce2"></div> </div> </div> <!--/Pre Loader --> <!-- Color Changer --> <div class="theme-settings" id="switcher"> <span class="theme-click"> <span class="ti-settings"></span> </span> <span class="theme-color theme-default theme-active" data-color="green"></span> <span class="theme-color theme-blue" data-color="blue"></span> <span class="theme-color theme-red" data-color="red"></span> <span class="theme-color theme-violet" data-color="violet"></span> <span class="theme-color theme-yellow" data-color="yellow"></span> </div> <!-- /Color Changer --> <div class="wrapper"> <!-- Page Content --> <div id="content"> <div class="container"> <div class="row"> <div class="col-sm-6 auth-box"> <div class="lochana-box-shadow"> <h3 class="widget-title">登录</h3> <form class="widget-form" action="${pageContext.request.contextPath}/LoginServlet" method="post"> <!-- form-group --> <div class="form-group row"> <c:if test="${error_msg!=null}"> <div class="col-sm-12"> <div class="alert alert-danger error" role="alert"> ${error_msg} </div> </div> </c:if> <div class="col-sm-12"> <input name="username" placeholder="请输入用户名" class="form-control" required="" data-validation="length alphanumeric" data-validation-length="3-12" data-validation-error-msg="User name has to be an alphanumeric value (3-12 chars)" data-validation-has-keyup-event="true"> </div> </div> <!-- /.form-group --> <!-- form-group --> <div class="form-group row"> <div class="col-sm-12"> <input type="password" placeholder="请输入密码" name="password" class="form-control" data-validation="strength" data-validation-strength="2" data-validation-has-keyup-event="true"> </div> </div> <div class="form-group row"> <div class="col-sm-8"> <input placeholder="请输入验证码" name="checkCode" class="form-control" data-validation="strength" data-validation-strength="2" data-validation-has-keyup-event="true"> </div> <div class="col-sm-4 checkCodes"> <a href="javascript:refreshCode()"><img src="${pageContext.request.contextPath}/checkCode" title="请点击刷新" height="80%" width="80%" id="checkCode"></a> </div> </div> <!-- /.form-group --> <!-- Check Box --> <div class="form-check row"> <div class="col-sm-12 text-left"> <div class="custom-control custom-checkbox"> <input class="custom-control-input" type="checkbox" id="ex-check-2"> <label class="custom-control-label" for="ex-check-2">记住我</label> </div> </div> </div> <!-- /Check Box --> <!-- Login Button --> <div class="button-btn-block"> <button type="submit" class="btn btn-primary btn-lg btn-block">登录</button> </div> <!-- /Login Button --> <!-- Links --> <div class="auth-footer-text"> <small>新用户
package web.Servlet; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.*; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; @WebServlet("/checkCode") public class CheckCodeServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setHeader("pragma","no-cache"); response.setHeader("cache-control","no-cache"); response.setHeader("expires","0"); int width = 80; int height = 30; BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); g.setColor(Color.GRAY); g.fillRect(0,0, width,height); String checkCode = getCheckCode(); request.getSession().setAttribute("CHECKCODE_SERVER",checkCode); g.setColor(Color.YELLOW); g.setFont(new Font("黑体",Font.Bold,20)); g.drawString(checkCode,15,25); ImageIO.write(image,"PNG",response.getOutputStream()); } private String getCheckCode() { String base = "0123456789ABCDEFGabcdefg"; int size = base.length(); Random r = new Random(); StringBuffer sb = new StringBuffer(); for(int i=1;i<=4;i++){ int index = r.nextInt(size); char c = base.charAt(index); sb.append(c); } return sb.toString(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request,response); } }
, <a href="sign-up.html">注册</a> 点击这里</small> </div> <!-- /Links --> </form> </div> </div> </div> </div> </div> <!-- /Page Content --> </div> </div> <!-- Jquery Library--> <script src="js/jquery-3.2.1.min.js"></script> <!-- Popper Library--> <script src="js/popper.min.js"></script> <!-- Bootstrap Library--> <script src="js/bootstrap.min.js"></script> <!-- Custom Script--> <script src="js/custom.js"></script> <script> function refreshCode() { let checkCode=document.getElementById("checkCode"); checkCode.src="${pageContext.request.contextPath}/checkCode?time"+new Date().getTime(); } </script> </body> </html>