国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Spring起步例子 “Developing a Spring Framework MVC application step-by-step” 剖析 (一)

1、  加載Spring WEB Module的過(guò)程

在WEB.XML中有如下定義

  <servlet>

    <servlet-name>springapp</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>springapp</servlet-name>

    <url-pattern>*.htm</url-pattern>

  </servlet-mapping>

 

因此DispatcherServlet最先被加載,顯示LOG

2004-10-04 23:18:38,549 INFO [org.springframework.web.servlet.DispatcherServlet]

 - <Initializing servlet ´springapp´>

2004-10-04 23:18:38,699 INFO [org.springframework.web.servlet.DispatcherServlet]

 - <Framework servlet ´springapp´ init>

 

DispatcherServlet在加載的過(guò)程中做了什么,我沒(méi)有看源代碼,但根據(jù)LOG信息判斷,它最先去找了/WEB-INF/springapp-servlet.xml

2004-10-04 23:18:38,839 INFO [org.springframework.beans.factory.xml. XmlBeanDefinitionReader] - <Loading XML bean definitions from resource [/WEB-INF/springapp-servlet.xml] of ServletContext>

 

然后,它根據(jù)springapp-servlet.xml的定義,去加載beans。

 

我在springapp-servlet.xml的定義:

<beans>

    <bean id="springappController" class="SpringappController"/>

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

        <property name="mappings">

            <props>

                <prop key="/hello.htm">springappController</prop>

            </props>

        </property>

    </bean>

</beans>

 

LOG信息:

2004-10-04 23:18:39,029 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] - <Creating shared instance of singleton bean ´springappCont

roller´>

2004-10-04 23:18:39,029 INFO [SpringappController] - <日志: 初始化SpringappController>

2004-10-04 23:18:39,070 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] - <Creating shared instance of singleton bean ´urlMapping´>

2004-10-04 23:18:39,130 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] - <Mapped URL path [/hello.htm] onto handler [SpringappController@908faf]>

 

其中:“日志: 初始化SpringappController”是我在SpringappController中加的一個(gè)LOG信息,它在CLASS被加載時(shí)打印。

然后DispatcherServlet還做了一些事情,比如去找MultipartResolver\ LocaleResolver \ThemeResolver \HandlerAdapters \ ViewResolver。至于有什么用我現(xiàn)在不清楚。

 

2、  頁(yè)面請(qǐng)求

我首先輸入一個(gè)正確的jsp文件地址,頁(yè)面正確顯示,沒(méi)有任何LOG信息。

我再隨便輸入一個(gè)不正確的JSP文件地址,頁(yè)面給出APP SERVER的提示信息,也沒(méi)有任何LOG。

然后我隨便輸入一個(gè)不正確的HTM文件地址,LOG信息:

2004-10-04 23:43:15,442 WARN [org.springframework.web.servlet.PageNotFound] - <N

o mapping for [/springapp/i.htm] in DispatcherServlet with name ´springapp´>

 

由此可見(jiàn),.jsp文件是不會(huì)被Spring的servlet處理的,它們將由APP SERVER處理。因?yàn)樵赪EB.XML中定義了頁(yè)面請(qǐng)求過(guò)濾:<url-pattern>*.htm</url-pattern>。只有頁(yè)面請(qǐng)求是.htm時(shí),APP SERVER交由DispatcherServlet處理。

 

把index.jsp改為

<%@ page session="false"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

<%-- Redirected because we can´t set the welcome page to a virtual URL. --%>

<c:redirect url="/hello.htm"/>

增加了一個(gè)重定向語(yǔ)句。

 

SpringappController的處理為:

public class SpringappController implements Controller {

 

    /** Logger for this class and subclasses */

    protected final Log logger = LogFactory.getLog(getClass());

 

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

 

        String now = (new java.util.Date()).toString();

        logger.info("returning hello view with " + now);

 

        return new ModelAndView("WEB-INF/jsp/hello.jsp", "now", now);

    }

}

 

當(dāng)輸入頁(yè)面請(qǐng)求/springapp/index.jsp的時(shí)候,重定向到hello.htm。這個(gè)頁(yè)面請(qǐng)求交給了SpringappController處理。

 

注意return new ModelAndView("WEB-INF/jsp/hello.jsp", "now", now);

它返回了一個(gè)ModelAndView,這個(gè)ModelAndView應(yīng)該是交給了InternalResourceViewResolver,因?yàn)槌霈F(xiàn)信息:

2004-10-04 23:53:47,942 INFO [org.springframework.web.servlet.view.InternalResourceViewResolver] - <Cached view ´WEB-INF/jsp/hello.jsp´>

 

我們?cè)倏碝odelAndView的構(gòu)造方法:

  public ModelAndView(View view) { }

  public ModelAndView(String viewName) { }

  public ModelAndView(View view, Map model) { }

  public ModelAndView(String viewName, Map model) { }

  public ModelAndView(View view, String modelName, Object modelObject) { }

  public ModelAndView(String viewName, String modelName, Object modelObject) { }

以上用的是:

  public ModelAndView(String viewName, String modelName, Object modelObject) { }

這說(shuō)明,在一個(gè)ModelAndView中只能帶一個(gè)model返回,即1個(gè)view加0..1個(gè)model。

 

在hello.jsp中使用了model:

Greetings, it is now <c:out value=”${now}”/>

 

由此我們可以看到一個(gè)頁(yè)面請(qǐng)求的全部過(guò)程:

頁(yè)面請(qǐng)求-> App Server -> DispatcherServlet -> SimpleUrlHandlerMapping -> SpringappController -> InternalResourceViewResolver -> 返回view(JSP頁(yè)面)


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
開(kāi)發(fā)NetBeans Spring MVC過(guò)程分析
開(kāi)發(fā)Spring MVC應(yīng)用程序(2)
springMVC入門(mén)
Spring MVC中的視圖解析ViewResolver
Spring MVC【入門(mén)】就這一篇!
學(xué)習(xí)SpringMVC系列教程(一)Spring MVC入門(mén)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服