回顧servlet

回顧MVC

什么是MVC

MVC是模型(Model)奴艾、視圖(View)净当、控制器(Controller)的簡寫,是一種軟件設(shè)計規(guī)范蕴潦。

是將業(yè)務(wù)邏輯像啼、數(shù)據(jù)、顯示分離的方法來組織代碼潭苞。

MVC主要作用是降低了視圖與業(yè)務(wù)邏輯間的雙向偶合忽冻。

MVC不是一種設(shè)計模式,MVC是一種架構(gòu)模式此疹。當然不同的MVC存在差異僧诚。

Model(模型):數(shù)據(jù)模型遮婶,提供要展示的數(shù)據(jù),因此包含數(shù)據(jù)和行為湖笨,可以認為是領(lǐng)域模型或JavaBean組件(包含數(shù)據(jù)和行為)旗扑,不過現(xiàn)在一般都分離開來:Value Object(數(shù)據(jù)Dao) 和 服務(wù)層(行為Service)。也就是模型提供了模型數(shù)據(jù)查詢和模型數(shù)據(jù)的狀態(tài)更新等功能赶么,包括數(shù)據(jù)和業(yè)務(wù)肩豁。

View(視圖):負責進行模型的展示,一般就是我們見到的用戶界面辫呻,客戶想看到的東西清钥。

Controller(控制器):接收用戶請求,委托給模型進行處理(狀態(tài)改變)放闺,處理完畢后把返回的模型數(shù)據(jù)返回給視圖祟昭,由視圖負責展示。也就是說控制器做了個調(diào)度員的工作怖侦。

最典型的MVC就是JSP + servlet + javabean的模式篡悟。

Model2時代

image.png

1、用戶發(fā)請求

2匾寝、Servlet接收請求數(shù)據(jù)搬葬,并調(diào)用對應(yīng)的業(yè)務(wù)邏輯方法

3、業(yè)務(wù)處理完畢艳悔,返回更新后的數(shù)據(jù)給servlet

4急凰、servlet轉(zhuǎn)向到JSP,由JSP來渲染頁面

5猜年、響應(yīng)給前端更新后的頁面

職責分析:

Controller:控制器
取得表單數(shù)據(jù)
調(diào)用業(yè)務(wù)邏輯
轉(zhuǎn)向指定的頁面

Model:模型
業(yè)務(wù)邏輯
保存數(shù)據(jù)的狀態(tài)

View:視圖
顯示頁面

回顧Servlet

1抡锈、新建一個Maven工程當做父工程!pom依賴乔外!

<dependencies>
  <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
  </dependency>
  <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.1.9.RELEASE</version>
  </dependency>
  <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
  </dependency>
  <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
  </dependency>
  <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
  </dependency>
</dependencies>

2 床三、建立一個Moudle:springmvc-01-servlet , 添加Web app的支持杨幼!

3撇簿、編寫一個Servlet類,用來處理用戶的請求

package com.kuang.servlet;

//實現(xiàn)Servlet接口
public class HelloServlet extends HttpServlet {
   @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //取得參數(shù)
       String method = req.getParameter("method");
       if (method.equals("add")){
           req.getSession().setAttribute("msg","執(zhí)行了add方法");
      }
       if (method.equals("delete")){
           req.getSession().setAttribute("msg","執(zhí)行了delete方法");
      }
       //業(yè)務(wù)邏輯
       //視圖跳轉(zhuǎn)
       req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req,resp);
  }

   @Override
   protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       doGet(req,resp);
  }
}

5差购、編寫Hello.jsp补疑,在WEB-INF目錄下新建一個jsp的文件夾,新建hello.jsp
前端要跳轉(zhuǎn)的頁面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
   <title>Kuangshen</title>
</head>
<body>
${msg}
</body>
</html>

6歹撒、在web.xml中注冊Servlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
        version="4.0">
   <servlet>
       <servlet-name>HelloServlet</servlet-name>
       <servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
   </servlet>
   <servlet-mapping>
       <servlet-name>HelloServlet</servlet-name>
       <url-pattern>/user</url-pattern>
   </servlet-mapping>

</web-app>

7莲组、配置tomcat并啟動

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市暖夭,隨后出現(xiàn)的幾起案子锹杈,更是在濱河造成了極大的恐慌撵孤,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件竭望,死亡現(xiàn)場離奇詭異邪码,居然都是意外死亡,警方通過查閱死者的電腦和手機咬清,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門闭专,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旧烧,你說我怎么就攤上這事影钉。” “怎么了掘剪?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵平委,是天一觀的道長。 經(jīng)常有香客問我夺谁,道長廉赔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任匾鸥,我火速辦了婚禮蜡塌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勿负。我一直安慰自己馏艾,他們只是感情好,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布笆环。 她就那樣靜靜地躺著攒至,像睡著了一般厚者。 火紅的嫁衣襯著肌膚如雪躁劣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天库菲,我揣著相機與錄音账忘,去河邊找鬼。 笑死熙宇,一個胖子當著我的面吹牛鳖擒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烫止,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蒋荚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了馆蠕?” 一聲冷哼從身側(cè)響起期升,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤惊奇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后播赁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颂郎,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年容为,在試婚紗的時候發(fā)現(xiàn)自己被綠了乓序。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡坎背,死狀恐怖替劈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情沼瘫,我是刑警寧澤抬纸,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站耿戚,受9級特大地震影響湿故,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜膜蛔,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一坛猪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧皂股,春花似錦墅茉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蘑辑,卻和暖如春洋机,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洋魂。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工绷旗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人副砍。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓衔肢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親豁翎。 傳聞我的和親對象是個殘疾皇子角骤,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96心剥、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,404評論 0 10
  • 16. Web MVC 框架 16.1 Spring Web MVC 框架介紹 Spring Web 模型-視圖-...
    此魚不得水閱讀 1,039評論 0 4
  • 對于java中的思考的方向邦尊,1必須要看前端的頁面硼控,對于前端的頁面基本的邏輯,如果能理解最好胳赌,不理解也要知道幾點牢撼。 ...
    神尤魯?shù)婪?/span>閱讀 813評論 0 0
  • IOC 控制反轉(zhuǎn)容器控制程序?qū)ο笾g的關(guān)系,而不是傳統(tǒng)實現(xiàn)中疑苫,有程序代碼之間控制熏版,又名依賴注入。All 類的創(chuàng)建捍掺,...
    irckwk1閱讀 942評論 0 0
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,810評論 0 11