학습(구)/JSP

요청 파라미터 다루기

잉아당 2020. 8. 31. 22:20
728x90

요청 파라미터를 사용하기 위해서 request 객체를 사용합니다.

우선적으로 인코딩과 디코딩의 기본 개념에 대해서 알아보겠습니다.

 

인코딩을 이용해서 문서를 저장한 후 인코딩 때 사용했던 코드를 사용해서 디코딩 해야 원래의 문서로 추출이 됩니다.

 

JSP에서의 인코딩과 디코딩

대상 인코딩 코드 지정 디코딩 코드 지정
JSP 페이지 JSP 페이지 작성시 편집기에서 지정 page 디렉티브의 pageEncoding 속성으로 지정
JSP가 생성하는 HTML 문서 page 디렉티브의 contentType 속성으로 지정 브라우저가 응답 데이터의 헤더 정보를 사용하여 자동 지정
요청 파라미터 브라우저의 요청 장소 및 요청 방식에 따라 자동 지정 JSP 페이지에서의 request 객체를 사용하여 지정
페이지 파라미터 전잘하는 페이지에서 request 객체를 사용하여 지정 전달받는 페이지에서는 동일 reuqest 객체를 사용하기 때문에 별도의 지정이 필요하지 않음

 

이 처럼 인코딩과 디코딩은 매우 중요한 역할을 하며 대부분 utf-8 코드로 통일되어 사용하고 있습니다.

 

요청파라미터의 사용

<%-- 인코딩 설정 --%> 
<%@ page contentType = "text/html; charset=utf-8"%> <html>
<head><title>폼 페이지</title></head>
<body>
<form action="/chap03/readParameter.jsp" method="post">
이름: <input type="text" name="name" size="10"> <br> 
학번: <input type="text" name="id" size="20"> <br> 
수강 교과목:
<input type="checkbox" name="subject" value="java">자바 
<input type="checkbox" name="subject" value="JSP">JSP 
<input type="checkbox" name="subject" value="Spring">스프링
<br>
<%-- form 엘리먼트에 포함되는 input 엘리먼트들을 요청 파라미터로 만들어 --%> 
<%-- 일괄적으로 action 페이지에 전달한다. --%>
<input type="submit" value="입력완료">
</form>
</body>
</html>

form페이지 결과

<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@ page import = "java.util.Enumeration" %>
<%@ page import = "java.util.Map" %>
<%
    request.setCharacterEncoding("utf-8");
%>

<html>
<head><title>요청 파라미터 읽기 </title></head>
<body>
request.getParameter() 메서드 사용 <br>
이름 파라미터 = <%= request.getParameter("name") %><br>
학번 파라미터 = <%= request.getParameter("id") %>
<p>
request.getParameterValues() 메서드 사용 <br>
<%
    String[] values = request.getParameterValues("subject");
    if(values != null){
        for (int i = 0 ; i< values.length; i++){
%>
    <%= values[i] %> <br>
<%
        }
    }
%>
<p>
request.getParameterNames() 메서드 사용<br>
<%
    Enumeration paramEnum = request.getParameterNames();
    while(paramEnum.hasMoreElements()){
        String name = (String)paramEnum.nextElement();
%>
    <%= name %><br>
<%
    }
%>
<p>
request.getParameterMap() 메서드 사용 <br>
<%
    Map parametermap = request.getParameterMap();
    String[] subjectParam = (String[])parametermap.get("subject");
    if(subjectParam != null){
%>
수강 교과목 1 : <%= subjectParam[0] %> <br>
<%
    }
%>
</body>
</html>

위 코드의 결과

파라미터 읽기 주요 메서드 반환 타입 기능
getParameters(String) String 매개변수로 지정한 파라미터의 값을 구한다.
getParameterValues(String) String[] 매개변수로 지정한 파라미터의 모든 값을 구한다.
getParameterNames() Enumeration 파라미터의 이름 목록을 구한다.
getParameterMap() Map <파라미터 이름, 파라미터 값>으로 구성되는 Map을 구한다.

 

'학습(구) > JSP' 카테고리의 다른 글

form페이지와 action 페이지  (0) 2020.09.03
페이지 출력  (0) 2020.08.31
JSP페이지의 입력  (0) 2020.07.29
JSP 페이지 구성 요소  (0) 2020.07.24
JSP 페이지의 기본 개념  (0) 2020.07.24