版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、java ee j2ee視頻教程 - jsp作者: 韓順平 (一)jsp第3講1.用戶登錄系統(tǒng)框架改良1.0 model1(純jsp)開發(fā)模式的反思1.1 model1(結(jié)合java class)開發(fā)模式2. 用戶登錄系統(tǒng)框架再改良2.1 mvc開發(fā)模式(二)用戶登錄系統(tǒng)框架改良(三)用戶登錄系統(tǒng)框架改良Login.jspConDB.javaUserbeanCl.java(操作表的)Wel.jspUserbean.java(對應(yīng)一個(gè)表)LoginCl.jspdatabaseView層Model層一張表對應(yīng)兩個(gè)類,其中一個(gè)表類一個(gè)就是表處理類,(四)用戶登錄系統(tǒng)框架改良原因在1.2(五)用戶登錄
2、系統(tǒng)框架改良六用戶登錄系統(tǒng)框架改良/ 調(diào)用UserBeanCl的fenye方法,完成分頁顯示就是指創(chuàng)立一個(gè)UserBeanCl的實(shí)例,然后調(diào)用他的某個(gè)方法(七)用戶登錄系統(tǒng)框架再改良Servlet的跳轉(zhuǎn)時(shí)最快的!(八)用戶登錄系統(tǒng)框架再改良Mvc是一個(gè)模式,強(qiáng)制地使輸入處理與輸出分開.分為模型視圖和控制器!Mvc m=model 只要是javaclassv =view 主要是jsp c=controller 只要是servlet來做的(九)用戶登錄系統(tǒng)框架再改良(十)用戶登錄系統(tǒng)框架再改良Mvc框架是很嚴(yán)格的是不允許jsp直接調(diào)用javaclass文件中間必須要經(jīng)過servlet做中間控制層!
3、(十一)用戶登錄系統(tǒng)框架再改良(十二)用戶登錄系統(tǒng)框架再改良(十三)用戶登錄系統(tǒng)框架再改良(十四)用戶登錄系統(tǒng)框架再改良附代碼:界面層:Login.JSP base href= My JSP Login.jsp starting page !- 用戶登錄 用戶名: 密碼: Wel.jsp base href= My JSP Wel.jsp starting page !- 恭喜!登陸成功! 返回重新登錄 用戶信息列表 用戶編號用戶名用戶密碼電子郵件等級 % for (int i =0;i a href=UserClServlet?pageNow=1&username=第一頁 a href=Us
4、erClServlet?pageNow=&username=上一頁 % /顯示超鏈接 for (int i=1;i a href=UserClServlet?pageNow=&username= a href=UserClServlet?pageNow=&username=下一頁 a href=UserClServlet?pageNow=&username=最后一頁 控制層:LoginCl.java/這是一個(gè)控制器,主要完成對用戶身份的驗(yàn)證/本身并不實(shí)際完成身份驗(yàn)證的業(yè)務(wù)邏輯,而是去調(diào)model的業(yè)務(wù)邏輯完成對數(shù)據(jù)處理.package com.hao.controller;import jav
5、a.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet. . Servlet;import javax.servlet. . ServletRequest;import javax.servlet. . ServletResponse;import com.hao.model.*;public class LoginCl extends Servlet /* * The doGet metho
6、d of the servlet. * * This method is called when a form has its tag value method equals to get. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred * throws IOException if an erro
7、r occurred */public void doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException /得到用戶名和密碼String username=request.getParameter(username);String password=request.getParameter(password);/使用模型UserBeanCl,完成對用戶身份的驗(yàn)證/創(chuàng)立UserBeanCl對象UserBeanCl ubc=new UserBeanCl();/調(diào)用方法i
8、f (ubc.checkUser(username, password)/登陸成功!/這種跳轉(zhuǎn)為轉(zhuǎn)向/response.sendRedirect(Wel.jsp);/在跳轉(zhuǎn)到Wel.jsp頁面前就要把要顯示的數(shù)據(jù)就要準(zhǔn)備好!ArrayList al =ubc.fenye(1);int pageCount =ubc.getPageCount();/將al pageCount放入request中.request.setAttribute(al, al);request.setAttribute(pageCount, pageCount);request.setAttribute(pageNow,
9、1);/因?yàn)閟endRedirect跳轉(zhuǎn)的效率不高,在公司里常常用轉(zhuǎn)發(fā)的方法./這種轉(zhuǎn)發(fā)效率高,并且request中的對象還可以在下個(gè)頁面中使用/在本案例中request對象指的是上面的兩句話result和pageCountrequest.getRequestDispatcher(Wel.jsp).forward(request, response);else/登錄失敗!/response.sendRedirect(Login.jsp);request.getRequestDispatcher(Login.jsp).forward(request, response);/* * The doP
10、ost method of the servlet. * * This method is called when a form has its tag value method equals to post. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred * throws IOException
11、if an error occurred */public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException this.doGet(request, response);UserClServlet.java/處理用戶的分頁顯示/也用于處理用戶的增刪改package com.hao.controller;import java.io.IOException;import com.hao.model.*;import java.io.PrintWrit
12、er;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet. . Servlet;import javax.servlet. . ServletRequest;import javax.servlet. . ServletResponse;public class UserClServlet extends Servlet /* * The doGet method of the servlet. * * This method is called when a form ha
13、s its tag value method equals to get. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred * throws IOException if an error occurred */public void doGet( ServletRequest request, Se
14、rvletResponse response)throws ServletException, IOException this.doPost(request, response);/* * The doPost method of the servlet. * * This method is called when a form has its tag value method equals to post. * * param request the request send by the client to the server * param response the respons
15、e send by the server to the client * throws ServletException if an error occurred * throws IOException if an error occurred */public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException try/得到pageNow int pageNow =Integer.parseInt(request.getParameter(pag
16、eNow).toString();UserBeanCl ubc =new UserBeanCl();/在跳轉(zhuǎn)到Wel.jsp頁面前就要把要顯示的數(shù)據(jù)就要準(zhǔn)備好!ArrayList al =ubc.fenye(pageNow);int pageCount =ubc.getPageCount();/將al pageCount放入request中./說明這里寫成setAttribute那么在下也就要用getAttribute來接受/如果是參數(shù)就要用getParameter來接受,不能搞混咯!request.setAttribute(pageCount, pageCount+);request.set
17、Attribute(al, al);request.setAttribute(pageNow, pageNow);/重新跳回Wel.jsprequest.getRequestDispatcher(Wel.jsp).forward(request, response);catch (Exception ex)ex.printStackTrace();finally/System.out.println(這是UserClServlet的測試finally);業(yè)務(wù)邏輯層:ConDB.java/當(dāng)一段代碼被使用三次以上就應(yīng)該把這樣的代碼封裝到一個(gè)函數(shù)里面package com.hao.model;im
18、port java.sql.*;public class ConDB private Connection ct=null;public Connection getct()Connection con=null;try /1加載驅(qū)動 String driver=com.microsoft.sqlserver.jdbc.SQLServerDriver;String url=jdbc:sqlserver:/127.0.0.1:1433;databaseName=spdb;Class.forName(driver);con =DriverManager.getConnection (url,sa,
19、hao123);catch (Exception ex)ex.printStackTrace();finallyreturn con ;UserBean.java/這是一個(gè)javaBean對應(yīng)Users表數(shù)據(jù)./表中有幾個(gè)字段,那么這個(gè)java中就有多少個(gè)私有屬性/他的一個(gè)實(shí)例代表一個(gè)USers表中的一條記錄.package com.hao.model;public class UserBean private int userId;private String userName;public String getUserName() return userName;public void s
20、etUserName(String userName) this.userName = userName;public String getPasswd() return passwd;public void setPasswd(String passwd) this.passwd = passwd;public String getEmail() return email;public void setEmail(String email) this.email = email;public int getGrade() return grade;public void setGrade(i
21、nt grade) this.grade = grade;private String passwd;private String email;private int grade;public void setUserId(int userId) this.userId = userId;public int getUserId() return userId;UserBeanCl.java/這是一個(gè)處理類,有些人喜歡把它叫做BO business object /主要是封裝users表的各種操作增加刪除修改查詢.package com.hao.model;import java.sql.*;
22、import java.util.*;public class UserBeanCl private Connection ct =null;private Statement sm =null;private ResultSet rs =null;private int pageSize=3;private int rowCount=0;/從數(shù)據(jù)庫中得到private int pageCount =0;/一共有多少頁 通過pageSize和rowCount獲得./得到總頁數(shù)public int getPageCount()try/得到連接ct =new ConDB().getct();/3創(chuàng)
23、立Statement sm=ct.createStatement();/4查詢 rs=sm.executeQuery(select count(*) from users );if(rs.next()rowCount =rs.getInt(1);/計(jì)算pageCountpageCount=(rowCount+pageSize-1)/pageSize;catch (Exception ex)ex.printStackTrace();finallythis.closed();return pageCount ;/分頁函數(shù)public ArrayList fenye ( int pageNow)ArrayList al =new ArrayList();try/得到連接ct =new ConDB().getct();/3創(chuàng)立Statement sm=ct.createStatement();/查詢出需要顯示的記錄. rs=sm.executeQuery(select top +pageSize + * from users where userid not in ( select top +pageSize*(pageNow-1)+ userid f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年09月山東2024屆中國民生銀行濟(jì)南分行秋季校園招考筆試歷年參考題庫附帶答案詳解
- 江蘇省揚(yáng)州市教院2025屆中考一模生物試題含解析
- 2024年09月四川2024樂山市商業(yè)銀行秋季校園招考筆試歷年參考題庫附帶答案詳解
- 2024年09月云南2024年曲靖市商業(yè)銀行秋季校園招考筆試歷年參考題庫附帶答案詳解
- 2024年09月2024秋季中國工商銀行國際結(jié)算單證中心校園招聘60人筆試歷年參考題庫附帶答案詳解
- 2024年09月2024年中國農(nóng)業(yè)銀行境內(nèi)分行校園招考延長筆試歷年參考題庫附帶答案詳解
- 2024年09月2024九江銀行江西分行秋季校園招考初面筆試歷年參考題庫附帶答案詳解
- 2024年08月金華銀行嘉興分行招考筆試歷年參考題庫附帶答案詳解
- 2024年08月浙江稠州商業(yè)銀行社會招聘(23人)筆試歷年參考題庫附帶答案詳解
- 2024年08月招商銀行西安分行校園招考筆試歷年參考題庫附帶答案詳解
- 中華全國律師協(xié)會律師辦理物業(yè)管理法律業(yè)務(wù)操作指引
- 配水管網(wǎng)工程主要項(xiàng)目施工方法及技術(shù)措施
- 地基驗(yàn)槽記錄
- 軟件無線電原理與應(yīng)用第3版 課件 【ch01】概述
- 手術(shù)區(qū)皮膚消毒及鋪單法課件
- 血液科侵襲性真菌的治療
- 重點(diǎn)??平ㄔO(shè)實(shí)施方案(四篇)
- 工程合同違約協(xié)議書范本
- 排列 教學(xué)PPT課件 高中數(shù)學(xué)
- 公益性崗位開發(fā)申請審批表
- 陽離子絡(luò)合主體
評論
0/150
提交評論