激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 深入淺出Java mvc_動力節點Java學院整理

深入淺出Java mvc_動力節點Java學院整理

2020-12-09 13:28lishehe Java教程

這篇文章主要為大家詳細介紹了MVC的基礎知識,MVC是一個框架模式,它強制性的使應用程序的輸入、處理和輸出分開,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在drp中終于接觸到了mvc,感觸是確實這樣的架構系統靈活性不少,現在感觸最深的就是使用tomcat作為服務器發布比iis好多了,起碼發布很簡單,使用起來方便。

首先來簡單的學習一下mvc的基礎知識,mvc全名是model view controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯和數據顯式分離的方法組織代碼,將業務邏輯被聚集到一個部件里面,在界面和用戶圍繞數據的交互能被改進和個性化定制的同時而不需要重新編寫業務邏輯。

概覽

深入淺出Java mvc_動力節點Java學院整理

mvc被獨特的發展起來用于映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中,mvc是分層的思想的體現,但是區別于三層設計模式(區別以后再和大家分享)。  

深入淺出Java mvc_動力節點Java學院整理

mvc是一個框架模式,它強制性的使應用程序的輸入、處理和輸出分開。使用mvc應用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。最典型的mvc就是jsp + servlet + javabean的模式。

實例解析

uml圖:大家熟悉mvc的調用流程邏輯

深入淺出Java mvc_動力節點Java學院整理

第一:jsp:由頁面指令和html組成的查詢界面query_condention.jsp,也就是咱們現在的html頁和asp頁面類似。

?
1
2
3
4
5
6
7
8
9
10
11
<html>
  <head>
    <title>學生信息</title>
  </head>
  <body>
    <form action="searchstudentservlet" method="post">
      出生日期:<input type="text" name="begindate">至<input type="text" name="enddate">
      <input type="submit" value="查詢學生">
    </form>
  </body>
</html>

第二:控制層 searchstudentservlet用來接受客戶的請求,來處理流程,調用model(studentmanager.java),轉發到要請求的后臺服務器的student_list.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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.text.*;
 
import java.util.*;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
 
import com.bjpowernode.exam.model.*;
import com.bjpowernode.exam.manager.*;
 
public class searchstudentservlet extends httpservlet {
 
  public void doget(httpservletrequest request, httpservletresponse response) 
  throws servletexception, ioexception {
    dopost(request, response);
  }
   
  public void dopost(httpservletrequest request, httpservletresponse response)
  throws servletexception, ioexception {
     
    string sbegindate = request.getparameter("begindate");
    string senddate = request.getparameter("enddate");
     
    date begindate = new date();
    date enddate = new date();
    try {
      begindate = new simpledateformat("yyyy-mm-dd").parse(sbegindate);
      enddate = new simpledateformat("yyyy-mm-dd").parse(senddate);
     }catch(exception e) {
      e.printstacktrace();     
     }  
     
    studentmanager studentmanager = new studentmanagerimpl();
    list<student> studentlist = studentmanager.findstudentlist(begindate, enddate);
     
    //將學生列表設置到requet范圍中
    //request.setattribute("student_list", studentlist);
     
    //轉發,轉發是在服務器端轉發的,客戶端是不知道的
    //request.getrequestdispatcher("/student_list.jsp").forward(request, response);
     
     
    //將studentlist放到session中
    httpsession session = request.getsession();
    session.setattribute("student_list", studentlist);
     
    //重定向,不會共享request
    //以下寫法錯誤,該 "/"代表了8080端口
    //response.sendredirect("/student_list.jsp");
    response.sendredirect(request.getcontextpath() + "/student_list.jsp");
  }
}

第三:student_list.jsp頁面接收數據形成html,返回到瀏覽器,渲染在界面上

