1.mvc的好處
? ? ? 1).各司其職,互不干涉
? ? ? 2).有利于分工合作
? ? ? 3).有利于提高程序的可擴展性與可維護性
2.完成登錄失敗重定向登錄頁面,并在登錄頁面顯示提示語 用戶名或密碼錯誤
? ? ? ? <%
? ? ? ? ? ? ? ? //獲取session的標(biāo)記
? ? ? ? ? ? ? ? Object obj=session.getAttribute("flag");
? ? ? ? ? ? ? ? if(obj!=null){
? ? ? ? %>
? ? ? ? ? ? <div style="text-align:center;color:red">用戶名或密碼錯誤</div>
? ? ? ? <%
? ? ? ? ? ? ? }
? ? ? ? ? ? ? session.invalidate();
? ? ? ? ? %>
3.完成登錄成功,重定向主頁面代碼實現(xiàn)茵烈。并在主頁顯示當(dāng)前登錄的用戶。
<div class="head-l" style="position:relative;left:750px">
? <span style="font-size:15px; color:white;">
? 當(dāng)前用戶:<%=((User)session.getAttribute("user")).getUname() %></span>
? <a id="out" class="button button-little bg-red" href="out">
? <span class="icon-power-off"></span> 退出登錄</a> </div>
4.用戶退出以后要銷毀登錄的用戶信息砌些,并將頁面返回登錄頁面
//獲取session
HttpSession hs = req.getSession();
//銷毀session
hs.invalidate();
? ? ? //響應(yīng)處理結(jié)果
//重定向
resp.sendRedirect("登錄頁面路徑");
5.給退出登錄按鈕添加退出提示語呜投。
<script type="text/javascript">
? ? $(function(){
? ? $("#out").click(function(){
? ? return window.confirm("確定要退出嗎?")//return
? ? })
? ? })
? </script>
6.在登錄頁面中添加注冊按鈕存璃。
<div style="font-size:15px;position:relative;left:330px;top:-20px"><a href="reg.jsp">注冊 </div>
7.為注冊頁面仑荐,添加用戶性別選項。
<!-- 聲明js代碼域 -->
<script type="text/javascript">
$(function(){
//給男的添加單擊事件
$("#man").click(function(){
//給男span添加樣式
$("#manspan").addClass("icon-check");
//將女span樣式去掉
$("#womanspan").removeClass("icon-check");
})
//給nv的添加單擊事件
$("#woman").click(function(){
//給女span添加樣式
$("#womanspan").addClass("icon-check");
//將男span樣式去掉
$("#manspan").removeClass("icon-check");
})
})
</script>
<!-- 性別 -->
<div class="form-group">
<div class="label">
<label>性別:</label>
</div>
<div class="field">
<div class="button-group radio">
<label class="button active"> <span class="icon-check"
id="manspan"></span> <input name="sex" value="1" id="man"
type="radio" checked="checked">男
</label> <label class="button active"><span class=""
id="womanspan"></span> <input name="isex" value="0" id="woman"
type="radio">女 </label>
</div>
</div>
</div>
8.在regServlet中完成注冊成功和注冊失敗的代碼邏輯纵东,然后運行項目粘招,點擊注冊觀察運行效果。
//設(shè)置請求編碼格式
req.setCharacterEncoding("utf-8");
//設(shè)置響應(yīng)編碼格式
resp.setContentType("text/html;charset=utf-8");
//獲取請求信息
String uname=req.getParameter("uanme");
String pwd=req.getParameter("pwd");
String sex=req.getParameter("sex");
int age=Integer.parseInt(req.getParameter("age"));
String birthday=req.getParameter("birthday");
//處理請求信息
//創(chuàng)建業(yè)務(wù)層對象
UserService? us=new UserServiceimpl();
//處理注冊
int i=us.regUserInfoService(uname,pwd,sex,age,birthday);
//獲取Session對象
HttpSession hs=req.getSession();
//響應(yīng)處理結(jié)果
//重定向
if(i>0){
//給注冊成功添加標(biāo)記到session中
hs.setAttribute("flag", "regSuccess");
resp.sendRedirect("/14/login.jsp");
}else{
//重定向到注冊頁面
resp.sendRedirect("/14/reg.jsp");
}
}
9.如何在service方法中實現(xiàn)根據(jù)請求動態(tài)的調(diào)用其功能處理的方法
服務(wù)器在接受到服務(wù)器發(fā)送的請求后,會調(diào)用對應(yīng)的Servlet進行處理,然后調(diào)用Servlet中的的Service方法進行處理,我們將不同功能的處理的處理封裝成對應(yīng)的方法,在serrvice方法中實現(xiàn)根據(jù)請求動態(tài)的調(diào)用其功能的處理方法.
10.真實開發(fā)過程中偎球,不會每個功能都會創(chuàng)建一個Servlet洒扎,但也不會只使用一個Servlet
我們的Servlet不只是一個,一般是一個獨立的功能模板一個Servlet衰絮。需要將這么Servlet中的service方法中都要將反射代碼聲明一遍袍冷。