Spring MVC

11055 ワード

Spring mvc



Springmvcは基本的にmvcモードと同じです.
spring mvcを使用するには、現在のプロジェクトでspringwebmvc-4.3.9を使用します.RELEASE.jar
ファイルを入れないと使えない!!

Spring Controlの準備


Controller


-mvcでは、コントローラがjava空のオブジェクトをロードすることも決定します.  同様にSpring mvcでもcontrollerでどの動作コントローラがロードされているかを決定する必要がある.

Front Controller


フロントエンドコントローラは、フロントエンドの1つのサーバによってクライアントのすべての要求を受信します.リクエストを受信すると、適切なコントローラを見つけて呼び出すことができ、フロントエンドコントローラ以外のコントローラではサーブレットクラスでなくても処理に問題が発生しないように、呼び出しを汎用的に処理できます.
(ここでスーパークラスはDispatcherServiceletであり、DispatcherServiceletを継承してから使用する必要があります!)
<!-- 사용할 bean객체 정의 -->
  <bean id="t1" class="ex1.Test1Action" name="/t1.inc"/>
  <!-- 뒤에 name은 url mapping명이다.
  	   브라우저에서 도메인 뒤에 /t1.inc라고 요청하면 Test1Action이 구동된다. -->  	
  <bean id="t2" class="ex1.Test2Action" name="/t2.inc"/>


  <!-- View Resolver설정 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="suffix" value=".jsp"/><!-- 확장자 지정 -->
		<property name="prefix" value="/WEB-INF/jsp/"/><!-- 위치 지정 -->
		
	</bean>

• Controller-servlet.xml


   DispatcherServiceletからControllerを継承して作成すると、サーバが実行されます.
   WEB-INF/Controller-servlet.xmlをロードするには、ここに必要な空のオブジェクトを登録する必要があります.   とname:URLマッピング名を指定する必要があります.
   (ViewResolverを指定して拡張子と場所を指定することで、より簡単にjspに移動できます.)

Action Controller


ActionControllerを実装する方法はいろいろありますが、その中の3つだけを定義します.
public class Test1Action extends AbstractController {

	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse reseponse) throws Exception {
		// 현재 겍체는 Controller에 의해서 호출된다.
		// 단, 특정 이름으로 등록되어 있어야 한다!!(t1.inc)
		
		// jsp에서 표현할 자원들은 request에 저장하자!
		request.setAttribute("msg", "환영합니다.");
		
		// 반환객체 생성
		ModelAndView mv = new ModelAndView();
		
		// forward할 jsp 경로를 mv에 지정해야 한다.
		mv.setViewName("ex1");
		
		// mv에 필요한 정보 저장
		mv.addObject("str", "1000");
		
		return mv;
	}

}

• AbstractController


   Actionオブジェクトを作成すると、AbstractControllerという名前のオブジェクトが継承されます.
  ここでrequestに転送され、jspでデータが表現される.
  ただし、ここではModelAndViewという名前のオブジェクトがrequestに転送される.
  ModelAndViewでメッセージを送ればいいです
public class Test3Action implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// 먼저 현재 날짜를 구한다.
		Date now = new Date(System.currentTimeMillis());
		
		// 반환 객체 생성
		ModelAndView mv = new ModelAndView();
		
		mv.addObject("now", now.toString());
		mv.setViewName("ex3");
		
		
		return mv;
	}

}

• Controller


   AbstractControllerと同じです.
   しかし、これは定義と実装インタフェースの違いを継承するだけです.

• Annotation


    上の2つのアクションコントローラは、1つのリクエストしか処理できません.それなら.
    アクションコントローラオブジェクトが多すぎるため、
    Annotationを定義して要求を受信し、操作を実行します.
    様々なオブジェクトを使用して必要な値を転送できます!!🔥🔥🔥🔥

‣ @Controller


   コントローラクラスに@Controllerの説明を作成します.名前が適用されたクラスは次のとおりです.   「コントローラ」を表し、beanとして登録され、そのクラスをコントローラとして使用します.   Frameworkに通知します.

‣ @RequestMapping


   対応する宣言を宣言したクラスのすべてのメソッドが要求を処理する場合に使用します.   たとえば、「/stu学生」リクエストでは、クラスが共同で処理される必要があります.また、お願い   urlがこのメソッドで処理する必要がある場合も、このメソッドが使用されます.これらの@requestMappingについて   すべてのマッピング情報にはSpringが提供するHandleMappingクラスがあります.
コメントを使用すると、前のようにrequsetされます.getparamter("")で情報を受信するのではなく、同じ名前で情報を伝達するならrquestを使う必要がなく、一度に値を入力する利便性がとてもいいです!🔥🔥🔥🔥
本日の添付Annotation