JSP - chapter01(3)
パラメータ値の符号化/復号化 <%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name")== null?"없음":request.getParameter("name");
%>
<!DOCTYPE html>
<html>
<head>
<title>파라미터 값의 인코딩/디코딩</title>
<script type="text/javascript">
function goURL() {
var varName = document.getElementById("name");
var loc = "/chapter02/testEncoding.jsp?name=" + encodeURI(encodeURIComponent(varName.value));
/* var loc = "/chapter02/testEncoding.jsp?name=" + encodeURI(varName.value); */
location.href = loc;
}
</script>
</head>
<body>
<h2>파라미터 값의 인코딩/디코딩</h2>
name : <%=URLDecoder.decode(name, "UTF-8") %>
<%-- name : <%=name%> --%>
<br/>
<input type="text" name="name" id="name" value="" placeholder="이름을 입력하세요.">
<input type="button" value="이동" onclick="goURL()">
<br>
<a href="/chapter02/testEncoding.jsp?name=<%=URLEncoder.encode(name, "UTF-8")%>">이동</a>
</body>
</html>
出力:
入力名
<%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name")== null?"없음":request.getParameter("name");
%>
<!DOCTYPE html>
<html>
<head>
<title>파라미터 값의 인코딩/디코딩</title>
<script type="text/javascript">
function goURL() {
var varName = document.getElementById("name");
var loc = "/chapter02/testEncoding.jsp?name=" + encodeURI(encodeURIComponent(varName.value));
/* var loc = "/chapter02/testEncoding.jsp?name=" + encodeURI(varName.value); */
location.href = loc;
}
</script>
</head>
<body>
<h2>파라미터 값의 인코딩/디코딩</h2>
name : <%=URLDecoder.decode(name, "UTF-8") %>
<%-- name : <%=name%> --%>
<br/>
<input type="text" name="name" id="name" value="" placeholder="이름을 입력하세요.">
<input type="button" value="이동" onclick="goURL()">
<br>
<a href="/chapter02/testEncoding.jsp?name=<%=URLEncoder.encode(name, "UTF-8")%>">이동</a>
</body>
</html>
フォームの生成と結果の出力 <%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>폼 생성</title>
</head>
<body>
<form method="post" action="/chapter02/viewParameter.jsp">
이름 : <input type="text" name="name" size="10"><br>
주소 : <input type="text" name="address" size="30"><br>
좋아하는 동물 : <input type="checkbox" name="pet" value="camel" id="camel">
<label for="camel">낙타</label>
<input type="checkbox" name="pet" value="cat" id="cat">
<label for="cat">고양이</label>
<input type="checkbox" name="pet" value="dog" id="dog">
<label for="dog">강아지</label>
<input type="checkbox" name="pet" value="fox" id="fox">
<label for="fox">여우</label> <br>
<input type="submit" value="전송" style="cursor: pointer;" alt="전송" title="전송">
</form>
</body>
</html>
<%@page import="java.util.Map"%>
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
//요청 파라미터의 캐릭터 인코딩을 UTF-8로 지정 (한글깨짐방지)
request.setCharacterEncoding("UTF-8");
%>
<!DOCTYPE html>
<html>
<head>
<title>요청 파라미터 출력</title>
</head>
<body>
<!-- 이름, 주소의 값을 출력 -->
<!-- 이름을 적지 않았다면 빈 문자열("")이 파라미터 값으로 전달됨 -->
name 파라미터 = <%=request.getParameter("name")%><br />
address 파라미터 = <%=request.getParameter("address")%><br />
<%
//좋아하는 동물(배열 이기 때문에 배열로 받아줌)
//이름이 pet인 파라미터의 값 목록을 배열(String[])로 리턴함.
//체크박스를 아무것도 선택하지 않으면 웹 브라우저는 해당 이름의 파라미터를 전송하지 않음*******
String[] values = request.getParameterValues("pet");
if(values!=null){
for(int i=0;i<values.length;i++){//values.length : 체크된 개수
out.println(values[i]); //value를 출력
}
}
%>
<p />
<%
//파라미터 이름을 출력해주는 기본 형태.(Elements를 다룸)
Enumeration paramEnum = request.getParameterNames();
while(paramEnum.hasMoreElements()){ //요소가 있을 때만 반복
String name = (String)paramEnum.nextElement();
out.println(name+"<br />");
}
%>
<p />
<%
//파라미터 이름과 파라미터 값을 리턴.
//이 맵에는 <파라미터 이름, 파라미터 값 배열>이 쌍을 이루고 있음.
Map parameterMap = request.getParameterMap();
String[] nameParam = (String[])parameterMap.get("pet"); //name="address"
if(nameParam!=null){
out.print("name = " + nameParam[0] + "<br />"); //name, address, pet (1개 선택시)
out.print("name = " + nameParam[1] + "<br />"); //pet (2개 선택시)
out.print("name = " + nameParam[2] + "<br />"); //pet (3개 선택시)
out.print("name = " + nameParam[3] + "<br />"); //pet (4개 선택시)
}
%>
</body>
</html>
出力:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>폼 생성</title>
</head>
<body>
<form method="post" action="/chapter02/viewParameter.jsp">
이름 : <input type="text" name="name" size="10"><br>
주소 : <input type="text" name="address" size="30"><br>
좋아하는 동물 : <input type="checkbox" name="pet" value="camel" id="camel">
<label for="camel">낙타</label>
<input type="checkbox" name="pet" value="cat" id="cat">
<label for="cat">고양이</label>
<input type="checkbox" name="pet" value="dog" id="dog">
<label for="dog">강아지</label>
<input type="checkbox" name="pet" value="fox" id="fox">
<label for="fox">여우</label> <br>
<input type="submit" value="전송" style="cursor: pointer;" alt="전송" title="전송">
</form>
</body>
</html>
<%@page import="java.util.Map"%>
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
//요청 파라미터의 캐릭터 인코딩을 UTF-8로 지정 (한글깨짐방지)
request.setCharacterEncoding("UTF-8");
%>
<!DOCTYPE html>
<html>
<head>
<title>요청 파라미터 출력</title>
</head>
<body>
<!-- 이름, 주소의 값을 출력 -->
<!-- 이름을 적지 않았다면 빈 문자열("")이 파라미터 값으로 전달됨 -->
name 파라미터 = <%=request.getParameter("name")%><br />
address 파라미터 = <%=request.getParameter("address")%><br />
<%
//좋아하는 동물(배열 이기 때문에 배열로 받아줌)
//이름이 pet인 파라미터의 값 목록을 배열(String[])로 리턴함.
//체크박스를 아무것도 선택하지 않으면 웹 브라우저는 해당 이름의 파라미터를 전송하지 않음*******
String[] values = request.getParameterValues("pet");
if(values!=null){
for(int i=0;i<values.length;i++){//values.length : 체크된 개수
out.println(values[i]); //value를 출력
}
}
%>
<p />
<%
//파라미터 이름을 출력해주는 기본 형태.(Elements를 다룸)
Enumeration paramEnum = request.getParameterNames();
while(paramEnum.hasMoreElements()){ //요소가 있을 때만 반복
String name = (String)paramEnum.nextElement();
out.println(name+"<br />");
}
%>
<p />
<%
//파라미터 이름과 파라미터 값을 리턴.
//이 맵에는 <파라미터 이름, 파라미터 값 배열>이 쌍을 이루고 있음.
Map parameterMap = request.getParameterMap();
String[] nameParam = (String[])parameterMap.get("pet"); //name="address"
if(nameParam!=null){
out.print("name = " + nameParam[0] + "<br />"); //name, address, pet (1개 선택시)
out.print("name = " + nameParam[1] + "<br />"); //pet (2개 선택시)
out.print("name = " + nameParam[2] + "<br />"); //pet (3개 선택시)
out.print("name = " + nameParam[3] + "<br />"); //pet (4개 선택시)
}
%>
</body>
</html>
Reference
この問題について(JSP - chapter01(3)), 我々は、より多くの情報をここで見つけました https://velog.io/@rkdwltn5/JSP-chapter013テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol