본문 바로가기

Java&JSP&Spring/JSP&Servlet

[JAVA/JSP/Servlet]JSP내부 객체(request)

[JAVA/JSP/Servlet]JSP내부 객체(request)

안녕하세요 미나라이입니다.

이번에는 JSP파일 내부에서 기본적으로 제공되는 객체인 request 대해서 알아보도록 하겠습니다.

프로젝트 환경

OS : Windows 10

IDE : Eclipse 2020-06 (4.16.0)

Java : 8

Jdk Version : 1.8.0_161

WAS : Tomcat 8.5.73

 

JSP내부객체는 자체적으로 생성하지 않아도 바로 HTML코드 내에서 사용이 가능합니다.

JSP파일이 Servlet으로 가서 컴파일 하는 과정에서 사용한 객체들이 자동으로 생성됩니다.

request

웹브라우저를 통해 서버에 어떤 정보를 요청할때 사용되는 객체입니다.

해당 객체와 관련된 메소드는 아래와 같습니다. 

<%
	// 컨텍스트 패스(루트패스)를 얻습니다.
	out.println("ContextPath : " + request.getContextPath() + "<br />");
	// 서버 정보를 얻습니다.
	out.println("Server : " + request.getServerName() + "<br />");
	// 포트 정보를 얻습니다.
	out.println("Port : " + request.getServerPort() + "<br />");
	// 전송 방식 정보를 얻습니다.
	out.println("Method : " + request.getMethod() + "<br />");
	// 프로토콜 정보를 얻습니다.
	out.println("Protocol : " + request.getProtocol() + "<br />");
	// 도메인을 포함한 전체 주소값을 얻습니다.
	out.println("URL : " + request.getRequestURL() + "<br />");
	// 도메인을 제외한 주소값을 얻습니다.
	out.println("URI : " + request.getRequestURI() + "<br />");
	// 세션 객체를 얻습니다.
	out.println("Session : " + request.getSession() + "<br />");
	// 쿼리스트링을 얻습니다.
	out.println("QueryString : " + request.getQueryString() + "<br />");
%>

예제

Parameter

request객체에서 가장 많이 사용되는 메소드는 Parameter입니다.

클라이언트에서 요청이 들어왔을때 전송된 값을 취득하는 역할을 합니다.

getParameter(String name) : name에 해당하는 파라미터 값을 구합니다.

getParameterNames() : 모든 파라미터의 이름을 구합니다.

getParameterValues(String name) : name에 해당하는 파라미터값들을 구합니다. 

 

사용 방법

Form데이터 샘플

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberForm</title>
</head>
<body>
<form action="requestParamSample.jsp" method="POST">
	회원 정보 등록<br />
	아이디 : <input type="text" name="id" /><br/>
	비밀번호 : <input type="password" name="password" /><br/>
	이름 : <input type="text" name="name" /><br/>
	나이 : <input type="text" name="age" /><br/>
	취미&nbsp; 
	<input type="checkbox" name="hobby" value="read">독서&nbsp; 
	<input type="checkbox" name="hobby" value="swim">수영&nbsp; 
	<input type="checkbox" name="hobby" value="sleep">취침&nbsp; 
	<br />
	직업&nbsp; 
	<select name="job">
		<option></option>
		<option value="teacher">선생님</option>
		<option value="doctor">의사</option>
		<option value="engenner">엔지니어</option>
	</select>
	<br/>
	<input type="submit" value="전송" />
</form>
</body>
</html>

결과 페이지

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

<%! 
	String id,password,name,job;
	int age;
	String[] parameters,hobby;
	Enumeration<String> paramNames;
%>

<%
	// POST전송시 한글 깨짐 방지 설정(상단 page속성의 pageEncoding도 일치시켜야 한다.)
	request.setCharacterEncoding("UTF-8");

	// 취득한 모든 파라미터의 이름을 가져온다.
	paramNames = request.getParameterNames();
	
	id = request.getParameter("id");
	password = request.getParameter("password");
	name = request.getParameter("name");
	job = request.getParameter("job");
	
	// 기본 문자형으로 받기 때문에 형볌환을 해 주어야 한다.
	age = Integer.parseInt(request.getParameter("age"));
	
	// 복수 체크 항목에 대해서는 해당 값으로 출력한다.
	hobby = request.getParameterValues("hobby");
%>

<%="AllParamNames<br />" %>
<%
	// 요청이 들어온 parameter의 name을 모두 출력
	while (paramNames.hasMoreElements()){
	    String name = paramNames.nextElement();
	    out.println(name + "<br />");
	}
%>

아이디 : <%=id%><br />
비밀번호 : <%=password%><br />
이름 : <%=name%><br />
직업 : <%=job%><br />
나이 : <%=age%><br />
<%-- 자바 고유 기능을 사용하기 위해서는 해당 기능을 import해 주어야 한다. --%>
취미 : <%=Arrays.toString(hobby)%><br />

</body>
</html>

출력 결과

다음 포스팅에서는 JSP의 내부객체인 response객체에 대해서 알아보도록 하겠습니다.

728x90
반응형