웹 개발 기초/자바 웹을 다루는 기술

pageContext 객체 사용 실습

sungw00 2023. 3. 1. 19:02
728x90

pageContext 객체

javax.servlet.jsp.PageContext 클래스를 상속해 웹 컨테이너가 JSP 실행 시 자동으로 생성해서 제공하는 내장 객체

 

<a> 태그를 이용해 다른 서블릿이나 JSP를 요청하는 방법

컨텍스트 이름(pro14)을 직접 입력하는 방법

<a href="/pro14/test01/memberForm.jsp"> 회원 가입하기</a>

getContextPath( ) 메서드를 이용해 컨텍스트 이름을 가져오는 방법

<a href="<%=request.getContextPath() %>/test01/memberForm.jsp">회원 가입하기</a>

 

첫 번째 방법은 컨텍스트 이름(pro14)이 바뀌면 일일이 찾아서 수정해야 한다는 단점이 존재

두 번째 방법은 자바 코드가 사용되므로 화면 작업이 복잡해진다는 단점이 존재

 

pageContext 객체의 속성인 request의 contextPath 속성을 이용하면 쉽게 컨텍스트 이름을 가져올 수 있음


1. login.jsp 파일 작성

<%-- login.jsp --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
    isELIgnored="false" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인창</title>
</head>
<body>
	<form action="result.jsp">
		아이디 : <input type="text" size=20 /><br>
		비밀번호: <input type="password" size=20 /><br>
		<input type="submit" value="로그인" /> <input type="reset" value="다시입력" />
	</form>
	<br><br>
	<%-- <a href="http://localhost:8090/pro14/test01/memberForm.jsp">회원가입하기</a>  --%> <%-- 직접 컨텍스트 이름을 입력해 요청 --%>
	<%-- <a href="<%=request.getContextPath() %>/test01/memberForm.jsp">회원가입하기</a> --%> <%-- request의 getContextPath() 메서드를 이용해 컨텍스트 이름을 가져옴 --%>
	<a href="${pageContext.request.contextPath}/test01/memberForm.jsp">회원가입하기</a> <%-- 자바 코드를 사용하지 않고 pageContext의 속성인 request 하위의 contextPath 속성으로 컨텍스트 이름을 가져옴 --%>
</body>
</html>

 

2. http://localhost:8090/pro14/test01/login.jsp로 로그인창 요청 후 회원가입하기를 클릭

회원가입하기 클릭

그러면 아래와 같이 회원가입 창으로 이동한다.

728x90