一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - Java教程 - 深入淺出Java mvc_動力節(jié)點(diǎn)Java學(xué)院整理

深入淺出Java mvc_動力節(jié)點(diǎn)Java學(xué)院整理

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

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

在drp中終于接觸到了mvc,感觸是確實(shí)這樣的架構(gòu)系統(tǒng)靈活性不少,現(xiàn)在感觸最深的就是使用tomcat作為服務(wù)器發(fā)布比iis好多了,起碼發(fā)布很簡單,使用起來方便。

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

概覽

深入淺出Java mvc_動力節(jié)點(diǎn)Java學(xué)院整理

mvc被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結(jié)構(gòu)中,mvc是分層的思想的體現(xiàn),但是區(qū)別于三層設(shè)計模式(區(qū)別以后再和大家分享)。  

深入淺出Java mvc_動力節(jié)點(diǎn)Java學(xué)院整理

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

實(shí)例解析

uml圖:大家熟悉mvc的調(diào)用流程邏輯

深入淺出Java mvc_動力節(jié)點(diǎn)Java學(xué)院整理

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

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

第二:控制層 searchstudentservlet用來接受客戶的請求,來處理流程,調(diào)用model(studentmanager.java),轉(zhuǎn)發(fā)到要請求的后臺服務(wù)器的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);
     
    //將學(xué)生列表設(shè)置到requet范圍中
    //request.setattribute("student_list", studentlist);
     
    //轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)是在服務(wù)器端轉(zhuǎn)發(fā)的,客戶端是不知道的
    //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頁面接收數(shù)據(jù)形成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>學(xué)生信息</title>
    <style type="text/css">
     /*表格寬度為1px,實(shí)線,黑色*/
      table{
        border:1px solid black;  
        border-collapse:collapse;    
      }
 
      td {
        border:1px solid black;  
        border-collapse:collapse;    
      }
       
    </style>   
  </head>
  <body>
    <table border="1">
      <tr>
        <td>學(xué)生代碼</td>
        <td>姓名</td>
        <td>性別</td>
        <td>出生日期</td>
        <td>聯(lián)系電話</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,因?yàn)椴簧婕昂笈_數(shù)據(jù)的交互.

第四: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>

第五:顯示查詢結(jié)果

深入淺出Java mvc_動力節(jié)點(diǎn)Java學(xué)院整理

總結(jié)

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

    mvc被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結(jié)構(gòu)中,mvc是分層的思想的體現(xiàn),但是區(qū)別于三層設(shè)計模式(區(qū)別以后再和大家分享)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩成人一区ftp在线播放 | 四虎影视永久在线观看 | 成人软件18免费 | 精品久久免费视频 | 2018天天弄| 欧美特一级 | 精品精品国产自在现拍 | 亚洲一区二区三区深夜天堂 | 青青青国产手机在线播放 | 色中色官网 | 国产麻豆剧果冻传媒影视4934 | 无毛黄片| 亚洲欧美日韩综合在线 | 久久大胆视频 | 九九在线免费视频 | 初尝黑人巨大h文 | 好看的亚洲视频 | 桥本有菜ssni-677在线观看 | 青草久久网 | 福利一区福利二区 | 91porny紧身翘臀 | 久久热r在线视频精品 | 亚久久伊人精品青青草原2020 | 亚洲成年| 黑人巨大精品战中国美女 | 成人黄页网站 | 国产91素人搭讪系列天堂 | 日本黄色录像视频 | 呜呜别塞了啊抽插 | 91探花在线播放 | 国产精品微拍 | 亚洲 欧美 国产 综合 在线 | 久久视频精品3线视频在线观看 | www.四虎在线观看 | 女烈受刑重口小说 | 91国产在线观看 | 男女拍拍拍免费视频网站 | 精品国产乱码久久久久久免费 | 不良小说| 疯狂刺激的3p国产在线 | 欧美性白人顶级hd |