程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> java web-----MVC設計模式,web-----mvc設計模式

java web-----MVC設計模式,web-----mvc設計模式

編輯:JAVA綜合教程

java web-----MVC設計模式,web-----mvc設計模式


一,MVC將代碼分為三個部分,分別為視圖(jsp),模型(javaBean),控制部分(servlet);

  視圖基本為 jsp 文件,主要內容為界面的html代碼,負責顯示界面;

  模型為 javaBean ,負責與數據庫交互;

  控制部分為 servlet 充當,負責處理業務邏輯與頁面切換。

二,MVC包括 Model1 和 Model2 兩個模型;

  1. Model1 模型程序流程如下圖:

  

  Model1 中界面顯示部分與界面跳轉,業務邏輯都由 jsp 負責,導致 jsp 中充滿大量java腳本代碼,

  代碼重復率高,可用性低,程序功能的微小的修改往往引起大量的修改,優點是容易掌控。

 

  2. Model2 模型程序流程如下圖:

  

  Model2 模型中分層更加明顯,jsp 負責頁面顯示,javaBean負責數據庫操作與業務邏輯,servlet

  則是核心的調度部分,負責調用 javaBean 來處理業務邏輯,同時負責界面調度切換。優點是程序

  執行更加清晰,方便後期功能的添加與修改。

三,基於MVC模型的用戶登陸實例:

  1.界面部分(login.jsp登陸界面,login_success.jsp登陸成功界面,login_failure.jsp登錄失敗界面)

  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="../loginConf" method="post"> <center> <table> <tr> <td>用戶名:</td> <td><input type="text" name="uname" /></td> </tr> <tr> <td>密&nbsp;&nbsp;碼:</td> <td><input type="password" name="password" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="提交" /> <input type="reset" value="重置" /></td> </tr> </table> </center> </form> </body> </html> View Code

  效果圖:

 

  login_success.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> <% if(session.getAttribute("login")!=null&&session.getAttribute("login").equals("true")) { %> <center> <h2>登陸成功</h2> </center> <% } else { %> <jsp:forward page="login.jsp"></jsp:forward> <% } %> </body> </html> View Code

  效果圖:

 

  login_failure.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> <center> <h2>登錄失敗</h2> </center> </body> </html> View Code

  效果圖:

  2.servlet(controller)

  loginConf.java

package com.javaweb.mvc; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Servlet implementation class loginConf */ @WebServlet("/loginConf") public class loginConf extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public loginConf() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //設置編碼格式 response.setContentType("text/html; charset=utf-8"); request.setCharacterEncoding("utf-8"); //獲取參數 String uname = request.getParameter("uname"); String password = request.getParameter("password"); //獲取session HttpSession session = request.getSession(); //業務邏輯判斷 loginCheck lc = new loginCheck(); if(lc.isLogin(uname, password)) { session.setAttribute("login", "true"); request.getRequestDispatcher("MVC/login_success.jsp").forward(request, response); } else { request.getRequestDispatcher("MVC/login_failure.jsp").forward(request, response); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } } View Code

 

  3.javaBean(業務邏輯Model)

package com.javaweb.mvc; public class loginCheck { public boolean isLogin(String uname,String password) { if(uname.equals("wei")&&password.equals("123")) { return true; } else { return false; } } } View Code

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved