一、首先先了解一下 什么是mvc?
MVC是Model-View-Controller的簡稱,即模型-視圖-控制器。它是一種設(shè)計模式,它吧應(yīng)用程序分成三個核心模塊,模型,視圖,控制器。他們各自處理自己的任務(wù)。
模型:是應(yīng)用程序的主體部分,模型指的是業(yè)務(wù)模型。 一個模型可以為多個視圖提供數(shù)據(jù)。
視圖:是用戶看到的并與之交互的界面。 可以向用戶顯示相關(guān)的數(shù)據(jù),接受用戶的輸入,但是它不進行任何實際的業(yè)務(wù)處理。
控制器:接受用戶的輸入并調(diào)用模型和視圖,完成用戶的需求。
流程: 客戶端發(fā)送請求到 服務(wù)器, 服務(wù)器 將請求發(fā)送給servlet ,servlet接收請求,根據(jù)請求的業(yè)務(wù)邏輯調(diào)用model層,然后在想servlet返回一個結(jié)果,根據(jù)結(jié)果 轉(zhuǎn)向(轉(zhuǎn)發(fā),重定向)一個頁面。
二、具體查詢
問題:點擊頁面的一個超鏈接,顯示數(shù)據(jù)庫里學(xué)生的信息
1.根目錄結(jié)構(gòu)
2.
創(chuàng)建一個學(xué)生類Student。
內(nèi)容屬性: 獲取get,set方法。
1
2
3
4
5
6
|
private String studentId; private String name; private String idCard; private String sex; private int age; private int grade; |
2.創(chuàng)建一個StudentDao類 用于獲取數(shù)據(jù)庫信息 返回學(xué)生鏈表
內(nèi)容:其中有我自己找的一個工具類
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
public class StudentDao { public List<Student> getAll(){ List<Student> students= new ArrayList<Student>(); ResultSet rs= null ; try { String sql = "select studentId,name,idCard,sex,age,grade from student" ; rs=DBConnection.executeQuery(sql); while (rs.next()){ String studentId=rs.getString( 1 ); String name=rs.getString( 2 ); String idCard=rs.getString( 3 ); String sex=rs.getString( 4 ); int age=rs.getInt( 5 ); int grade=rs.getInt( 6 ); Student student= new Student(studentId, name, idCard, sex, age, grade); students.add(student); } } catch (Exception e) { e.printStackTrace(); } finally { if (rs!= null ){ try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return students; } } |
3.創(chuàng)建一個servlet 類名為ListAllStudentServlet 配置屬性。 只改寫doGet() 方法。 因為另一個頁面需要獲取學(xué)生鏈表 可以 用轉(zhuǎn)發(fā)的方式進行編寫。
內(nèi)容:
1
2
3
4
5
6
7
|
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StudentDao studentDao= new StudentDao(); List<Student> students=studentDao.getAll(); request.setAttribute( "students" , students); request.getRequestDispatcher( "/student.jsp" ).forward(request, response); // 轉(zhuǎn)發(fā) } |
4.創(chuàng)建一個test.jsp 用于發(fā)送請求。
內(nèi)容:<a href="listAllStudent">List all students</a>
5.創(chuàng)建顯示頁面,student.jsp
內(nèi)容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<body> <% List<Student> students=(List<Student>)request.getAttribute( "students" ); %> <h3>學(xué)生信息表</h3> <table> <tr> <th>studentId</th> <th>name</th> <th>idCard</th> <th>sex</th> <th>age</th> <th>grade</th> </tr> <% for (Student student:students){ %> <tr> <td><%=student.getStudentId() %></td> <td><%=student.getName() %></td> <td><%=student.getIdCard() %></td> <td><%=student.getSex() %></td> <td><%=student.getAge() %></td> <td><%=student.getGrade() %></td> </tr> <% } %> </table> </body> |
6.顯示
三、學(xué)習(xí)過程中遇到的問題
1.在連接sqlserver 數(shù)據(jù)庫時 出現(xiàn)了 這個問題。
問題:驅(qū)動程序無法通過使用安全套接字層(SSL)加密與 SQL Server 建立安全連接。錯誤:“Server key”。
解決方法:
這個問題是JDK與數(shù)據(jù)庫之間的安全秘鑰的問題。
方案就是:
1.下載兩個jar包
1.bcprov-ext-jdk15on-1.54.jar
2.bcprov-jdk15on-1.54.jar
下載地址在:http://download.csdn.net/detail/cw_hello1/9557049
2.將下載的兩個JAR文件復(fù)制到:JDK安裝目錄\jre\lib\ext下,例如我的就是D:\Program Files (x86)\java\JDK1.6\jre\lib\ext
3.打開java.security文件:在JDK安裝目錄\jre\lib\security下的java.security文件。
找到security.provider.1=sun.security.provider.Sun換成
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
以上所述是小編給大家介紹的JavaWeb學(xué)習(xí)過程之MVC查詢模式詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的,在此也非常感謝大家對服務(wù)器之家網(wǎng)站的支持!
原文鏈接:http://www.cnblogs.com/ztg-learn/archive/2016/09/16/5876824.html