카테고리 없음
[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>