亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP+Servlet培訓班作業管理系統[9] -登錄功能的實現

2019-11-06 07:00:27
字體:
來源:轉載
供稿:網友

本篇在上篇數據庫操作層實現的基礎上,實現培訓班作業管理系統的登錄功能,具體過程如下:

1,登錄頁面login.jsp,注意修改為了使用用戶編號和密碼登錄,因為用戶編號是由MySQL自動分配的自增長的字段肯定是唯一的,這樣就避免了判斷用戶名重復的邏輯,使代碼更加簡單便于維護。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>login.jsp</title> </head> <body> <form id="mainForm" method="post" action="/HomeworkSystem/LoginServlet"> 請輸入用戶編號:<input type="text" name="userId" /> <br/> 請輸入密碼:<input type="passWord" name="userPassword"/> <br/> <input type="submit" value="登錄"/> </form> </body></html>

2,點擊登錄后根據web.xml配置跳轉到LoginServlet如下:

需要注意的是,貓哥的建議是,Servlet作為控制器,相當于軍隊的首長、公司的大老板,僅僅負責戰略方面的事情,具體的小事可以一層層分解讓下屬去辦。但是這并不是絕對的,有的公司本來就很小(項目規模?。?,你還分4、5個層級,那不是鋪張浪費么。凡是無絕對,什么樣體量的公司搭配什么樣的部門架構,都是有一個規律的,Servlet管好聽取意見、下令處理、指示結果三件事——從網頁獲取信息,處理數據,將結果返回給網頁——就夠了。

package servlet;import java.io.*;import util.*;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.http.*;import command.LoginCommand;import entity.User;import exception.MyException;public class LoginServlet extends HttpServlet {//用于處理登錄請求的LoginServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response);//直接調用doPost方法處理get請求 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//處理post請求 //設置輸入輸出格式、編碼 response.setContentType("text/html"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //獲取信息 String userId=request.getParameter("userId"); String userPassword=request.getParameter("userPassword"); try { //下令處理 LoginCommand lc=new LoginCommand(); User user=null; user=lc.checkLogin(userId, userPassword); if(user==null) throw new MyException(new Date(),"用戶名或者密碼錯誤","用戶名或者密碼錯誤"); String[][] loginRoleMenu=Constant.roleMenu.get(user.getUserRole().getRoleName());//根據用戶角色名找到對應菜單信息 //返回處理結果(正常信息) request.getsession().setAttribute("loginRoleMenu", loginRoleMenu);//記錄登錄用戶的菜單信息 request.getSession().setAttribute("loginUser", user);//記錄登錄用戶信息 request.getRequestDispatcher("/index.jsp").forward(request,response);//跳轉到index.jsp } catch (MyException e) { //返回處理結果(異常信息) request.setAttribute("errorInfo", e.getInfo());//設置錯誤信息 request.getRequestDispatcher("/error.jsp").forward(request,response);//跳轉到error.jsp } }}

3,具體登錄相關事項處理交給LoginCommand如下:

package command;import java.util.Date;import Operation.UserOperation;import entity.EntityFactory;import entity.User;import exception.MyException;public class LoginCommand {//從此處向數據庫類下操作指令 public User checkLogin(String userId,String userPassword) throws MyException{ if(userId.trim().equals("")||userPassword.trim().equals("")){ //拋出輸入信息異常 throw new MyException(new Date(),"用戶編號或者密碼為空","用戶名或者密碼為空"); } try{ //從數據庫中執行查詢,此處暫時使用測試工廠類創建一個代替 User user=null; UserOperation oper=new UserOperation(); int id=Integer.parseInt(userId); user=(User)oper.selectById(id); if(user.getUserPassword().equals(userPassword))//用戶編號和密碼匹配 return user; else//不匹配 return null; }catch(Exception e){ throw new MyException(new Date(),e.getMessage(),"數據庫訪問異常"); } }}

數據庫層前面一篇已經分析了,本篇及以后不再詳述,如有需要,可參見JSP+Servlet培訓班作業管理系統[9] -數據庫操作層實現

4,登錄后跳轉到index.jsp或error.jsp頁面,error.jsp僅僅負責輸出需要提示用戶的錯誤信息:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>error.jsp</title> </head> <body> 錯誤信息:${errorInfo}<br/> <a href="login.jsp">點此返回登錄頁</a> </body></html>

而index.jsp需要在左側菜單欄,加載登錄用戶角色對應的菜單,相關信息可以直接通過$操作符加載:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib CSS/index.css" type="text/css" rel="stylesheet"/> </head> <body> <div id="main"> <div id="top"> <div id="top_title"> 貓哥培訓班作業管理系統 </div><!-- 標題部分 --> <div id="top_info"> 歡迎您,尊敬的:${loginUser.userName} </div><!-- 登錄用戶信息部分 --> </div><!-- top部分是標題欄 --> <div id="left"> <ul> <c:forEach items="${loginRoleMenu}" var="menu"> <li> <a href="/HomeworkSystem/RouteServlet?type=${menu[1]}">${menu[0]}</a> </li> </c:forEach> </ul> </div><!-- left部分是菜單欄 --> <div id="right"> <c:if test="${empty type}"> 歡迎來到貓哥培訓班管理系統 </c:if> <c:if test="${not empty type}"> <jsp:include page="${type}" flush="true"></jsp:include> </c:if> </div><!-- right部分是具體內容顯示區 --> </div> </body></html>

因為css之前已經介紹過如何實現的,所以本篇為了清晰演示代碼將css單獨摘出到WebRoot下css文件夾下,代碼如下(以后只在第一次出現css時粘貼當頁css代碼):

/*css/index.css*/ /*星號表示選擇全部,設置外邊距0,內邊距0,字體大小12px,宋體*/ *{ margin:0px; padding:0px; font-size:12px; font-family:"宋體"; } /*整個body區域背景色為#F5F5F5,這個很簡單,自己下載個取色器,找個漂亮的網頁,取個顏色就行*/ body { background-color: #FCFCFC; } /*在top、left、right外面套用一層main是為了控制寬度,并且整體居中*/ #main{ width:1000px; margin:0px auto; } /*寬度占滿它爹的寬度,高度64px是瞎試的,不好看再調整,貓哥喜歡用16px、32px、64px、128px這些,你懂的。 背景色貓哥繼續取色器 line-height表示文字占用的高度,它也是64那就是文字占用高度跟top區域高度是一樣的嘛,所以文字就居中了*/ #top{ width:100%; height:64px; background-color:#000000; line-height:64px; } /*文字顏色取色器,標題部分啊文字用微軟雅黑,大氣!*/ #top_title{ line-height:64px; font-family:"微軟雅黑"; color:#FFFFFF; float:left; font-size:32px; margin-left:16px; } /*顏色依然是自己取色的*/ #top_info{ color:#71777D; float:right; line-height:64px; font-size:16px; margin-right:16px; } /*寬度占200px差不多了吧 float表示漂浮,left的話就是靠左了,所以這個left區域就得靠左飄飄了 內部的東西跟邊距有點距離好看點,暫時定為10px,上下左右都是哦*/ #left{ width:200px; height:536px;/*貓哥認為600-64=536*/ float:left; background-color:#EEEEEE; padding:10px; } /*調整id=left的div中的ul標簽下的li標簽的樣式為上邊距10px,左邊距15px*/ #left ul li{ margin:10px 0px 0px 15px; } /*注意逗號表示同時設置兩組對象的CSS屬性 a:link表示未訪問的鏈接,a:visited表示已訪問的鏈接,顏色憑愛好了*/ #left a:link, #left a:visited { color: #333333; text-decoration:none;/*不要下劃線*/ } /*a:hover表示鼠標懸停的鏈接,a:active表示被選擇的鏈接*/ #left a:hover, #left a:active { color: #0AA770; text-decoration:none; } /*同理right向右飄*/ #right{ width:760px;/*1000-200-10*4=760,此處一定要注意padding的內容會拓寬div整體寬度,有志于前端的可以專門去研究下*/ min-width:600px; height:536px;/*貓哥認為600-64=536*/ float:right; background-color:#FFFFFF; padding:10px; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色偷偷偷亚洲综合网另类| 中文字幕亚洲情99在线| 中文字幕不卡在线视频极品| 日韩免费在线观看视频| 亚洲欧美日韩中文视频| 国产成人aa精品一区在线播放| 国产一区二区三区精品久久久| 成人精品网站在线观看| 欧美中文在线观看| 色综合色综合久久综合频道88| 国产精品免费福利| 欧美在线视频一二三| 亚洲欧美激情视频| 久久久精品久久久久| 97福利一区二区| 91网站免费观看| 国产日韩精品在线观看| 欧美一区二区色| 国内精品美女av在线播放| 中文字幕av一区二区三区谷原希美| 韩剧1988免费观看全集| 日韩免费电影在线观看| 国产一区二区三区直播精品电影| 欧美午夜精品久久久久久久| 国产日韩欧美视频| 国内精品久久久久伊人av| 久久久国产一区二区| 91精品国产高清自在线看超| 欧美最猛性xxxxx(亚洲精品)| 亚洲第一中文字幕| 中文字幕日韩高清| 久久夜色精品亚洲噜噜国产mv| 精品久久久久久中文字幕一区奶水| 欧美电影免费观看高清| 欧美性视频精品| 欧美极品美女视频网站在线观看免费| 亚洲免费精彩视频| 成人在线中文字幕| 日韩成人性视频| 午夜剧场成人观在线视频免费观看| 亚洲精品之草原avav久久| 亚洲黄一区二区| 成人免费网视频| 日韩高清电影免费观看完整版| 色狠狠av一区二区三区香蕉蜜桃| 欧美国产亚洲视频| 国产盗摄xxxx视频xxx69| 国产福利视频一区二区| 日韩a**站在线观看| 亚洲成人免费在线视频| 91精品啪aⅴ在线观看国产| 亚洲片在线资源| 国产美女搞久久| 欧美国产激情18| 亚洲天堂日韩电影| 久久亚洲精品一区二区| 国产精品欧美激情在线播放| 亚洲欧美国内爽妇网| 国内精品伊人久久| 日韩av电影院| 久久久国产成人精品| 国产精品久久av| 欧美日韩中文字幕| 久久久久久久久国产精品| 91精品国产综合久久香蕉最新版| 国产精品日本精品| 亚洲成av人乱码色午夜| 亚洲欧美中文字幕在线一区| 欧美激情一区二区三区在线视频观看| 国产精品pans私拍| 97色在线观看免费视频| 日韩在线播放视频| 欧美性猛交xxxxx免费看| 国产精品成久久久久三级| 国产精品综合网站| 亚洲一区二区久久久久久| 午夜免费日韩视频| 8090理伦午夜在线电影| 在线观看日韩www视频免费| 亚洲大胆人体在线| 久久久久久久成人| 91沈先生作品| 亚洲国产成人精品女人久久久| 亚洲精品98久久久久久中文字幕| 日韩精品欧美激情| 视频一区视频二区国产精品| 国产精品美女免费视频| 在线视频免费一区二区| 国产精品第一第二| 亚洲无线码在线一区观看| 国产精品一区二区久久久久| 日韩精品在线观看一区二区| 亚州成人av在线| 亚洲精品国产精品国自产在线| 日韩一区二区久久久| 综合136福利视频在线| 26uuu日韩精品一区二区| 亚洲最大成人在线| 亚洲加勒比久久88色综合| 深夜福利日韩在线看| 久久乐国产精品| 欧美又大粗又爽又黄大片视频| 26uuu国产精品视频| 7777精品视频| 亚洲国产欧美日韩精品| 91亚洲精品久久久久久久久久久久| 伊人久久五月天| 色多多国产成人永久免费网站| 亚洲精品在线看| 亚洲欧美成人一区二区在线电影| 亚洲国产精品va在看黑人| 欧美成人免费观看| 国产欧美精品在线| 在线免费观看羞羞视频一区二区| 一区二区三区在线播放欧美| 91在线看www| 午夜精品理论片| 一区二区三区视频在线| 亚洲第一视频网站| 国产91精品黑色丝袜高跟鞋| 91在线免费观看网站| 俺去亚洲欧洲欧美日韩| 日韩精品在线观看一区二区| 中文字幕一区二区精品| 国产亚洲欧美一区| 日韩视频亚洲视频| 亚洲综合中文字幕68页| 在线视频免费一区二区| 亚洲成人久久网| 亚洲午夜久久久影院| 国产精品爽黄69天堂a| 日本欧美精品在线| 欧美裸身视频免费观看| 国产欧美日韩丝袜精品一区| 国产日韩综合一区二区性色av| 亚洲一区二区三区视频播放| 欧美裸体xxxxx| 国产suv精品一区二区| 久久久伊人日本| 97成人超碰免| 久久久久久高潮国产精品视| 性色av香蕉一区二区| 国产91精品高潮白浆喷水| 亚洲精品视频网上网址在线观看| 欧美日韩成人免费| 国产精品第1页| 91av免费观看91av精品在线| 亚洲欧美在线磁力| 日韩在线视频播放| 亚洲一品av免费观看| 亚洲三级黄色在线观看| 91av在线精品| 国产精品视频白浆免费视频| 国产精品一区久久| 欧美日韩国产综合视频在线观看中文| 欧美另类极品videosbestfree| 97视频免费在线看| 国产综合久久久久久| 欧美成人性色生活仑片| 亚洲欧洲成视频免费观看| 亚洲第一网中文字幕| 午夜精品一区二区三区视频免费看| 亚洲成色www8888| 欧美色道久久88综合亚洲精品|