Spring, Dispatcher Servlet

8261 ワード

Dispatcherサーブレットとは?
  • url,
  • 通信中に生成するデータ、
  • view
  • スプリング制御
  • のコア機能の1つ.
  • Dispatcher Serviceletが提供するさまざまな機能により、コントローラはコントローラのコア機能に集中できます.そしてそれはPOJO方式で
  • もちろん、スプリングはコントローラに要求される設定があるため、いくつかの態様ではスプリングの依存性が向上する.
  • 派遣サーバーボードの作成と設定
    web.xml
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
  • web.xmlからDispatcherテンプレートを生成します.
  • Dispatcherサーブレットのプロファイルが必要です.デフォルトは「(webapp)/WEB INF/{名前}-servlet.xml」です.
  • servlet-マッピングによってURLを制御します.
  • dispatcher-servlet.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans:beans xmlns="http://www.springframework.org/schema/mvc"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:beans="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd
    		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    
    	<beans:bean name="/testing" class="com.spring.test.TestController">
    	
    	</beans:bean>
    </beans:beans>
    		
  • 設定ファイルからオブジェクトを作成します.オブジェクトの名前はurlです.
  • HandlerRequest
  • 空のクラスを使用するには、HandlerRequestを継承する必要があります.私たちがよく使うコントローラはHandlerRequestの1つです.
  • コントローラが実装(オーバーライド)する必要があるオブジェクトはModelAndViewです.モデルはデータ、ビューはクライアントです.サーバが生成したデータはビューに転送され、デバッガはビューを呼び出す責任を負います.このような作業が行われているため、dispatcherはフロントエンドコントローラとも呼ばれる.
  • package com.spring.test;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    
    public class TestController implements Controller {
    
    	@Override
    	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
    		System.out.println("작동 중");
    		ModelAndView mv = new ModelAndView();
    		mv.addObject("test", "테스트 중");
    		mv.setViewName("test.jsp");
    		return mv;
    	}
    }
    view
  • jsp(ビュー)のデフォルトパスは「/webapp/{名前}.jsp」です.
  • サーブレットのurl-mappingをすべてのパス(/*)として宣言する場合は、注意してください.setView Nameから「test.jsp」を呼び出すとurlは/testになるためです.jspになりました.これにより、Dispatcher Sebritが呼び出され、名前のコントローラが存在するため、値を出力できません.
  • <url-pattern>/*</url-pattern>
        ->     <url-pattern>/</url-pattern>
    次の問題は/testです.jspにビューに直接アクセスさせないでください.このためには操作が必要です.viewと/WEB-INF
    -/WEB-INFはクライアントが絶対にアクセスできないパスです.viewまたは重要なファイル、設定ファイルは、対応するパスにあります.
  • 通常ビューは/WEB-INF/viewsをパスとします.
  • mv.setViewName("/WEB-INF/views/test.jsp");
  • 相対パス「WEB-INF/」および絶対パス「WEB-INF/」では絶対パスが使用される.「/WEB-INF」の位置が動的に変化しない理由です.
  • 進む
  • MVCが明確に理解できる.Controller,model,viewはすべてdispatcherの制御の下で整理されている.だからDispatchersabletはMVCの始まりと終わりではありませんか?という考えが生まれた.
  • webappとWEB-INFの違いがはっきりしているので良いです.
  • beanの名前はurlの住所だった.この部分も驚くほどこれは普通のcomponent-scanで処理して知らなかった事実です.
  • たくさんのニューヨーク(https://www.youtube.com/user/newlec1)を参考にしました!YouTubeを強くお勧めします!