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>
출력 :
- 이름 입력하기 전
- 이름 입력 후 이동 버튼 클릭(name : <%=name%>으로 출력한 경우 - 디코딩 안시킴)
- 이름 입력 후 이동 버튼 클릭(name : <%=URLDecoder.decode(name, "UTF-8") %>으로 출력한 경우 - 디코딩 시킴)
폼생성 및 결과 출력
<%@ 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>
출력 :
- 폼 화면
- 이름,주소 입력 & 좋아하는 동물 선택
- 전송 버튼 클릭 (좋아하는 동물 4개 다 선택했을 경우)
Author And Source
이 문제에 관하여(JSP - chapter01(3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@rkdwltn5/JSP-chapter013
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<%@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>
출력 :
- 이름 입력하기 전
- 이름 입력 후 이동 버튼 클릭(name : <%=name%>으로 출력한 경우 - 디코딩 안시킴)
- 이름 입력 후 이동 버튼 클릭(name : <%=URLDecoder.decode(name, "UTF-8") %>으로 출력한 경우 - 디코딩 시킴)
<%@ 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>
출력 :
- 폼 화면
- 이름,주소 입력 & 좋아하는 동물 선택
- 전송 버튼 클릭 (좋아하는 동물 4개 다 선택했을 경우)
Author And Source
이 문제에 관하여(JSP - chapter01(3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rkdwltn5/JSP-chapter013저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)