<!-- 模態框主體 --> <div class="modal-body"> <form method="post" action="${cx}/login"> <label style="display: block;" class="fa fa-user">用戶名: <input type="text" name="username" placeholder="username"></label> <label class="fa fa-key">密碼:</label> <input type="password" name="password" placeholder="password"> <br><br> <a class="fa fa-paste" href="#" style="text-align: left">忘記密碼?</a> <label>聽說還是不會員? <a class="btn btn-danger" type="button" value="register" href="#"data-target="#myModal2">點擊註冊</a></label> <br><br> <button class="btn btn-primary col-sm-12">登陸</button> </form> </div>
index的控制器類 @Controller public class IndexController { //設置系統主頁 @RequestMapping(value = {"/", "/dkdshudu_main", "dkdshudu","shudu_main"}) public String index() { return "shudu_main"; } }
login控制器類 @Controller public class LoginController { @Autowired CUserService cuserService; //註銷 @RequestMapping(value = {"/logout"}, method = RequestMethod.GET) public String logout(HttpSession session) { session.invalidate(); return "redirect:shudu_main"; } //身份驗證 @RequestMapping(value = "/login", method = RequestMethod.POST) public String login(@RequestParam("username") String username, @RequestParam("password") String password, HttpServletRequest request, HttpSession session ) { CUSER cuser = cuserService.authenticate(username, password); if (cuser==null){ //如果失敗,就返回原來都界面 return "shudu_main"; }else { request.changeSessionId(); session.setAttribute("username", username); //後期可以添加上個人主頁url等信息 return "redirect:shudu_main"; } } }
CUserdao.java **接口類,封裝對User對象CRUD操作** public interface CUserDao { //校驗是否存在該用戶,不存在則返回null,存在則返回用戶 //使用@Param來傳遞參數,傳入參數爲username和password public CUSER findByNameAndPwd(@Param("username") String username, @Param("password") String password); }
CUserservice.java **Dao類,封裝對user對象CRUD操作** @Service public class CUserService { //校驗是否存在該用戶,不存在則返回null,存在則返回用戶 //使用@Param來傳遞參數,傳入參數爲username和password public CUSER authenticate(String username, String password) { return cuserDao.findByNameAndPwd(username, password); } }
CUserDao.xml **<!-- namespace表示命名空間 -->** <mapper namespace="jee.support.dao.CUserDao"> <!--根據用戶名和密碼查找用戶--> <select id="findByNameAndPwd" resultType="jee.support.entity.CUSER"> select * from user as u where u.Username=#{username} and u.Password=#{password} </select> </mapper>
7.數據庫 (數據庫名稱,表名不要用中文)
驗證成功後 session設置屬性,替換原來掉註冊登錄選項
導航欄重要html
替換需要使用el表達式
<!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="navbar-menu"> <ul class="nav navbar-nav navbar-right" data-in="fadeInDown" data-out="fadeOutUp"> <li><a href="#">主頁</a></li> .....( 省略) <li><a href=" ">聯繫我們</a></li> <c:choose> <c:when test="${username==null||username==' '}"> <li><a data-toggle="modal" data-target="#myModal" href="" id="UserHomepage">登陸</a></li> <li><a data-toggle="modal" data-target="#myModal2" href="" id="hiddenPage">註冊</a></li> </c:when> <c:otherwise> <li class="dropdown"><a href="" id="user_infom">歡迎 ${username}</a> <ul class="dropdown-menu cart-list"> <li class="total"> <a href="logout" class="btn btn-default btn-cart">退出</a> </li> </ul> </li> </c:otherwise> </c:choose> </ul> </div>
再次刷新可以觀察url ,第一次返回界面login控制器類是重定向,第二次是index控制器類的轉發