?
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<%@ page language="java" contenttype="text/html;charset=gbk"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="com.bjpowernode.exam.model.*"%>
<%@ page import="com.bjpowernode.exam.manager.*"%>
<html>
  <head>
    <title>學生信息</title>
    <style type="text/css">
     /*表格寬度為1px,實線,黑色*/
      table{
        border:1px solid black;  
        border-collapse:collapse;    
      }
 
      td {
        border:1px solid black;  
        border-collapse:collapse;    
      }
       
    </style>   
  </head>
  <body>
    <table border="1">
      <tr>
        <td>學生代碼</td>
        <td>姓名</td>
        <td>性別</td>
        <td>出生日期</td>
        <td>聯系電話</td>
        <td>家庭住址</td>
        <td>班級名稱</td>
        <td>年齡</td>
      </tr>
      <%
        //list<student> studentlist = (list)request.getattribute("student_list");
        list<student> studentlist = (list)session.getattribute("student_list");
        for (iterator<student> iter=studentlist.iterator(); iter.hasnext();) {
          student student = iter.next();
      %>
      <tr>
        <td><%=student.getstudentid()%></td>
        <td><%=student.getstudentname()%></td>
        <td><%=student.getsex()%></td>
        <td><%=new simpledateformat("yyyy-mm-dd").format(student.getbirthday())%></td>
        <td><%=student.getcontacttel()%></td>
        <td><%=student.getaddress()%></td>
        <td><%=student.getclasses().getclassesname()%></td>
        <%
          long b = 1000l*60l*60l*24l*365l;
          long a = system.currenttimemillis() - student.getbirthday().gettime();
        %>
        <td><%=a/b%></td>
      </tr>
      <%
        }
      %>
    </table>
  </body>
</html>

在view的student_list.jsp頁面中是大量的html和java代碼的混合,在查詢條件界面query_condention.jsp主要是html,因為不涉及后臺數據的交互.

第四:xml配置servlet:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="iso-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
  xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">
  <servlet>
    <servlet-name>searchstudentservlet</servlet-name>
    <servlet-class>searchstudentservlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>searchstudentservlet</servlet-name>
    <url-pattern>/searchstudentservlet</url-pattern>
  </servlet-mapping>
   
</web-app>

第五:顯示查詢結果

深入淺出Java mvc_動力節點Java學院整理

總結

    以上query_condention.jsp(輸入查詢條件)、searchstudentservlet.java(請求控制control分)+student_list.jsp(界面顯示)的組合相當于三層中的u層,都與界面的顯示相關,而studentmanager.java才是進入業務處理相當于三層的b層。故,我們可以簡單理解成,mvc就是java基于u層的又一個細化,將界面顯示和請求處理做了進一步細化分工。 

    mvc被獨特的發展起來用于映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中,mvc是分層的思想的體現,但是區別于三層設計模式(區別以后再和大家分享)。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 鲁久久 | 99精品视频在线免费观看 | 午夜丰满少妇高清毛片1000部 | 伊甸园永久入口www 91懂色 | 久久精品中文字幕一区 | 一本一本久久a久久精品综合小说 | 国产91精品久久久久久 | 香蕉视频18 | 日日噜噜噜夜夜狠狠久久蜜桃 | 国产九九热 | 国产精品高潮视频 | 欧美人xx| 久久久久久久亚洲精品 | 新久草视频 | 欧美成人免费在线视频 | 国产91免费看 | 国产一区二区三区手机在线 | 国产一级淫片a级aaa | 好骚综合在线 | 久久丝袜脚交足黄网站免费 | 午夜久久久精品一区二区三区 | 免费一级毛片在线播放不收费 | 成人区一区二区 | 国产亚洲精品久久久久久久久久 | 99视频观看 | 在线成人免费网站 | 久久亚洲精品视频 | 国产精品嘿咻嘿咻在线播放 | 成人爽a毛片免费啪啪红桃视频 | 色阁五月 | 久久久久久久久久久国产精品 | 免费一级特黄做受大片 | 国产二三区 | 国产婷婷一区二区三区 | 国产成人综合在线视频 | 午夜视频你懂的 | 99精品国产小情侣高潮露脸在线 | 日韩av一二三区 | 久久免费视频3 | 国产精品91在线 | 亚洲va久久久噜噜噜久牛牛影视 |