1) 뒤로가기 메서드
public static String jsHistoryBack(String msg) {
if(msg==null) {
msg = "";
}
return Ut.f("""
<script>
alert('%s');
history.back();
</script>
"""
,msg);
}
2) 경로 재설정 메서드
public static String jsReplace(String msg,String uri) {
if(msg==null) {
msg = "";
}
if(uri==null) {
uri = "";
}
return Ut.f("""
<script>
alert('%s');
location.replace('%s');
</script>
"""
,msg,uri);
}
1) Rq 클래스
public class Rq {
@Getter
private boolean isLogined;
@Getter
private int loginedMemberId;
public Rq(HttpServletRequest req) {
HttpSession httpSession = req.getSession();
if (httpSession.getAttribute("loginedMemberId") != null) {
this.isLogined = true;
this.loginedMemberId = (int) httpSession.getAttribute("loginedMemberId");
}
}
2) ArticleController
public ResultData<Article> doAdd(HttpServletRequest req, String title, String body) {
Rq rq = new Rq(req);
~~생략~~
if (rq.isLogined() == false) {
return ResultData.from("F-A", "로그인 후 이용가능 합니다.");
}
ResultData<Integer> writeRd = articleService.writeArticle(rq.getLoginedMemberId(), title, body);
객체 생성
시 생성자
로 전달받은 HttpServletRequest를 통해 로그인 관한 정보를 저장했으므로 Controller가 처리되기 전과 후에 발생하는 이벤트
이다.핸들러 인터셉터(Handler Interceptor)
이다. DispatcherServlet
이 컨트롤러를 요청하기 전,후
에 요청과 응답을 가로채서 가공할 수 있도록 해준다.하나의 인터셉터
로 프로젝트 내의 모든 요청에 로그인 여부를 확인할 수 있다. @Component
public class BeforeActionInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {
Rq rq = new Rq(req);
req.setAttribute("rq", rq);
return HandlerInterceptor.super.preHandle(req, resp, handler);
}
맵핑된 메서드
에서 각각 만들어졌다.Rq객체
를 한번만 생성하여