프로그래밍 언어/자바 웹

pageContext 객체 사용 실습

· 코딩마이데이

pageContext 객체는 javax.servlet.jsp.PageContext 클래스를 상속해 웹 컨테이너가 JSP 실행 시 자동으로 생성해서 제공하는 내장 객체입니다. 이번에는 pageContext 객체의 편리한 기능을 사용해 보겠습니다.

<a> 태그를 이용해 다른 서블릿이나 JSP를 요청하는 방법은 다음의 두 가지입니다.

첫 번째는 컨텍스트 이름을 직접 입력하는 방법입니다.

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

 

두 번째는 getContextPath() 메서드를 이용해 컨텍스트 이름을 가져오는 방법입니다.

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

 

그런데 첫 번째 방법은 컨텍스트 이름이 바뀌면 일일이 찾아서 수정해야 한다는 단점이 있고, 두 번째 방법은 자바 코드가 사용되므로 화면 적업이 복잡해진다는 단점이 있습니다. 그러나 pageContext 객체의 속성인 request의 contextPath 속성을 이용하면 쉽게 컨텍스트 이름을 가져올 수 있습니다.

 

1. 다음과 같이 login.jsp를 작성합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
    isErrorPage="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="text" value="다시입력" />
	</form>
	<br><br>
	<!--  <a href="http://localhost:8090/pro14/test01/memberForm.jsp">회원가입하기</a> -->
    <%--   <a href="<%=request.getContextPath() %>/test01/memberForm.jsp">회원가입하기</a>  --%>
   <a href="${pageContext.request.contextPath}/test01/memberForm.jsp">회원가입하기</a>
</body>
</html>

 

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

로그인창에서 회원가입 클릭

 

3. 회원 가입창으로 이동합니다.

회원 가입창으로 이동