Spring, Dispatcher Servlet
8261 ワード
Dispatcherサーブレットとは? url, 通信中に生成するデータ、 view スプリング制御のコア機能の1つ. Dispatcher Serviceletが提供するさまざまな機能により、コントローラはコントローラのコア機能に集中できます.そしてそれはPOJO方式で もちろん、スプリングはコントローラに要求される設定があるため、いくつかの態様ではスプリングの依存性が向上する. 派遣サーバーボードの作成と設定 web.xmlからDispatcherテンプレートを生成します. Dispatcherサーブレットのプロファイルが必要です.デフォルトは「(webapp)/WEB INF/{名前}-servlet.xml」です. servlet-マッピングによってURLを制御します. 設定ファイルからオブジェクトを作成します.オブジェクトの名前はurlです. HandlerRequest空のクラスを使用するには、HandlerRequestを継承する必要があります.私たちがよく使うコントローラはHandlerRequestの1つです. コントローラが実装(オーバーライド)する必要があるオブジェクトはModelAndViewです.モデルはデータ、ビューはクライアントです.サーバが生成したデータはビューに転送され、デバッガはビューを呼び出す責任を負います.このような作業が行われているため、dispatcherはフロントエンドコントローラとも呼ばれる. jsp(ビュー)のデフォルトパスは「/webapp/{名前}.jsp」です. サーブレットのurl-mappingをすべてのパス(/*)として宣言する場合は、注意してください.setView Nameから「test.jsp」を呼び出すとurlは/testになるためです.jspになりました.これにより、Dispatcher Sebritが呼び出され、名前のコントローラが存在するため、値を出力できません.
-/WEB-INFはクライアントが絶対にアクセスできないパスです.viewまたは重要なファイル、設定ファイルは、対応するパスにあります.通常ビューは/WEB-INF/viewsをパスとします. 相対パス「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を強くお勧めします!
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>
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>
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<url-pattern>/*</url-pattern>
-> <url-pattern>/</url-pattern>
次の問題は/testです.jspにビューに直接アクセスさせないでください.このためには操作が必要です.viewと/WEB-INF-/WEB-INFはクライアントが絶対にアクセスできないパスです.viewまたは重要なファイル、設定ファイルは、対応するパスにあります.
mv.setViewName("/WEB-INF/views/test.jsp");
Reference
この問題について(Spring, Dispatcher Servlet), 我々は、より多くの情報をここで見つけました https://velog.io/@infoqoch/Spring-Dispatcher-Servletテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol