넓고얕은지식사전

JSP & Servlet 게시판 구현하기(로그아웃) 본문

IT/JSP & Servlet

JSP & Servlet 게시판 구현하기(로그아웃)

맛난이 2023. 1. 13. 15:39
반응형

지난번에 로그인 기능을 구현 하였다.

https://nullgoyatten.tistory.com/19

 

그렇다면 이번에는 로그아웃 기능을 이어서 구현해보자.

 

 

1. LogoutHandler 작성

경로 : auth.command> LogoutHandler.java

package auth.command;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import mvc.command.CommandHandler;

public class LogoutHandler implements CommandHandler {

	@Override
	public String process(HttpServletRequest req, HttpServletResponse res) 
	throws Exception {
		HttpSession session = req.getSession(false);
		if (session != null) {
			session.invalidate();
		}
		res.sendRedirect(req.getContextPath() + "/index.jsp");
		return null;
	}

}

 

2. commandHandlerURI.properties 수정. LogoutHandler가 /logout.do 요청을 처리하도록 매핑 설정에 추가한다. 

/join.do=member.command.JoinHandler
/login.do=auth.command.LoginHandler
/logout.do=auth.command.LogoutHandler

 

3. 패키지 생성 (패키지명 : filter)

 

4.  LoginCheckFilter 작성

경로 : filter > LoginCheckFilter.java

package filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginCheckFilter implements Filter {

	@Override
	public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
			throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest) req;
		HttpSession session = request.getSession(false);
		if (session == null || session.getAttribute("authUser") == null) {
			HttpServletResponse response = (HttpServletResponse)res;
			response.sendRedirect(request.getContextPath() + "/login.do");
		} else {
			chain.doFilter(req, res);
		}
	}

	@Override
	public void init(FilterConfig config) throws ServletException {
	}

	@Override
	public void destroy() {
	}

}

5. web.xml 수정

web.xml(경로 : WebContent > WEB-INF)에 LoginCheckFilter 설정을 추가해줘야 한다.

	<!-- LoginCheckFilter관련 설정 -->
	<filter>
		<filter-name>LoginCheckFilter</filter-name>
		<filter-class>filter.LoginCheckFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>LoginCheckFilter</filter-name>
		<url-pattern>/changePwd.do</url-pattern>
	</filter-mapping>

 

 

6. 테스트

자 이렇게 로그아웃 기능까지 구현이 완료되었다.

 

다음글 : 암호변경 구현

https://nullgoyatten.tistory.com/21

 

JSP & Servlet 게시판 구현하기(암호 변경)

지난번에 로그아웃 기능을 구현 하였다. https://nullgoyatten.tistory.com/20 JSP & Servlet 게시판 구현하기(로그아웃) 지난번에 로그인 기능을 구현 하였다. https://nullgoyatten.tistory.com/19 그렇다면 이번에는

nullgoyatten.tistory.com

 

반응형
Comments