본문 바로가기

서버/Servlet-JSP
Servlet Parameter

// Servlet Parameter

- HTML form 태그의 submit 버튼을 클릭하여 데이터를 서버로 전송하면, Servlet에서는 HttpServletRequest 객체를 이용하여 전송된 데이터(Parameter)를 얻을 수 있다.


// doPost 

- 데이터를 url에 붙일 필요 없이 전송할 수 있다.
    ~ 결과 주소 : http://localhost:8090/Servlet_parameter/formpost

- HttpServletRequest 객체의 setCharacterEncoding() 메서드를 활용하여 한글 인코딩을 해주어야 한다.

req.setCharacterEncoding("UTF-8");

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<form action="formpost" method="post">
		이름 : <input type="text" name="name"><br>
		아이디 : <input type="text" name="id"><br>
		비밀번호 : <input type="password" name="pw"><br>
		
		취미 : 
		<input type="checkbox" name="hobby" value="read">독서  
		<input type="checkbox" name="hobby" value="cook">요리  
		<input type="checkbox" name="hobby" value="walk">산책  
		<input type="checkbox" name="hobby" value="swim">수영  
		<input type="checkbox" name="hobby" value="listen">음악 감상  
		<br>
		
		좋아하는 과목 :
		<input type="radio" name="subject" value="kor">국어
		<input type="radio" name="subject" value="eng">영어
		<input type="radio" name="subject" value="math">수학
		<br>
		
		<select name="protocol">
			<option value="http">http</option>
			<option value="ftp">ftp</option>
			<option value="smtp">smtp</option>
		</select>
		<br>
		
		<input type="submit" value="제출">				
	
	</form>

</body>
</html>

 

package com.servlet.ex;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;

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("/formpost")
public class FormPost extends HttpServlet {
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

       resp.setContentType("text/html; charset=EUC-KR");
       req.setCharacterEncoding("UTF-8");
       
       String name = req.getParameter("name");
       String id = req.getParameter("id");
       String pw = req.getParameter("pw");
       
       String[] hobbies = req.getParameterValues("hobby");
       String subject = req.getParameter("subject");
       String protocol = req.getParameter("protocol");
       
       PrintWriter writer = resp.getWriter();
       
       writer.println("<html><head></head><body>");
       writer.println("이름 : " + name + "<br>");
       writer.println("아이디 : " + id + "<br>");
       writer.println("비밀번호 :" + pw + "<br>");
       writer.println("취미 : " + Arrays.toString(hobbies) + "<br>");
       writer.println("좋아하는 과목 : " + subject + "<br>");
       writer.println("프로토콜 : " + protocol + "<br>");
       writer.println("</body><html>");
       
    }
    
}

// doGet()

- URL에 쿼리 스트링을 추가하여 데이터를 전송한다.
    ~ 결과 주소 : http://localhost:8090/Servlet_parameter/formget?name=%EB%82%98%EB%AC%B4&id=sorrel012&pw=1234&hobby=walk&hobby=listen&subject=eng&protocol=http


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<form action="formget" method=get>
		이름 : <input type="text" name="name"><br>
		아이디 : <input type="text" name="id"><br>
		비밀번호 : <input type="password" name="pw"><br>
		
		취미 : 
		<input type="checkbox" name="hobby" value="read">독서  
		<input type="checkbox" name="hobby" value="cook">요리  
		<input type="checkbox" name="hobby" value="walk">산책  
		<input type="checkbox" name="hobby" value="swim">수영  
		<input type="checkbox" name="hobby" value="listen">음악 감상  
		<br>
		
		좋아하는 과목 :
		<input type="radio" name="subject" value="kor">국어
		<input type="radio" name="subject" value="eng">영어
		<input type="radio" name="subject" value="math">수학
		<br>
		
		<select name="protocol">
			<option value="http">http</option>
			<option value="ftp">ftp</option>
			<option value="smtp">smtp</option>
		</select>
		<br>
		
		<input type="submit" value="제출">				
	
	</form>

</body>
</html>

 

package com.servlet.ex;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;

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("/formget")
public class FormGet extends HttpServlet {
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       
       resp.setContentType("text/html; charset=UTF-8");
       PrintWriter writer = resp.getWriter();
       
       String name = req.getParameter("name");
       String id = req.getParameter("id");
       String pw = req.getParameter("pw");
       
       String[] hobbies = req.getParameterValues("hobby");
       String subject = req.getParameter("subject");
       String protocol = req.getParameter("protocol");
       
       
       writer.println("<html><head></head><body>");
       writer.println("이름 : " + name + "<br>");
       writer.println("아이디 : " + id + "<br>");
       writer.println("비밀번호 :" + pw + "<br>");
       writer.println("취미 : " + Arrays.toString(hobbies) + "<br>");
       writer.println("좋아하는 과목 : " + subject + "<br>");
       writer.println("프로토콜 : " + protocol + "<br>");
       writer.println("</body><html>");
        
    }
    
}

'서버 > Servlet-JSP' 카테고리의 다른 글

JSP 구성 요소 - JSP 지시자  (0) 2023.01.01
JSP 구성 요소 - 스크립트  (0) 2023.01.01
Servlet 생명주기  (0) 2022.12.29
Servlet-JSP GET 방식, POST 방식  (0) 2022.12.25
이클립스로 Servlet 프로그래밍 시작  (0) 2022.12.24