Q. 로그인페이지에서 바로 index.jsp 로 가는이유는?
Server(Tomcat) web.xml 에서 설정해주었기 때문에
Q. index.jsp를 검색하면(enter를 눌렀을 때) url값이 자동으로 popup으로 바뀌는 이유?
index.do에서 c:redirect로 설정해주었기 때문에<c:redirect url="/index.do?popup=${param.popup}" />
Q. Config.xml 이 필요한 이유?
Config파일에서 변경된 데이터 값은 굳이 controller단에서 변경없이 사용가능하기 때문에int RETRY_CNT = AConfig.getInt("retry_cnt");//count
즉, RETRY_CNT값은 AConfig파일의 getInt메소드를 통해서 int로 변환된다
Q. Login을 하지않으면 index.do를 검색해도 로그인화면이 그대로 뜨는이유?
Login을 할때 LoginInterceptor(Servlet-context.xml에서
<mvc:interceptor>에서 <mvc:mapping path="/*"/> 를 작성하여 /다음에 모든 부분에 Interceptor가 작동할 수 있게 함 )에서 받아들여 sendRedirect로 login.do로 가기때문에
사용자가 입력 데이터를 전달하는 방법중에 하나로 url주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것을 의미한다.
인터셉터는 중간에 가로챈다는 의미를 가진다. 스프링에서도 말 그대로 중간에 요청을 가로채서 Controller 공통로직을 처리한다.
<properties>
<org.springframework-version>4.0.6.RELEASE</org.springframework-version>
<jstl-version>1.2</jstl-version>
<servlet.api-version>3.1.0</servlet.api-version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstl-version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.api-version}</version>
</dependency>
</dependencies>
HandlerInterceptorAdapter를 상속하는것을 알 수 있다.
package com.ABC.rednics.tutorial.spring.webmvc.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class ABCInterceptor extends HandlerInterceptorAdapter {
//여기서 HandlerInterceptorAdapter 상속
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle executed");
return true;
}
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/*/*" /> <!-- 모든 URL 에 대해 Interceptor 를 적용하고자 한다면 /** -->
<mvc:mapping path="/*" />
<bean class="com.ABC.rednics.tutorial.spring.webmvc.interceptor.ABCInterceptor"/> <!-- HandlerInterceptor 인터페이스를 구현한 클래스 -->
</mvc:interceptor>
</mvc:interceptors>
<!-- 모든 요청에 적용하는 Interceptor 설정 -->
<!--
<mvc:interceptors>
<bean class=""/>
</mvc:interceptors>
-->
var test = {
"loginOpt" : "test"
}
console.log(test)
console.log(test.loginOpt)
console.log(test.loginUrl)
console 첫번째 값은 loginOpt: "test" ,
console 두번째 값은 test,
console 세번째 값은 undefined 가 나온다.
인터셉터 크 멋져부러요