서블릿에서 폼 데이터 처리하기
매핑하기
Servlet 파일의 코드를 살펴보면, @webServlet("/Method") 어노테이션이 있다.
해당 어노테이션은 마치 @GetMapping("/Method") 처럼 url상에 localhost:8080/Method 쪽으로 클라이언트가
접속을 한다면, 해당 요청들을 처리하겠다는 매핑이다.
doGet 메소드와 doPost 메소드
또한 Servlet 파일안에 doGet 메소드와 doPost 메소드가 있다.
doGet 메소드는 클라이언트가 Get방식으로 요청을 했을때 처리가 되는 메소드로,
파라미터로 request, response 객체를 받아 실행하는 것을 알수있다.
즉, 서버에서 클라이언트로 해당 request에 대한 response을 할때, response 객체에 담아서 하겠다는 말이다.
HttpServletResponse객체의 메소드중 setContentType 메소드를 통해 text,html 형식, 인코딩 타입은 utf-8 형식으로 보낸다.
@WebServlet("/Method")
public class Method extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<h1>get 방식으로 처리됨 </h1>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<h1>post 방식으로 처리됨 </h1>");
}
}
request 객체는 클라이언트가 form에 입력한 데이터를
getParameter 메소드를 통해서 얻어 올 수 있다.
요청(request) 객체의 파라미터 관련 메소드 :
- getParameter(String name) : 지정한 이름의 파라미터 중 첫 번째 파라미터의 값을 구함
- getParameterValues(String name) : 지정한 이름을 가진 파라미터의 모든 값을 String[]로 구함
(Client로 부터 받아올 값이 여러 개인 경우)
예제)
다음과 같은 HTML 파일을 작성하여, 사용자가 해당 form에 데이터를 입력했을때,
Servlet을 통해 getParameter() 메소드로 입력값을 받아올 수 있다.
@WebServlet("/QueryString")
public class QueryString extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/text;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("당신이 입력한 정보(get)방식 입니다.");
out.print("아이디 : ");
out.println(request.getParameter("id"));
out.print("비밀번호 : ");
out.println(request.getParameter("pw"));
out.print("이름 : ");
out.println(request.getParameter("name"));
out.print("회원 : ");
out.println(request.getParameter("class"));
out.print("전화번호 : ");
out.print(request.getParameter("phone1")+"-");
out.print(request.getParameter("phone2")+"-");
out.print(request.getParameter("phone3"));
request.getParameter() 메소드를 통해 get 방식으로 넘어온 데이터들을 그대로 출력해주는 코드다.
"/QueryString" url에 매핑되어 사용자가 해당 주소로 접속하여 데이터를 입력하게되면,
위 서블릿 파일이 실행되며, 다음과 같이 입력한 값을 get방식으로 넘어오게된다.
'Category > JSP&Servlet' 카테고리의 다른 글
Session 이란? (0) | 2023.11.27 |
---|---|
Cookie란? (0) | 2023.11.24 |
1. JSP& Servlet 란? (0) | 2023.11.22 |
[JSP] JSP에서 Javascript 사용하기 (0) | 2023.11.10 |
[JSP] PreparedStatement 란? (0) | 2023.11.07 |