본문 바로가기
2019/JSP Servlet

jsp servlet form을 post 방식으로 전송하기

by SOLYI 2020. 1. 3.

1.  myForm.html 을 생성하여 body부분에 form태그를 작성한다. (css는 임의로 설정)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form method="post" action="result">
    <ul>
        <li><label for="id">아이디</label>
            <input type="text" name="id" id="id">    </li>
            
        <li><label for="pw">패스워드</label>
            <input type="password" name="pw" id="pw">    </li>
            
        <li><label for="name">이름</label>
            <input type="text" name="name" id="name">    </li>
            
        <li><label for="gender">성별</label>
            <label for="m">남자</label>
            <input type="radio" name="gender" id="m" value="남자">
            <label for="w">여자</label>
            <input type="radio" name="gender" id="w" value="여자" checked>    </li>
        <li>
            <input type="submit" value="전송">
            <input type="reset" value="취소"> </li>
    </ul>
</form>
 

2.  생성된 form 을 확인하면 다음과 같다.

3.  위 form태그에서 method를 post로 잡아주었으므로 doPost 메서드에 체크하여 formResult 서블릿 파일을 생성한다.

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
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
                            throws ServletException, IOException {
    //doPost가 제대로 실행되는지 console 에서 확인하기 위한 print문
    System.out.println("post");
    
    //인코딩으로 인한 한글 깨짐을 방지하기 위하여 아래와 같이 설정한다.
    request.setCharacterEncoding("utf-8"); 
    
 
    //myForm.html에서 작성한 id, pw, 이름, 성별은
    //request.getParameter() 를 이용해 가져올 수 있다.
    String id=request.getParameter("id");
    String pw=request.getParameter("pw");
    String name=request.getParameter("name");
    String gender=request.getParameter("gender");
    
    //아래 텍스트들이 html로 인식 되도록 컨텐트 타입을 바꿔주는 작업이 필요.
    response.setContentType("text/html; charset=utf-8");
    
    //서블릿 파일에선 프린트를 하기위해 PrintWriter out을 이용한다. 
 
    PrintWriter out=response.getWriter();
 
    out.print("아이디 :" + id+"<br>");
    out.print("비밂 번호 : "+ pw+"<br>");
    out.print("이름 :"+name+"<br>");
    out.print("성별"+gender+"<br>");
}
 

4.  브라우저에서 입력한대로의 값을 확인 할 수 있다.

반응형