zoukankan      html  css  js  c++  java
  • MVC设计模式一

    一:基础知识

    1.mvc

      model

      view

      control

    2.模型

      是应用程序的主体部分,模型表示业务数据与业务逻辑。

      一个模型可以为多个视图提供数据

      提高了代码的可重用性

    3.视图

      用户看到的可以交互的界面。

      向用户显示相关的数据

      可以接受用户的输入

      不进行任何实际的业务处理

    4.控制器

      接受用户的输入并调用模型与视图去完成用户的需求。

      控制器接受请求决定调用哪个模型组件去处理请求,然后决定调用哪个视图显示模型处理返回的数据。

      

    二:程序示例

    1.目录结构

      

    2.test.jsp

     1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
     2     pageEncoding="ISO-8859-1"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10     <a href="listAllStrudents">List All Students</a>
    11 </body>
    12 </html>

    3.ListAllStrudents.java

     1 package mvc;
     2 
     3 import java.io.IOException;
     4 import java.util.Arrays;
     5 import java.util.List;
     6 
     7 import javax.servlet.ServletException;
     8 import javax.servlet.annotation.WebServlet;
     9 import javax.servlet.http.HttpServlet;
    10 import javax.servlet.http.HttpServletRequest;
    11 import javax.servlet.http.HttpServletResponse;
    12 
    13 /**
    14  * Servlet implementation class ListAllStrudents
    15  */
    16 @WebServlet("/listAllStrudents")
    17 public class ListAllStrudents extends HttpServlet {
    18     private static final long serialVersionUID = 1L;
    19        
    20     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    21         StudentDao studentDao=new StudentDao();
    22         List<Student> students=studentDao.getAll();
    23         request.setAttribute("students", students);
    24         request.getRequestDispatcher("/students.jsp").forward(request, response);
    25     }
    26 
    27 }

    4.students.jsp

     1 <%@page import="mvc.Student"%>
     2 <%@page import="java.util.List"%>
     3 <%@ page language="java" contentType="text/html; charset=utf-8"
     4     pageEncoding="utf-8"%>
     5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     6 <html>
     7 <head>
     8 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     9 <title>Insert title here</title>
    10 </head>
    11 <body>
    12     <%
    13         List<Student> stus=(List<Student>)request.getAttribute("students");
    14     %>
    15     <table border="1" cellpadding="10" cellspacing="0">
    16         <tr>
    17             <th>Flow_ID</th>
    18             <th>Type</th>
    19             <th>IdCard</th>
    20             <th>ExcamCard</th>
    21             <th>StudentName</th>
    22             <th>Location</th>
    23             <th>Grade</th>    
    24             <th>删除</th>            
    25         </tr>
    26         <%
    27             for(Student student :stus){
    28         %>
    29             <tr>
    30                 <td><%=student.getFlowId() %></td>
    31                 <td><%=student.getType() %></td>
    32                 <td><%=student.getIdCard()%></td>
    33                 <td><%=student.getExamCard() %></td>
    34                 <td><%=student.getStudentName() %></td>
    35                 <td><%=student.getLocation() %></td>
    36                 <td><%=student.getGraded() %></td>
    37                 <td><a href="deleteStudentServlet?flowId=<%=student.getFlowId()%>">Delete</a></td>
    38             </tr>
    39         <%
    40             }
    41         %>
    42     </table>
    43         
    44 </body>
    45 </html>

    5.DeleteStudentServlet

     1 package mvc;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.ServletException;
     6 import javax.servlet.annotation.WebServlet;
     7 import javax.servlet.http.HttpServlet;
     8 import javax.servlet.http.HttpServletRequest;
     9 import javax.servlet.http.HttpServletResponse;
    10 
    11 @WebServlet("/deleteStudentServlet")
    12 public class DeleteStudentServlet extends HttpServlet {
    13     private static final long serialVersionUID = 1L;
    14     
    15     @Override
    16     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    17         String flowId=request.getParameter("flowId");
    18         StudentDao studentDao=new StudentDao();
    19         studentDao.deleteByFlowId(Integer.parseInt(flowId));
    20         request.getRequestDispatcher("/success.jsp").forward(request, response);
    21     }
    22 }

    6.Student.java

     1 package mvc;
     2 
     3 public class Student {
     4     private Integer flowId;
     5     private int type;
     6     private String idCard;
     7     private String examCard;
     8     private String studentName;
     9     private String location;
    10     private int graded;
    11     /**
    12      * constructor
    13      */
    14     public Student() {
    15         
    16     }
    17     public Student(Integer flowId, int type, String idCard, String examCard, String studentName, String location,
    18             int graded) {
    19         super();
    20         this.flowId = flowId;
    21         this.type = type;
    22         this.idCard = idCard;
    23         this.examCard = examCard;
    24         this.studentName = studentName;
    25         this.location = location;
    26         this.graded = graded;
    27     }
    28     /**
    29      * set and get function
    30      * @return
    31      */
    32     public Integer getFlowId() {
    33         return flowId;
    34     }
    35     public void setFlowId(Integer flowId) {
    36         this.flowId = flowId;
    37     }
    38     public int getType() {
    39         return type;
    40     }
    41     public void setType(int type) {
    42         this.type = type;
    43     }
    44     public String getIdCard() {
    45         return idCard;
    46     }
    47     public void setIdCard(String idCard) {
    48         this.idCard = idCard;
    49     }
    50     public String getExamCard() {
    51         return examCard;
    52     }
    53     public void setExamCard(String examCard) {
    54         this.examCard = examCard;
    55     }
    56     public String getStudentName() {
    57         return studentName;
    58     }
    59     public void setStudentName(String studentName) {
    60         this.studentName = studentName;
    61     }
    62     public String getLocation() {
    63         return location;
    64     }
    65     public void setLocation(String location) {
    66         this.location = location;
    67     }
    68     public int getGraded() {
    69         return graded;
    70     }
    71     public void setGraded(int graded) {
    72         this.graded = graded;
    73     }
    74     
    75     
    76 }

    7.StudentDao.java

     1 package mvc;
     2 import java.sql.Connection;
     3 import java.sql.DriverManager;
     4 import java.sql.PreparedStatement;
     5 import java.sql.ResultSet;
     6 import java.sql.SQLException;
     7 import java.util.ArrayList;
     8 import java.util.List;
     9 public class StudentDao {
    10     public void deleteByFlowId(Integer flowId) {
    11         Connection connection=null;
    12         PreparedStatement preparedStatement=null;
    13         List<Student> students=new ArrayList<>();
    14         try {
    15             String driverClass="com.mysql.jdbc.Driver";
    16             String url="jdbc:mysql://localhost:3306/test";
    17             String user="root";
    18             String password="123456";
    19             Class.forName(driverClass);                    
    20             connection=DriverManager.getConnection(url, user, password);
    21             String sql="DELETE FROM tb2 WHERE flow_id=?";
    22             preparedStatement=connection.prepareStatement(sql);
    23             preparedStatement.setInt(1, flowId);
    24             preparedStatement.executeUpdate();
    25         } catch (Exception e) {
    26             e.printStackTrace();
    27         }finally {
    28             try {
    29                 if(connection!=null) {
    30                     connection.close();
    31                 }
    32             } catch (SQLException e) {
    33                 e.printStackTrace();
    34             }
    35             try {
    36                 if(preparedStatement!=null) {
    37                     preparedStatement.close();
    38                 }
    39             } catch (SQLException e) {
    40                 e.printStackTrace();
    41             }
    42         }
    43         
    44     }
    45     public List<Student> getAll() {
    46         Connection connection=null;
    47         PreparedStatement preparedStatement=null;
    48         ResultSet resultSet=null;
    49         List<Student> students=new ArrayList<>();
    50         try {
    51             String driverClass="com.mysql.jdbc.Driver";
    52             String url="jdbc:mysql://localhost:3306/test";
    53             String user="root";
    54             String password="123456";
    55             Class.forName(driverClass);                    
    56             connection=DriverManager.getConnection(url, user, password);
    57             String sql="SELECT flow_id,type,id_card,exam_card,student_name,location,grade from tb2";
    58             preparedStatement=connection.prepareStatement(sql);
    59             resultSet=preparedStatement.executeQuery();
    60             while(resultSet.next()) {
    61                 int flowId=resultSet.getInt(1);
    62                 int type=resultSet.getInt(2);
    63                 String idCard=resultSet.getString(3);
    64                 String examCard=resultSet.getString(4);
    65                 String studentName=resultSet.getString(5);
    66                 String location=resultSet.getString(6);
    67                 int graded=resultSet.getInt(7);
    68                 Student student=new Student(flowId, type, idCard, examCard, studentName, location, graded);
    69                 students.add(student);                
    70             }
    71         } catch (Exception e) {
    72             e.printStackTrace();
    73         }finally {
    74             try {
    75                 if(connection!=null) {
    76                     connection.close();
    77                 }
    78             } catch (SQLException e) {
    79                 e.printStackTrace();
    80             }
    81             try {
    82                 if(preparedStatement!=null) {
    83                     preparedStatement.close();
    84                 }
    85             } catch (SQLException e) {
    86                 e.printStackTrace();
    87             }
    88             try {
    89                 if(resultSet!=null) {
    90                     resultSet.close();
    91                 }
    92             } catch (SQLException e) {
    93                 e.printStackTrace();
    94             }
    95         }
    96         
    97         return students;
    98     }
    99 }

    8.success.jsp

     1 <%@ page language="java" contentType="text/html; charset=utf-8"
     2     pageEncoding="utf-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10     删除操作成功!<br><br>
    11     <a href="listAllStrudents">List All Students</a>
    12 </body>
    13 </html>

    9.运行效果

      

  • 相关阅读:
    vue-route+webpack部署单页路由项目,访问刷新出现404问题
    linux下安装大于2T硬盘,并分区替换现有mysql数据目录挂载点实现扩容
    linux下将mbr分区转换为gpt分区
    [go]接口型函数分析
    Type-C协议简介(CC检测原理)
    RocketMQ 重试机制
    RocketMQ与Kafka对比-评价版
    分布式开放消息系统(RocketMQ)的原理与实践
    mysql8.0的RPM方式安装
    nacos集群配置笔记
  • 原文地址:https://www.cnblogs.com/juncaoit/p/7434840.html
Copyright © 2011-2022 走看看