ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

์ธํ„ฐ์…‰ํ„ฐ๋Š” ์š”์ฒญ์ด ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๊ฐ€์ ธ๊ฐ€์„œ ํ™•์ธํ•˜๋Š”๊ฒƒ -> ๊ณตํ†ต์ฒ˜๋ฆฌ

์ธํ„ฐ์…‰ํ„ฐ ์‚ฌ์šฉ์€ HandlerInterceptorAdapter์„ ์ƒ์†๋ฐ›์•„์•ผํ•œ๋‹ค.

 

 

 

Commons


BasicInterceptor

public class BasicInterceptor extends HandlerInterceptorAdapter {
	
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		//๋กœ๊ทธ์ธ์ด ์•ˆ๋˜์–ด์žˆ์œผ๋ฉด ์ ‘๊ทผํ•˜๋ฉด ์•ˆ๋˜๋Š” ํŽ˜์ด์ง€ ๊ฑฐ๋ฅด๋Š” ์ธํ„ฐ์…‰ํ„ฐ
		
		//์„ธ์…˜๊ฐ€์ ธ์˜ค๊ธฐ
		HttpSession session = request.getSession();
		
		//์„ธ์…˜์— login์ด ์žˆ๋Š”์ง€ ํ™•์ธ
		if(session.getAttribute("login") == null) {
			
			//์„ธ์…˜์ด ์—†์œผ๋‹ˆ๊นŒ ๋กœ๊ทธ์ธํ•œ ํšŒ์›์ด ์กด์žฌํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ
			//์•Œ๋ฆผ์ฐฝ์„ ์ข€ ๋„์›Œ๋ณด์ž
			//๋ธŒ๋ผ์šฐ์ €์— html์„ ์ž๋ฐ”์ฝ”๋“œ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•
			response.setContentType("text/html; charset=utf-8");
			PrintWriter out = response.getWriter();
			out.print("<script>alert('๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค !'); location.href='/myapp';</script>");
			out.flush();//์ถœ๋ ฅ๋ฒ„ํผ๋ฅผ ๋น„์šฐ๋Š” ์ฝ”๋“œ
			out.close();
			
			return false; //์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์—†๋‹ค
		}
		
		return true; //์„ธ์…˜์— ๋กœ๊ทธ์ธ์ด์žˆ์œผ๋ฉด ํ†ต๊ณผ -> ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๊ฐ„๋‹ค
	}
}

์ธํ„ฐ์…‰ํ„ฐ ์‚ฌ์šฉ์€ HandlerInterceptorAdapter์„ ์ƒ์†๋ฐ›์•„์•ผํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์ธํ„ฐ์…‰ํ„ฐ๋กœ ๋กœ๊ทธ์ธ์ด ๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฉด ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ํŽ˜์ด์ง€๋ฅผ ๊ฑฐ๋ฅด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์„ธ์…˜์— ๋กœ๊ทธ์ธ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ›„ ์—†์œผ๋ฉด ์ธํ„ฐ์…‰ํŠธ๋ฅผ ํ†ต๊ณผํ•ด ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ ‘๊ทผํ•˜๋„๋ก ํ•œ๋‹ค.

 

 

 

 

LoginInterceptor

public class LoginInterceptor extends HandlerInterceptorAdapter {
	
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		//๋กœ๊ทธ์ธ์ด ๋˜์–ด์žˆ์œผ๋ฉด ๊ฐ€๋ฉด ์•ˆ๋˜๋Š”๊ณณ ๋กœ๊ทธ์ธํŽ˜์ด์ง€, ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€
		
		//์„ธ์…˜๊ฐ€์ ธ์˜ค๊ธฐ
		HttpSession session = request.getSession();
		

		if(session.getAttribute("login") != null) {
			
			response.setContentType("text/html; charset=utf-8");
			PrintWriter out = response.getWriter();
			out.print("<script>alert('๋กœ๊ทธ์ธ ์ค‘ ์ž…๋‹ˆ๋‹ค !'); location.href='/myapp/post/list';</script>");
			out.flush();
			out.close();
			
			return false; 
		}
		
		return true; 
	}

}

๋กœ๊ทธ์ธ์ด ๋˜์–ด์žˆ์œผ๋ฉด ๋ชป๊ฐ€๋Š” ํŽ˜์ด์ง€๋ฅผ ๊ฑฐ๋ฅด๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

 

 

 

 

 

 

 

servlet-config.xml

<!-- ์ธํ„ฐ์…‰ํ„ฐ -->
<interceptors>
	<interceptor>
		<mapping path="/post/**/"/>
		<mapping path="/user/modify"/>
		<mapping path="/user/pw-change"/>
		<mapping path="/user/withdrawal"/>
		<beans:bean id="basicInterceptor" class="com.hastagram.myapp.commons.interceptor.BasicInterceptor" />
	</interceptor>
</interceptors>

<interceptors>
	<interceptor>
		<mapping path="/user/join"/>
		<mapping path="/"/>
		<beans:bean id="loginInterceptor" class="com.hastagram.myapp.commons.interceptor.LoginInterceptor" />
	</interceptor>
</interceptors>

์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์ž‘๋™์‹œํ‚ค๋ ค๋ฉด ๋นˆ๋“ฑ๋ก์„ ํ•ด์•ผํ•œ๋‹ค.

<mapping path="์–ด๋Š ๊ฒฝ๋กœ์—์„œ ์š”์ฒญ์ด ์™”์„ ๋•Œ ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ๋ฐœ๋™์‹œ์ผœ์„œ ์š”์ฒญ์„ ํƒˆ์ทจํ•  ๊ฒƒ์ธ๊ฐ€"/>

<beans:bean id="" class="์œ„์น˜">

 

 

 

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€