亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

初學者對Spring MVC的認識

發布時間:2020-06-12 15:44:52 來源:網絡 閱讀:416 作者:qq58edf1d989a2d 欄目:開發技術

首先是要一定說明的是,這倒是說明是什么?對吧Spring MVC 是SpringFrameWork的后續產品,并且已經融

入到Spring Web Flow中同時Spring MVC 分離了控制器,模型對象,分派器(其實我不知道這是什么)以及處理程

序對象的角色,這種分離讓它們更容易進行定制.說了這些很官方的話,我都有點暈了,呵呵,先上一個原理流程圖吧,相信會比較直觀!

  Spring MVC 原理圖

初學者對Spring MVC的認識

Spring MVC 對應原理流程步驟:

  1.Web客戶端 --> DispatcherServlet 用戶發送一個請求到,首先到DispatcherServlet中(先交給前端控制器,進行全局的流程控制)

  2.DispatcherServlet --> HandlerMapping 解析用戶在前臺提交的請求,并按照我們的要求分配到指定的Controller(相當于struts2中的action)

  3.DispatcherServlet --> Controller 進入指定的Controller對象,執行里面的方法,返回需要的字符串(ModelAndView),在Controller里面需要對bean進行操作,也就是會和Model進行交互

  4.DispatcherServlet --> ViewResolver 解析從Controller中返回的字符串,并轉換為有效的JSP路徑

  5.DispatcherServlet --> JSP 將轉換好的JSP路徑,指定到特定的頁面

  6.JSP --> Web客戶端 將某一個特定的頁面顯示在客戶端界面

  好了,以上就是Spring MVC的流程,是不是有了一定的認識了,不急,后面還有呢...

  有了基本的認識, 那就開始編碼吧!(我是用的是Springframework-3.2.8)

  大家都知道的,打開編譯器,準備開始開發一個項目的時候,第一步就是新建項目。哈哈!

  是不是會有一點無語,呵呵,不是別的,只是活躍一下氣氛,原因你懂的。。

  好吧,這一步就不列入編碼步驟里了吧,下面正式開始!

  第一步:添加架包

  初學者對Spring MVC的認識

  是不是覺得架包很少啊,沒錯,這就是Spring MVC的特點,繼續讓它顛覆你的想法吧

  第二步:一定是web.xml文件了

  初學者對Spring MVC的認識

  這里就是上面提到的DispatcherServlet -- 前端控制器

  后面的"*.do"就是用來攔截頁面用戶的請求,這里規定凡是以 .do 結尾的請求都會命中,當然這個可以自己定義,需要說明的是,不管自己定義的是什么,一定要遵守,呵呵,是不是突然覺得好有道理!

  第三步:在WEB-INF中配置 mvc-servlet.xml文件(要求名稱必須以Web.xml中的<servlet-name>節點中的名字開頭+servlet.xml)算了,直接上圖吧:

  Java代碼

<span ><</span><span >?xml version="1.0"encoding="UTF-8"?>

<span ><</span>beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.2.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd

">

 

<bean id="parameterMethodNameResolver"

class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">

<property name="paramName"value="action"></property>

</bean>

 

<bean id="user"class="com.mvc.controller.UserController">

<property name="methodNameResolver"ref="parameterMethodNameResolver"></property>

</bean>

 

<span ><!-- 解析地址欄上的請求 --></span>

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="mappings">

<props>

<!-- key對應的url-pattern,值是控制器的bean id -->

<prop key="login.do">user</prop>

</props>

</property>

</bean></span>

<span >

</span><span ><span ><!-- 個人表示不建議使用 -->

<!-- 在有需要進行controller跳轉的時候,就不能使用這個方法 -->

<!-- 視圖解析器,在轉發前要到模型進行處理 (就是智能的在返回的字符串轉換成為頁面) --></span>

<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">

<property name="viewClass"

value="org.springframework.web.servlet.view.JstlView"></property>

<property name="prefix"value="/"/>

<property name="suffix"value=".jsp"/>

</bean>

</beans></span>

  需要解釋:如果某一個Controller中需要調用不用的方法時,就必須指定定義方法的名字,例如請求的路徑為: user.do?action=userLogin(1).需要指定定義方法的名字:<property name="paramName" value="action" /> 定義之后,程序就知道在action之后的就是需要進入的某一個方法

  (如果是調用同一個方法,當然就不需要定義這個,但是只要有一個Controller需要不同的方法,就需要定義)

  (2).解析之后Controller路徑,這里用到了Spring的控制反轉(IOC),其他就不同多說

  <property name="methodNameResolver" ref="parameterMethodNameResolver" /> 給Controller定義方法名解析器 2.1. 可以應用已經定義好的解析器(見上)

  2.2. 可以為每一個Bean單獨定義解析器

  初學者對Spring MVC的認識

  (3).解析所有來自頁面中命中的請求,并分配到不同的Controller中

  (4).在配置文件中,如果使用最后一個bean里面的內容,如果需要返回到"index.jsp"頁面時,就可以直接返回"index"就OK了,這個配置文件就是為我們返回的字符串,前后自動加上"/"和".jsp".

  一旦有了這個配置之后,就不能在Controller中進行對Controller的跳轉,因為它會所有的返回字符串前后都加上"/"和".jsp",而這明顯不是我們所需要的,所以一般不會使用這種方法!

  到這里了,需要靜一靜,好好理一下思路.

  第四步:定義一個UserController,并繼承MultiactionController類

  Java代碼

<span >publicclassUserControllerextendsMultiActionController {

 

publicModelAndView login(HttpServletRequest req,

HttpServletResponse resp, User user) throwsException{

 

String result = "";

if(user.getName().equals("jack")){

req.getSession().setAttribute("user", user);

result = "login.do?action=login";//可進行Controller之間的跳轉

result = "index.jsp?age=22";//可傳值到頁面上

}else{

result = "login.jsp";

}

returnnewModelAndView(result);

}

}</span>

  (1).上面的代碼中繼承的是 MultiactionController類,意味著可以用來定義多個不同的方法,以請求中action后面的名字來定

  當然還可以直接完成Controller接口,意味著當前整個Controller 中,只有一個方法,且必須給定

  (2).在方法中的參數默認情況下是兩個,分別是HttpServletRequset和HttpServletResponse對象,當然在此之外,還可以定義一個對象類型的參數,主要是簡化表單提交多個參數(目前只了解到這里)寫到這里,就差不多了,不出意外的話,你應該可以完成一個比較簡單的Spring MVC框架的小項目了


源碼地址來源:×××/technology

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋城| 德阳市| 会昌县| 木兰县| 石楼县| 江油市| 昌图县| 张掖市| 五莲县| 保定市| 石狮市| 久治县| 和林格尔县| 麦盖提县| 长春市| 和平县| 沙田区| 武宁县| 黄龙县| 军事| 开原市| 依安县| 灯塔市| 辽中县| 绍兴市| 凌源市| 东乌| 贵德县| 丹棱县| 峨眉山市| 湘阴县| 凌海市| 客服| 岑溪市| 临沂市| 专栏| 确山县| 正定县| 资阳市| 肥西县| 修文县|