[Servlet] 2. 개인정보창 만들기

Servlet을 통해서 개인정보창 만들기 

(이름,아이디,비번,성별, 메일 (광고,공지,배송), 직업(유치원생, 회사원, 대학생), 제출버튼)

 

 

Person.html : 기본적인 개인정보를 각각의 input태그를 통해서 입력받아서 form태그를 통해 doget메서드로 전송

PersonServlet.java :  전송받은 값들을 변수에 저장하고, 브라우저에 출력한다.  이때, checkbox와 select와 radio중에서checkbox는 배열로써 저장한다. radio도 한개만 선택, select도 한개만선택. (name을 같게 해주면 단일선택??, 쇼핑몰페이지에서 결재카드쪽에서 다른 if방식도 있음)


 

우선, 위의 내용과 같이 기본적인 틀을 만들어야겟지요?

 

기본적인 틀을 통해서 값을 입력하도록 할거에요. 

 

입력된 값은 Servlet에서 출력되겟지요?!

 

우선 Person.html입니다. 

 

여기서 중요한 것은 <form action=""></form>에서 이동하고자하는 페이지의 주소를 제대로 적어줘야한다.

 

또한, form태그에서 생략되있으면 메서드방식은 doGet메서드방식이 된다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</head>
<body>
    <h1> 개인정보창 </h1>
    <form action="/Servletex/person">
    이름: <input type='text' name='nickname'><br>
    아이디: <input type='text' name='id'><br>
    비번: <input type="password" name='pw'><br>
    성별: 
    <input type="radio" name='gender'>남자 
    <input type="radio" name='gender'>여자
    메일: <br>
    <input type='checkbox' name='mail' value='광고'> 광고 
    <input type='checkbox' name='mail' value='공지'> 공지
    <input type='checkbox' name='mail' value='배송'> 배송<br>
    직업: <br>    <!-- value는 내용값, 그옆에 글은 보여지는 값 -->
    <select name='job'>
    <option> 유치원생 </option>
    <option> 회사원 </option>
    <option> 대학생 </option>
    </select><br>
    <input type='submit' value='제출'>
    </form>
</body>
</html>
 

더보기

<결과보기>

 

이제,  PersonServlet.java (Servlet)입니다.

 

여기서 중요한 것은 checkbox와 radio와 select중에서 다중선택의 checkboxform에서 전달받은 값을 변수로 저장할때, 배열로써 저장해야한다. 

 

필수로 해줘야하는 페이지인코딩은 : 

response.setContentType("text/html; charset=utf-8");

 

doPost메서드에서 form을 통해 전달받는 값은 별도인코딩 : request.setCharacterEncoding("utf-8");

 

PrintWriter out = response.getWriter(); 출력객체 out을 생성한다.

 

 

 

※ 또한, 추후에 배울 JSP와 Servlet과의 차이중에는 

- Servlet에서는 객체들을 직접 만들어써야하지만,

- JSP에서는 내장객체들이 거의 존재한다. 써먹기만 하면됩니다.

 

※ 또, Servlet에서 JSP태그를 사용하려면, out.println("<h1> 테스트문자열 </h1>")와 같이 따옴표안에 작성한다.

 

 

따라서, 앞으로의 Servlet은 기본적으로 

 

(1) form을 통해 전송받은 값을 변수에 저장

(2) 인코딩

(3) 출력객체 생성 => 브라우저 출력

 

 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
public class PersonalInfoServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        request.setCharacterEncoding("utf-8");
        String nickname= request.getParameter("nickname");
        String id= request.getParameter("id");
        String pw= request.getParameter("pw");
        String gender= request.getParameter("gender");
        String[] mail= request.getParameterValues("mail");
        String job= request.getParameter("job");
 
        response.setContentType("text/html; charset=utf-8");
        PrintWriter out = response.getWriter();
        out.println("이름:"+nickname +"<br>"
                + "아이디: "+id +"<br>"
                + "비번: "+pw +"<br>"
                + "성별: "+gender +"<br>"
                + "직업: "+job +"<br>");
        for(int i=0; i<mail.length;i++){
            out.println("메일수신여부: "+mail[i] +"<br>");
        }
    }
}
 
 
 
더보기

<코드결과>