ํฐ์คํ ๋ฆฌ ๋ทฐ
์ธํฐ์ ํฐ๋ ์์ฒญ์ด ๋ค์ด๊ฐ๊ธฐ ์ ์ ๊ฐ์ ธ๊ฐ์ ํ์ธํ๋๊ฒ -> ๊ณตํต์ฒ๋ฆฌ
์ธํฐ์ ํฐ ์ฌ์ฉ์ 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="์์น">
'Project > Instagram' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SpringBoot] (0) | 2020.07.15 |
---|---|
[SpringBoot] ๊ฐ๋ฐํ๊ฒฝ ์ค์ (0) | 2020.07.14 |
[spring] ํด๋ก ์ฝ๋ฉ 18 Follow - ํ๋ก์, ํ๋ก์ ๋ฆฌ์คํธ ์กฐํ (0) | 2020.04.21 |
[spring] ํด๋ก ์ฝ๋ฉ17 Follow - ํ๋ก์ฐ, ์ธํ๋ก์ฐ (0) | 2020.04.20 |
[spring] ํด๋ก ์ฝ๋ฉ16 Follow - Model, Repository, Mapper, Test, Service, Controller (0) | 2020.04.20 |
- Total
- Today
- Yesterday
- ๋ณ๋ช ์ฒ๋ฆฌ
- ๊ฒ์๋ฌผ ์ญ์
- ๊ฒ์ํ๋ง๋ค๊ธฐ
- ์๋ฃ๊ตฌ์กฐ
- java jdk ์ค์น
- ๋ถํธ ์๋์์ฑ
- ์ ์ฒด๊ฒ์๋ฌผ ์กฐํ
- ์คํ๋ง๋ถํธ ์๋์์ฑ
- java ํ๊ฒฝ๋ณ์
- ๊ฐ๋ฐ
- mysql์ค์น
- ์จ๋ฆฌ์์ค
- Java
- ๊ฒ์ํ ์ญ์
- ์๊ณ ๋ฆฌ์ฆ
- Algorithm
- ๊ฐ๋ฐํ๊ฒฝ๊ตฌ์ถ
- ์ดํด๋ฆฝ์ค ํ๊ธ ์ธ์ฝ๋ฉ
- ์๋ฐ
- typeAliases
- ๊ฒ์๋ฌผ์กฐํ
- tomcat์ค์น
- ๊ฒ์ํ ์กฐํ
- ์ดํด๋ฆฝ์ค ์ค์น
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |