日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

MVC原理及案例分析

發布時間:2024/7/19 c/c++ 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MVC原理及案例分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MVC原理及案例分析

關于MVC

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用于映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。MVC開始是存在于桌面程序中的,M是指業務模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。


以簡單的登錄功能為案例,簡單分析MVC的具體實現

項目執行的流程


項目文件中各個層次的作用

具體代碼實現:

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登錄</title> </head> <body><form action="LoginServlet" method="post">用戶名:<input type="text" name="uname"><br/>密碼:&nbsp;&nbsp;&nbsp;<input type="password" name="upwd"><br/><input type="submit" value="登錄"></form> </body> </html>

Welcome.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body>登陸成功!! </body> </html>

LoginServlet.java

package org.zxm.servlet;import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.zxm.Dao.LoginDao; import org.zxm.entity.Login;//控制器層,用于接收view層的請求,并分發給Model處理 public class LoginServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//post請求方式設置編碼request.setCharacterEncoding("UTF-8");//接受用戶名和密碼String name = request.getParameter("uname");String pwd = request.getParameter("upwd");//封裝Login login = new Login(name,pwd);//將用戶名和密碼傳遞到登錄功能里面(LoginDao)//調用模型層的登錄功能int result = LoginDao.login(login);if(result > 0) {//重定向response.sendRedirect("Welcome.jsp");}else {response.sendRedirect("login.jsp");}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

LoginDao.java

/*** */ package org.zxm.Dao;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;import org.zxm.entity.Login;/*** @author 11441*模型層,用于處理登錄(查詢數據庫)*/ public class LoginDao {//用于登錄的login方法//在方法參數中傳入login類型public static int login(Login login) {//登錄成功與否的標識//boolean flag = false;int flag = -1; //-1系統異常 0:用戶名或密碼有誤 1:登陸成功int result = -1;Connection connection = null;PreparedStatement prepareStatement = null;ResultSet rs = null;try {//加載驅動Class.forName("com.mysql.jdbc.Driver");//獲取連接connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1", "root", "root");//訪問數據庫String sql = "select count(*) from login where username = ? and pwd = ?";prepareStatement = connection.prepareStatement(sql);prepareStatement.setString(1, login.getUsername());prepareStatement.setString(2, login.getPwd());rs = prepareStatement.executeQuery();if(rs.next()) {result = rs.getInt(1);}if(result > 0) {//登陸成功return 1;}else {//登陸失敗,用戶名或密碼有誤return 0;}} catch (ClassNotFoundException e) {e.printStackTrace();//登陸失敗,系統異常return -1;} catch (SQLException e) {e.printStackTrace();//登陸失敗,系統異常return -1;} catch (Exception e) {e.printStackTrace();//登陸失敗,系統異常return -1;}finally {try {if(rs != null) rs.close();if(prepareStatement != null) prepareStatement.close();if(connection != null) connection.close();} catch (SQLException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}} } }

Login.java

/*** */ package org.zxm.entity;/*** @author 11441**/ public class Login {private int id;private String username;private String pwd;public Login(String username, String pwd) {this.username = username;this.pwd = pwd;}public Login() {}public Login(int id, String username, String pwd) {this.id = id;this.username = username;this.pwd = pwd;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;} }

總結:

MVC模式的優點:

  • 按照M:Model V:View C:Controller進行分層,有利于代碼的維護,提高了代碼重用率,更好的實現開發中的分工
  • 有益于后期代碼的維護,降低了成本
  • MVC模式的缺點:

  • 增加了復雜性
  • 運行效率降低
  • 總結

    以上是生活随笔為你收集整理的MVC原理及案例分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。