JSP - chapter02
🌹인코딩
- 알파벳과 숫자, 몇몇 기호를 제외한 나머지 글자들을 URL에 포함시키려면 인코딩이 필요함
- response.sendRedirect() 메서드를 사용하는 경우에도 마찬가지로 인코딩한 쿼리 문자열(?name=개똥이)을 사용해야 함
- Java.net.URLEncoder 클래스가 존재하고, URLEncoder.encode() 메서드를 사용하면 파라미터 값으로 사용될 문자열을 지정한 캐릭터 셋으로 (UTF-8) 인코딩할 수 있음
- 크롬, 파이어폭스는 웹 브라우저가 UTF-8로 인코딩된 주소 경로나 파라미터 값을 해당 문자로 변환해줌
- IE는 인코딩된 파라미터 값을 그대로 보여줌
🌹response.sendRedirect 인코딩 적용(1)
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
//삼항 연산자를 사용하여 request.getParameter의 null을 체크함
String id = request.getParameter("memberId")==null? "" : request.getParameter("memberId");
if(id.equals("ddit")) {
String name = "개똥이";
String encodeName = URLEncoder.encode(name,"UTF-8");
//http://localhost:8090/chapter03/login.jsp?memberId=ddit
response.sendRedirect("/chapter03/index.jsp?name=" + encodeName);
}else {
%>
<!DOCTYPE html>
<html>
<head>
<title>로그인 실패</title>
</head>
<body>
아이디가 ddit가 아닙니다.
</body>
</html>
<%
}
%>
- memberId 파라미터 지정하지 않았을 경우
- memberId 파라미터가 ddit가 아닐 경우
- memberId 파라미터가 ddit일 경우
🌹response.sendRedirect 인코딩 적용(2)
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
%>
<!DOCTYPE html>
<html>
<head>
<title>로그인 index</title>
</head>
<body>
index.jsp 페이지 입니다. <br/>
<%=name %>
</body>
</html>
출력 :
- 기본 주소 출력할 경우
- ?name=개똥이 붙여서 출력할 경우( login.jsp에서 sendRedirect해준 결과 )
🌹연습
-
registOk.jsp에서 파라미터를 받아 출력해보자.(한글처리까지)
-
출력 후에 registOk2.jsp로 redirect하여 결과를 한번 더 출력해보자.
-
1번 ) 회원가입 폼에서 입력한 데이터 보내주기
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>회원가입</title>
</head>
<body>
<form name="frm" id="frm" method="post" action="/chapter03/registOk.jsp">
아이디 : <input type="text" id="memId" name="memId"><br>
이름 : <input type="text" id="memName" name="memName"><br>
성별 : <input type="radio" id="male" name="memGu" value="1"><label for="male">남자</label>
<input type="radio" id="female" name="memGu" value="2"><label for="female">여자</label>
<br>
나이 : <select name="memAge" id="memAge">
<%for(int i=21; i<=50; i++) {%>
<option value="<%=i%>"><%=i%></option>
<%} %>
</select>
<button type="submit">등록</button>
</form>
</body>
</html>
- 2번) 회원가입 폼에 작성한 정보 출력
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String memId = request.getParameter("memId")==null?"없음":request.getParameter("memId");
String memName = request.getParameter("memName")==null?"없음":request.getParameter("memName");
String memGu = request.getParameter("memGu")==null?"없음":request.getParameter("memGu");
String memAge = request.getParameter("memAge")==null?"없음":request.getParameter("memAge");
//registOk2.jsp로 보내주기 위한 인코딩 지정해줌
memId = URLEncoder.encode(memId, "UTF-8");
memName = URLEncoder.encode(memName, "UTF-8");
memGu = URLEncoder.encode(memGu, "UTF-8");
memAge = URLEncoder.encode(memAge, "UTF-8");
response.sendRedirect("/chapter03/registOk2.jsp?memId=" +memId
+"&memName=" +memName
+ "&memGu=" + memGu
+ "&memAge=" + memAge);
%>
<!DOCTYPE html>
<html>
<head>
<title>회원가입한 정보 출력</title>
</head>
<body>
아이디 : <%=memId %><br>
이름 : <%=memName %><br>
성별 :
<!-- memGu가 1이면 남자, 2면 여자 -->
<% if(memGu.equals("1")) {%>
남자<br>
<%}else if(memGu.equals("2")){ %>
여자<br>
<%}else {%>
선택안함<br>
<%} %>
나이 : <%=memAge %>세
</body>
</html>
- 3번) 위의 정보 출력 페이지를 다시 sendRedirect한 결과 출력
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String memId = request.getParameter("memId")==null?"없음":request.getParameter("memId");
String memName = request.getParameter("memName")==null?"없음":request.getParameter("memName");
String memGu = request.getParameter("memGu")==null?"없음":request.getParameter("memGu");
String memAge = request.getParameter("memAge")==null?"없음":request.getParameter("memAge");
%>
<!DOCTYPE html>
<html>
<head>
<title>registOk.jsp를 sendRedirect</title>
</head>
<body>
아이디 : <%=memId %><br>
이름 : <%=memName %><br>
성별 :
<% if(memGu.equals("1")) {%>
남자<br>
<%}else if(memGu.equals("2")){ %>
여자<br>
<%}else {%>
선택안함<br>
<%} %>
나이 : <%=memAge %>세
</body>
</html>
- 회원 가입 폼
- registOk2.jsp 주소로 이동됨
Author And Source
이 문제에 관하여(JSP - chapter02), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@rkdwltn5/JSP-chapter021
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
//삼항 연산자를 사용하여 request.getParameter의 null을 체크함
String id = request.getParameter("memberId")==null? "" : request.getParameter("memberId");
if(id.equals("ddit")) {
String name = "개똥이";
String encodeName = URLEncoder.encode(name,"UTF-8");
//http://localhost:8090/chapter03/login.jsp?memberId=ddit
response.sendRedirect("/chapter03/index.jsp?name=" + encodeName);
}else {
%>
<!DOCTYPE html>
<html>
<head>
<title>로그인 실패</title>
</head>
<body>
아이디가 ddit가 아닙니다.
</body>
</html>
<%
}
%>
- memberId 파라미터 지정하지 않았을 경우
- memberId 파라미터가 ddit가 아닐 경우
- memberId 파라미터가 ddit일 경우
🌹response.sendRedirect 인코딩 적용(2)
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
%>
<!DOCTYPE html>
<html>
<head>
<title>로그인 index</title>
</head>
<body>
index.jsp 페이지 입니다. <br/>
<%=name %>
</body>
</html>
출력 :
- 기본 주소 출력할 경우
- ?name=개똥이 붙여서 출력할 경우( login.jsp에서 sendRedirect해준 결과 )
🌹연습
-
registOk.jsp에서 파라미터를 받아 출력해보자.(한글처리까지)
-
출력 후에 registOk2.jsp로 redirect하여 결과를 한번 더 출력해보자.
-
1번 ) 회원가입 폼에서 입력한 데이터 보내주기
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>회원가입</title>
</head>
<body>
<form name="frm" id="frm" method="post" action="/chapter03/registOk.jsp">
아이디 : <input type="text" id="memId" name="memId"><br>
이름 : <input type="text" id="memName" name="memName"><br>
성별 : <input type="radio" id="male" name="memGu" value="1"><label for="male">남자</label>
<input type="radio" id="female" name="memGu" value="2"><label for="female">여자</label>
<br>
나이 : <select name="memAge" id="memAge">
<%for(int i=21; i<=50; i++) {%>
<option value="<%=i%>"><%=i%></option>
<%} %>
</select>
<button type="submit">등록</button>
</form>
</body>
</html>
- 2번) 회원가입 폼에 작성한 정보 출력
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String memId = request.getParameter("memId")==null?"없음":request.getParameter("memId");
String memName = request.getParameter("memName")==null?"없음":request.getParameter("memName");
String memGu = request.getParameter("memGu")==null?"없음":request.getParameter("memGu");
String memAge = request.getParameter("memAge")==null?"없음":request.getParameter("memAge");
//registOk2.jsp로 보내주기 위한 인코딩 지정해줌
memId = URLEncoder.encode(memId, "UTF-8");
memName = URLEncoder.encode(memName, "UTF-8");
memGu = URLEncoder.encode(memGu, "UTF-8");
memAge = URLEncoder.encode(memAge, "UTF-8");
response.sendRedirect("/chapter03/registOk2.jsp?memId=" +memId
+"&memName=" +memName
+ "&memGu=" + memGu
+ "&memAge=" + memAge);
%>
<!DOCTYPE html>
<html>
<head>
<title>회원가입한 정보 출력</title>
</head>
<body>
아이디 : <%=memId %><br>
이름 : <%=memName %><br>
성별 :
<!-- memGu가 1이면 남자, 2면 여자 -->
<% if(memGu.equals("1")) {%>
남자<br>
<%}else if(memGu.equals("2")){ %>
여자<br>
<%}else {%>
선택안함<br>
<%} %>
나이 : <%=memAge %>세
</body>
</html>
- 3번) 위의 정보 출력 페이지를 다시 sendRedirect한 결과 출력
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String memId = request.getParameter("memId")==null?"없음":request.getParameter("memId");
String memName = request.getParameter("memName")==null?"없음":request.getParameter("memName");
String memGu = request.getParameter("memGu")==null?"없음":request.getParameter("memGu");
String memAge = request.getParameter("memAge")==null?"없음":request.getParameter("memAge");
%>
<!DOCTYPE html>
<html>
<head>
<title>registOk.jsp를 sendRedirect</title>
</head>
<body>
아이디 : <%=memId %><br>
이름 : <%=memName %><br>
성별 :
<% if(memGu.equals("1")) {%>
남자<br>
<%}else if(memGu.equals("2")){ %>
여자<br>
<%}else {%>
선택안함<br>
<%} %>
나이 : <%=memAge %>세
</body>
</html>
- 회원 가입 폼
- registOk2.jsp 주소로 이동됨
Author And Source
이 문제에 관하여(JSP - chapter02), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@rkdwltn5/JSP-chapter021
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
%>
<!DOCTYPE html>
<html>
<head>
<title>로그인 index</title>
</head>
<body>
index.jsp 페이지 입니다. <br/>
<%=name %>
</body>
</html>
출력 :
- 기본 주소 출력할 경우
- ?name=개똥이 붙여서 출력할 경우( login.jsp에서 sendRedirect해준 결과 )
-
registOk.jsp에서 파라미터를 받아 출력해보자.(한글처리까지)
-
출력 후에 registOk2.jsp로 redirect하여 결과를 한번 더 출력해보자.
-
1번 ) 회원가입 폼에서 입력한 데이터 보내주기
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>회원가입</title>
</head>
<body>
<form name="frm" id="frm" method="post" action="/chapter03/registOk.jsp">
아이디 : <input type="text" id="memId" name="memId"><br>
이름 : <input type="text" id="memName" name="memName"><br>
성별 : <input type="radio" id="male" name="memGu" value="1"><label for="male">남자</label>
<input type="radio" id="female" name="memGu" value="2"><label for="female">여자</label>
<br>
나이 : <select name="memAge" id="memAge">
<%for(int i=21; i<=50; i++) {%>
<option value="<%=i%>"><%=i%></option>
<%} %>
</select>
<button type="submit">등록</button>
</form>
</body>
</html>
- 2번) 회원가입 폼에 작성한 정보 출력
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String memId = request.getParameter("memId")==null?"없음":request.getParameter("memId");
String memName = request.getParameter("memName")==null?"없음":request.getParameter("memName");
String memGu = request.getParameter("memGu")==null?"없음":request.getParameter("memGu");
String memAge = request.getParameter("memAge")==null?"없음":request.getParameter("memAge");
//registOk2.jsp로 보내주기 위한 인코딩 지정해줌
memId = URLEncoder.encode(memId, "UTF-8");
memName = URLEncoder.encode(memName, "UTF-8");
memGu = URLEncoder.encode(memGu, "UTF-8");
memAge = URLEncoder.encode(memAge, "UTF-8");
response.sendRedirect("/chapter03/registOk2.jsp?memId=" +memId
+"&memName=" +memName
+ "&memGu=" + memGu
+ "&memAge=" + memAge);
%>
<!DOCTYPE html>
<html>
<head>
<title>회원가입한 정보 출력</title>
</head>
<body>
아이디 : <%=memId %><br>
이름 : <%=memName %><br>
성별 :
<!-- memGu가 1이면 남자, 2면 여자 -->
<% if(memGu.equals("1")) {%>
남자<br>
<%}else if(memGu.equals("2")){ %>
여자<br>
<%}else {%>
선택안함<br>
<%} %>
나이 : <%=memAge %>세
</body>
</html>
- 3번) 위의 정보 출력 페이지를 다시 sendRedirect한 결과 출력
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String memId = request.getParameter("memId")==null?"없음":request.getParameter("memId");
String memName = request.getParameter("memName")==null?"없음":request.getParameter("memName");
String memGu = request.getParameter("memGu")==null?"없음":request.getParameter("memGu");
String memAge = request.getParameter("memAge")==null?"없음":request.getParameter("memAge");
%>
<!DOCTYPE html>
<html>
<head>
<title>registOk.jsp를 sendRedirect</title>
</head>
<body>
아이디 : <%=memId %><br>
이름 : <%=memName %><br>
성별 :
<% if(memGu.equals("1")) {%>
남자<br>
<%}else if(memGu.equals("2")){ %>
여자<br>
<%}else {%>
선택안함<br>
<%} %>
나이 : <%=memAge %>세
</body>
</html>
- 회원 가입 폼
- registOk2.jsp 주소로 이동됨
Author And Source
이 문제에 관하여(JSP - chapter02), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rkdwltn5/JSP-chapter021저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)