一、首先先了解一下 什么是mvc?
MVC是Model-View-Controller的简称,即模型-视图-控制器。它是一种设计模式,它吧应用程序分成三个核心模块,模型,视图,控制器。他们各自处理自己的任务。
模型:是应用程序的主体部分,模型指的是业务模型。 一个模型可以为多个视图提供数据。
视图:是用户看到的并与之交互的界面。 可以向用户显示相关的数据,接受用户的输入,但是它不进行任何实际的业务处理。
控制器:接受用户的输入并调用模型和视图,完成用户的需求。
流程: 客户端发送请求到 服务器, 服务器 将请求发送给servlet ,servlet接收请求,根据请求的业务逻辑调用model层,然后在想servlet返回一个结果,根据结果 转向(转发,重定向)一个页面。
二、具体查询
问题:点击页面的一个超链接,显示数据库里学生的信息
1.根目录结构
2.
创建一个学生类Student。
内容属性: 获取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.创建一个StudentDao类 用于获取数据库信息 返回学生链表
内容:其中有我自己找的一个工具类
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.创建一个servlet 类名为ListAllStudentServlet 配置属性。 只改写doGet() 方法。 因为另一个页面需要获取学生链表 可以 用转发的方式进行编写。
内容:
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); // 转发 } |
4.创建一个test.jsp 用于发送请求。
内容:<a href="listAllStudent">List all students</a>
5.创建显示页面,student.jsp
内容:
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>學生信息表</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.显示
三、学习过程中遇到的问题
1.在连接sqlserver 数据库时 出现了 这个问题。
问题:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“Server key”。
解决方法:
这个问题是JDK与数据库之间的安全秘钥的问题。
方案就是:
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文件复制到: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学习过程之MVC查询模式详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/ztg-learn/archive/2016/09/16/5876824.html