반응형
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
table td {border : 1px solid black; padding : 5px}
</style>
<title>Insert title here</title>
</head>
<body>
<div>
<H2> request 테스트 폼</H2>
<HR>
<form name = form1 method = post action = "request_result.jsp">
<table>
<tr>
<td>이름</td>
<td><input type = text size = 10 name = username></td>
</tr>
<tr>
<td>직업</td>
<td>
<select name = job>
<option selected> 무직</option>
<option>회사원</option>
<option>전문직</option>
</select>
</td>
</tr>
<tr>
<td> 지역 </td>
<td>
<input type = "radio" name ="local" value = "서울"> 서울
<input type = "radio" name ="local" value = "인천"> 인천 <br>
</td>
</tr>
<tr>
<td>관심분야</td>
<td>
<input type =checkbox name = favorite value ="정치">정치
<input type =checkbox name = favorite value ="사회">사회
<input type =checkbox name = favorite value ="정보통신">정보통신
</td>
</tr>
<tr>
<td colspan = 2 >
<input type = submit value = "확인"><input type = reset value = "취소">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<%-- 내장 객체(특별한 상황에 쓰이는)이기 때문에 객체 생성 없이 그냥 메소드 사용 가능 --%>
<%-- request된 것들이 한글이라면 받을 때 문제가 안 생기도록 utf-8로 설정 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align = "center">
<H2>request 테스트 결과 - 1</H2>
<HR>
<table border = 1 cellspacing ="1" cellpadding = "5">
<tr>
<td>이름</td>
<td><%=request.getParameter("username") %>
</tr>
<tr>
<td>직업</td>
<td><%= request.getParameter("job") %></td>
</tr>
<tr>
<td>지역</td>
<td>
<%
String temp[] = request.getParameterValues("local");
out.println(temp[0]);
%></td>
</tr>
<tr>
<td>관심분야</td>
<td>
<%
String favorites[] = request.getParameterValues("favorite");
//getParameterValues 문자열을 반환
for (int i = 0 ; i < favorites.length; i++){
out.println(favorites[i]+"<BR>");
}
%>
</td>
</tr>
</table>
<HR>
<H2> request 테스트 결과 - 2 </H2>
<table border = 0 >
<tr>
<td>
1. 클라이언트 IP 주소 : <%= request.getRemoteAddr() %> <BR> <%-- IP주소 --%>
2. 요청 메서드 : <%= request.getMethod() %> <BR> <%-- 어떤 방식으로 보내는지 Post get --%>
<% Cookie cookie[] = request.getCookies(); %>
3. <%= cookie[0].getName() %>에 설정된 쿠키값 : <%= cookie[0].getValue() %><BR>
4. 프로토콜 : <%= request.getProtocol() %>
</td>
</tr>
</table>
</div>
</body>
</html>
<form name = form1 method = post action = "request_result.jsp">
... <input type = submit value = "확인">
form 태그와 input태그 type이 submit을 이용해 form태그 안에 정보를 보낼 수 있습니다.
form 태그에 method로 post방식으로 보낼지 get방식으로 보낼지 정할 수 있습니다.
post방식과 get방식은 따로 포스팅 했습니다.
action은 어디 페이지로 연결할지에 대해서 적는 것입니다.
확인 버튼을 누르면 request_result.jsp페이지로 정보와 같이 넘어가게 되는 것이죠
주의할 게 있는데 post방식으로 보냈을 때 넘어가는 페이지에 이러한 걸 적어야합니다.
<% request.setCharacterEncoding("UTF-8"); %>
그래야 한글이 깨지지 않고 넘어갑니다.
그러면 어떤게 어떤 정보인지 어떻게 알 수 있을까요?
그건 name을 통해 구분이 가능합니다.
<input type = text size = 10 name = username>
여기에서 보면 text를 적는 곳에는 username이라는 곳에 값이 저장되어 넘어간다고 생각하면 됩니다.
request.getParameter("name명")
그러면 action에 연결된 페이지에서 request.getParameter("username") 이런식으로 받을 수 있습니다.
<input type = "radio" name ="local" value = "서울"> 서울
<input type = "radio" name ="local" value = "인천"> 인천 <br>
라디오버튼에 문제가 생기는데 어떤 라디오버튼이 눌렸는지 알아야 request.getParameter로 가져올 수 있는데
어떤 버튼을 누를지는 선택이니까 이 같은 경우는 name을 똑같이 정하고 value라는 걸 설정해
local에 "서울" 이라는 값 또는 "인천"이라는 값이 들어간 겁니다.
<input type =checkbox name = favorite value ="정치">정치
<input type =checkbox name = favorite value ="사회">사회
<input type =checkbox name = favorite value ="정보통신">정보통신
체크박스의 경우는 여러개의 값이 들어갈 수 있습니다.
그래서 name이 같은 경우는 배열로 값이 들어가게 되는 것이죠
<%
String favorites[] = request.getParameterValues("favorite");
//getParameterValues 문자열을 반환
for (int i = 0 ; i < favorites.length; i++){
out.println(favorites[i]+"<BR>");
}
%>
getParameterValues("name명")
이용해 배열로 받고 출력할 때는 인덱스로 접근해서 출력하면 됩니다.
반응형
'[Java] > [JSP, Servlet]' 카테고리의 다른 글
[JSP, Servlet] include file, <jsp:include page> (0) | 2021.07.29 |
---|---|
[JSP, Servlet] forward, sendRedirect (0) | 2021.07.28 |
[JSP, Servlet] 버퍼 (buffer) (0) | 2021.07.28 |
[JSP, Servlet] out.println() (0) | 2021.07.28 |
[JSP, Servlet] 스크립트 태그 (0) | 2021.07.27 |