经过第三部分的描述,我们发现页面生成了一个默认的登录界面,下面先看看这个界面的源代码
使用firefox或者其它第三方浏览器都可以很容易看到页面代码,如下
<html><head><title>Login Page</title></head><body onload='document.f.j_username.focus();'> <h3>Login with Username and Password</h3><form name='f' action='/CptSecurity/j_spring_security_check' method='POST'> <table> <tr><td>User:</td><td><input type='text' name='j_username' value=''></td></tr> <tr><td>Password:</td><td><input type='password' name='j_password'/></td></tr> <tr><td colspan='2'><input name="submit" type="submit" value="Login"/></td></tr> </table> </form></body></html>可以看出来,这个登录界面像后台发送了一个j_spring_security_check的post请求
用户名和密码的name分别'j_username'和'j_password',通过表单提交请求
既然知道了页面提交的代码,那么我们自己改写登录界面就很简单了,代码如下
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>登录页面</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link href="bootstrap-3.3.5-dist/css/bootstrap.css" rel="stylesheet"> <link href="IdeCss/login.css" rel="stylesheet"> <script src="jquery/jquery.js"></script> <script src="bootstrap-3.3.5-dist/js/bootstrap.js"></script> </head> <!-- 引用页面header.html和nav.html --> <body> <body> <div class="box"> <div class="login-box"> <div class="login-title text-center"> <h1><small>登录</small></h1> </div> <div class="login-content "> <div class="form"> <!--设置表单的提交操作--> <form action="${pageContext.request.contextPath}/CptSecurity/j_spring_security_check" method="post"> <div class="form-group"> <div class="col-xs-12 "> <div class="input-group"> <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span> <input type="text" id="username" name='j_username' class="form-control" placeholder="用户名"> </div> </div> </div> <div class="form-group"> <div class="col-xs-12 "> <div class="input-group"> <span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span> <input type="password" id="password" name='j_password' class="form-control" placeholder="密码"> </div> </div> </div> <div class="form-group form-actions"> <div class="col-xs-4 col-xs-offset-4 "> <button type="submit" class="btn btn-sm btn-info"><span class="glyphicon glyphicon-off"></span> 登录</button> </div> </div> <div class="form-group"> <!-- <div class="col-xs-4 link"> <p class="text-center remove-margin"><small>忘记密码?</small> <a href="javascript:void(0)" ><small>找回</small></a> </p> </div> <div class="col-xs-4 link"> <p class="text-center remove-margin"><small>还没注册?</small> <a href="javascript:void(0)" ><small>注册</small></a> </p> </div> --> <div class="col-xs-12"> <p style="text-align:center;color:red">${sessionScope.SPRING_SECURITY_LAST_EXCEPTION.message}</p> </div> </div> </form> </div> </div> </div> </div> </body> </body> </html>将表单的提交地址,用户名和密码设置成和上面一样的,即可
最后,还需要修改applicationContext.xml里面的内容,让security的登录界面编程我们修改后的值,代码如下所示
<security:http auto-config="true"> <!-- 指定登录页面 --> <security:form-login login-page="/IdeJsp/login.jsp"/> </security:http>重启tomcat,输入用户名和密码,即可,关于用户名和密码的设置可以参考上一节的配置文件设置,下一节将会介绍如何对数据库进行存储用户名和密码,最后登录页面如下所示