encodeURL() 사용법
1. 다음과 같이 실습 파일을 준비합니다.

2. SessionTest5 클래스를 다음과 같이 작성합니다. 다시 /login으로 요청해 jsessionId를 URL rewriting 방식으로 가져온 후 세션에 접근하여 로그인 상태 유무를 판단하도록 구현합니다.
package sec04.ex01;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/login")
public class SessionTest5 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
private void doHandle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;chatset=utf-8");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
if (session.isNew()) {
if (user_id != null) {
session.setAttribute("user_id", user_id);
String url = response.encodeURL("login");
out.println("<a href="+url+">로그인 상태 확인</a>");
} else {
out.println("<a href='login2.html'>다시 로그인하세요!!</a>");
session.invalidate();
}
}
else {
user_id = (String) session.getAttribute("user_id");
if (user_id != null && user_id.length() != 0) {
out.print("안녕하세요 " + user_id + "님!!!");
} else {
out.print("<a href='login2.html'>디시 로그인하세요!!</a>");
session.invalidate();
}
}
}
}
3. 로그인창에서 ID와 비밀번호를 입력하고 로그인합니다.

4. 로그인 상태 확인을 클릭합니다.

5. 서블릿에 jsessionId 쿠키 값을 전송해 로그인 상태를 유지합니다.

대부분의 브라우저는 쿠키 사용을 기본으로 설정하고 있지만 쿠키를 사용할 수 없을 경우에는 이렇게 encodeURL() 메서드를 이용해 세션 기능을 사용할 수 있습니다.
'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| 서블릿 속성과 스코프 (1) | 2025.08.26 |
|---|---|
| 세션을 이용한 로그인 예제 (0) | 2025.08.23 |
| 세션을 이용한 로그인 정보 바인딩 실습 (4) | 2025.08.17 |
| 다른 브라우저에서 새 세션 만들기 (3) | 2025.08.14 |
| 서블릿에서 세션 API 이용하기 (2) | 2025.08.11 |