카테고리 없음

[48일] jsp (9) - request 내부 객체

ewok 2022. 10. 5. 13:00

request는 사용자가 요청한 모든 정보를 관리하는 객체이다.

 

사용자가 입력한 정보를 개별적으로 가져올 때

request.getParameter("") 메소드
예) <input type="text" name="uname">
request.getParameter("uname") 사용자가 입력한 uname값 가져옴

06_form.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>06_form.jsp</title>
</head>
<body>
	<h3>* 성적 입력 *</h3>
	<form name="sungjukfrm" id="sungjukfrm" method="get" action="06_ok.jsp">
		이름:<input type="text" name="uname" id="uname" size="10" maxlength="20" placeholder="이름" required> 
		<hr>
		국어:<input type="number" name="kor" id="kor" size="5" min="0" max="100">
		<hr>
		영어:<input type="number" name="eng" id="eng" size="5" min="0" max="100">
		<hr>
		수학:<input type="number" name="mat" id="mat" size="5" min="0" max="100">
	  	<hr>
	  	<input type="submit" value="전송">
	  	<input type="reset"  value="취소">
	</form>

</body>
</html>

 

06_ok.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>06_ok.jsp</title>
</head>
<body>
	<h3>* 성적 결과 *</h3>
<%
	out.print(request.getParameter("uname"));
	out.print("<hr>");
	out.print(request.getParameter("kor"));
	out.print("<hr>");
	out.print(request.getParameter("eng"));
	out.print("<hr>");
	out.print(request.getParameter("mat"));
	out.print("<hr>");
%>

</body>
</html>

 

06_form.jsp를 서버에서 실행시켜보자

여기에 각각 데이터를 입력하고 전송을 누르면

06_ok.jsp로 이동한다.

 

URL을 살펴보면

?를 기준으로 ? 뒤의 값을 ? 앞의 06_ok.jsp에 전달해준다는 것이다. 이는 전송방식을 get으로 해서 그렇다. 만약 중요한 정보가 있다면 get을 사용할 경우 값들이 다 노출되니 다른 방식을 사용해야 한다.

 

 

이번엔는 06_form.jsp에서 전송방식을 post로 변경하여 결과를 확인해보자

06_form.jsp

<form name="sungjukfrm" id="sungjukfrm" method="post" action="06_ok.jsp">

post로 전송방식을 변경하였더니 한글이 깨진다. 한글이 깨지는 것을 막기 위해 인코딩 작업을 해줘야 한다.

//한글 인코딩
request.setCharacterEncoding("UTF-8");    //조합형
//request.setCharacterEncoding("EUC-KR"); //완성형

 

인코딩 작업 후 평균까지 구해서 출력해보자

 

06_ok.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>06_ok.jsp</title>
</head>
<body>
	<h3>* 성적 결과 *</h3>
<%
 	//한글 인코딩
 	request.setCharacterEncoding("UTF-8");    //조합형
 	
 	//사용자가 입력 요청한 정보를 개별적으로 가져오기
 	String uname = request.getParameter("uname").trim();
 	int kor = Integer.parseInt(request.getParameter("kor").trim());
 	int eng = Integer.parseInt(request.getParameter("eng").trim());
 	int mat = Integer.parseInt(request.getParameter("mat").trim());
 	int aver=(kor+eng+mat)/3; 	 	
%>

	<!-- 성적결과 테이블에 출력 -->
	<div>
		<table>
		<tr>
			<th>이름</th>
			<td><%=uname%></td>
		</tr>
		<tr>
			<th>국어</th>
			<td><%=kor%></td>
		</tr>
		<tr>
			<th>영어</th>
			<td><%=eng%></td>
		</tr>
		<tr>
			<th>수학</th>
			<td><%=mat%></td>
		</tr>
		<tr>
			<th>평균</th>
			<td><%=aver%></td>
		</tr>						
		</table>
	</div>

</body>
</html>