티스토리 뷰

WEB/DynamicWeb

[Servlet] JSP -> Servlet

춘햄 2021. 4. 26. 15:36

JSP(사용자) -> Servlet(서버) 간 데이터 전송은 이전에 다뤘던 JSP -> JSP 간 데이터 통신과 별반 다를 게 없다.

form태그의 action속성 경로가 맵핑해놓은 url 주소 값이라는 것만 주의하면 거의 동일하다고 봐도 된다.


◎MethodServlet.java

package unit02;

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;

/**
 * Servlet implementation class MethodServlet
 */
@WebServlet("/method_servlet")  // 이 값이 action 속성으로 들어가야 값을 받을 수 있다.
public class MethodServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.print("<h1>get방식으로 처리됨</h1>");
		out.close();
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.print("<h1>Post방식으로 처리됨</h1>");
		out.close();
		
	}

}

◎methodTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
<title>doGet() / doPost() 호출 테스트</title>
</head>
<body>	
	<form action = "method_servlet" method = "get">
		<input type = "submit" value = "GET 방식으로 호출" />
	</form>
	<hr />
	<form action = "method_servlet" method = "post">
		<input type = "submit" value = "POST 방식으로 호출" />
	</form>
</body>
</html>

이렇게 작성하면 끝이다.


이제 get으로 호출할 지 post로 호출할 지 선택하면, servlet의 메소드에 따라 결과값이 출력된다.

 

-post 호출

 


국민 예제인 로그인으로 한번 더 확인해보자

 

◎paramTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
	<meta charset="UTF-8">
	<title>HTML 파라미터 Servlet 에게 전송</title>
</head>
<body>
	<form action = "param_servlet" method = "get">
		아이디: <input type = "text" name = "userid" required = "required" />
		<br/>
		이름: <input type = "text" name = "username" required = "required" /> 
		<br/>
		<input type = "submit" value = "전송" />
	</form>
</body>
</html>

◎ParamServlet.java

package unit02;

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;

/**
 * Servlet implementation class ParamServlet
 */
@WebServlet("/param_servlet")
public class ParamServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String userid = request.getParameter("userid");
		String username = request.getParameter("username");
		
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.print("<!DOCTYPE html>");
		out.print("<html>");
		out.print("<head><title></title></head>");
		out.print("<body>");
		out.print("아이디: " + userid);
		out.print("<br />");
		out.print("이름: " + username);
		out.print("</body></html>");
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}


 

'WEB > DynamicWeb' 카테고리의 다른 글

[Web] DAO & DTO  (0) 2021.04.28
[JSP, Servlet] DTO 활용 <도서 검색>  (0) 2021.04.27
[Servlet] init() & destroy()  (0) 2021.04.26
[Servlet] 간단한 덧셈을 수행하는 클래스  (0) 2021.04.26
[Servlet] Servlet 기초  (0) 2021.04.26
Comments