Post방식을 이용하여 회원가입 form 제출하기.
WebContent에 L02SignupForm.jsp 생성.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>회원가입 form</title> </head> <body> <h1>L02SignupServlet(/signup)에 회원가입 양식을 제출하자.</h1> <form action="./signup" method="post"> <p> <label>会員 ID:</label> <input type="text" name="id" value="jsp"> </p> <p> <label>パスワード:</label> <input type="password" name="pass" value="admin1234"> </p> <p> <label>性別:</label> <input type="radio" name="gender" value="0" checked>男 <input type="radio" name="gender" value="1">女 <!-- type="radio"는 name 속성의 값이 같은 것은 하나만 선택할 수 있다. --> </p> <p> <label>職業:</label> <input type="checkbox" name="job" value="学生" checked>学生 <input type="checkbox" name="job" value="公務員">公務員 <input type="checkbox" name="job" value="軍人">軍人 <input type="checkbox" name="job" value="講師">講師 <input type="checkbox" name="job" value="サービス業">サービス業 <input type="checkbox" name="job" value="プログラマー" checked>プログラマー <!-- checkbox는 중복선택 가능 파라미터 배열로 넘어간다. getParameterValues로 받는다. --> </p> <button type="submit">提出</button> </form> </body> </html> | cs |
L03ServletMethod 프로젝트의 src/com.jsp.method에
L02SignupServlet 서블릿을 생성.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | package com.jsp.method; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/signup") public class L02SignupServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //post로 통신할 때 파라미터가 header정보에 담기면서 charset이 바뀐다. //그래서 request 객체에 characterEncoding을 바꿔야한다. response.setContentType("text/html; charset=UTF-8"); String[] jobs = request.getParameterValues("job"); String id = request.getParameter("id"); String pass = request.getParameter("pass"); String gender = request.getParameter("gender"); if(gender != null){ int int_gender = Integer.parseInt(gender); if(int_gender==0){ gender = "男子"; }else{ gender = "女子"; } } PrintWriter out = response.getWriter(); out.print("<html><body>"); out.print("<h1>"); out.print("入力した情報は"+"<hr>"); out.print("</h1>"); out.print("<string>会員 ID : </strong>"+id+"<br>"); out.print("<b>パスワード : </b>"+pass+"<br>"); out.print("<strong>性別 : </strong>"+gender+"<br>"); out.print("<b>職業 : </b>"); if(jobs == null){ out.print("無職"); }else{ for(int i=0;i<jobs.length;i++){ if((i)==(jobs.length-1)){ out.print(jobs[i]); }else{ out.print(jobs[i]+" / "); } } } out.print("</body></html>"); } } | cs |
위에서 만든 양식에 입력된 값을 파라미터로 받아 출력해 보았다.
성별을 선택하는 데에 사용된 radio 버튼은 name 속성이 같은 값 끼리는 하나만 선택이 가능하다.
직업을 선택하는 데에 사용된 checkbox 버튼은 중복 선택이 가능하며, 배열로 값을 넘긴다.
배열값을 파라미터로 받을때는 getParameterValues() 를 사용한다.
'JSP > 기본다지기' 카테고리의 다른 글
JSP 3일차 필기 (jsp 데이터타입, 임포트) (0) | 2016.10.20 |
---|---|
JSP 3일차 필기 (서블릿의 생명주기) (0) | 2016.10.20 |
JSP 2일차 필기 (get방식, post방식으로 호출하기) (0) | 2016.10.19 |
JSP 2일차 필기 (JSP 들어가기) (0) | 2016.10.19 |
JSP 1일차 필기 (서블릿의 이해) (0) | 2016.10.18 |