JSP 프로그래밍

JSP 내장객체

요피짱 2019. 12. 26. 23:35

 

우선 내장객체에 대해 알아보자 번째,

 

개발자들이 많이 사용하는 서블릿 객체들을 기본적으로

사용할 수 있게 지정해놓은 객체를 내장객체라고 한다.

따로 선언이나 생성하지 않아도 사용할 수 있다.

 

 

request 내장객체에 대해 알아보자 번째,

 

request 는 기본적으로 클라이언트의 요청 정보를 담는다.

예제를 확인하며 알아보자.


<%@ page contentType = "text/html; charset=UTF-8" %>

<html>

<head><title>클라이언트 및 서버 정보</title></head>

<body>

클라이언트 IP = <%= request.getRemoteAddr()% ><br>

요청정보길이 = <%= request.getContentLength() %> <br>

요청정보 인코딩 = <%= request.getCharacterEncoding() %> <br>

요청정보 컨텐트 타입 = <%=request.getContentType() %> <br>

요청정보 전송방식 = <%= request.getMethod() %> <br>

요청정보 프로토콜 = <%= request.getProtocol() %> <br>

요청 URL = <%= request.getRequestURL().toString() %> <br>

요청 URI = <%= request.getRequestURI() %> <br>

컨텍스트 경로 = <% = request.getContextPath() %> <br>

서버 이름 = <%= request.getServerName() %> <br>

서버 포트 = <%= request.getServerPort() %> <br>

</body>

</html>

 

 

HTML form 데이터와 요청 피라미터에 관련된 메소드를 알아보자 번째,

 

바로 아래의 예제를 확인하면서 알아보자.

순서대로 작성하면 된다.

<!-- 저장 위치는 c/web/requestEx.jsp -->
<%@ page contentType = "text/html; charset=UTF-8" %>
<html>
<head>
<title>폼 생성</title>
</head>

<body>
폼에 데이터를 입력하고 '전송' 버튼을 클릭하세요.

<!-- parameter 를 viewParameter.jsp 에게 post 방식으로 전송 -->
<form action = "viewParameter.jsp" method = "post">

<!-- 여기서 name = "" 이게 파리미터 이름이다, 이 이름으로 전달된다. -->
이름 : <input type = "text " name ="name" size = "10"> <br><br>
주소 : <input type = "text" name ="address" size = "30"> <br><br>

<!-- 여기서 파라미터 이름 이렇게 동일하게 맞춰주면 자동으로 그룹으로 만들어진다. -->
좋아하는 동물 : 
<input type = "checkbox" name = "pet" value = "dog">강아지
<input type = "checkbox" name = "pet" value = "cat">고양이
<input type = "checkbox" name = "pet" value = "pig">돼지
<br><br>

<!-- input type 가 submit 이면 체크하고 적은 파라미터가 전송된다. -->
<input type="submit" value = "전송">
</form>
</body>
</html>

 

<!-- c/web/viewParameter.jsp -->

<!-- 지시어 (contentType , import) 사용.-->
<%@ page contentType = "text/html; charset=UTF-8" %>
<%@ page import="java.util.Enumeration"%>
<%@ page import="java.util.Map"%>

<!-- Encoding setting -->
<%
request.setCharacterEncoding("UTF-8");
%>

<html>
<head>
<title>요청 파라미터 출력</title>
</head>

<body>

<!-- 파라미터 이름을 통해 정보를 가져오는 메소드 -->
<b>request.getParameter() 메소드 사용 </b><br><br>
name 파라미터 = <%= request.getParameter("name")%> <br><br>
address 파라미터 = <%= request.getParameter("address") %>
<br><br><br><br>

<!-- 파라미터 이름이 pet 인 모든 피라미터 값을 배열로 가져오는 메소드 -->
<b>request.getParameterValues() 메소드 사용 </b><br><br>
<%
String[] values = request.getParameterValues("pet);
if(values != null) {
for(int i = 0; i < values.length; i++;) {
%>
pet 파라미터 <%= values[i] %>
<%
}
}
%>
<br><br><br><br>

<!-- 파라미터 이름을 모를 때 파라미터의 이름을 가져오는 메소드 -->
<b>request.getParameterNames() 메소드 사용 </b><br><br>
<%
<!-- Enumeration 은 열거형 무한데이터 , Elements 가 더 이상 없을 때 까지 가져온다.-->
Enumeration enumData = request.getParameterNames();
while(enumData.hasMoreElements()){
String name = (String)enumData.nextElement();
%>
<%= name %>
<%
}
%>
<br><br><br><br>

<!-- 피라미터 이름이 name 인 모든 피러미터 값을 Map 형식으로 가져온다 -->
<b>request.getParameterMap() 메소드 사용 </b><br><br>
<%
Map parameterMap = request.getParameterMap();
String[] nameParam = (String[])ParameterMap.get("name");
if(nameParam != null){
%>
name = <%= nameParam[0] %>
<%
}
%>
</body>
</html>