JSP에서 받은 Parameter를 Post로 Servlet에 넘기는 방법이다.

-JSP

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> </head> <body> <form method="post" action="/Serv1"> param : <input type="text" name="param"> <input type="submit" value="전송"> </form> </body> </html>

- Servlet

package pack; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class Servlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String param = request.getParameter("param"); // 받아온 Parameter를 변수 param에 저장한다. response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<HEAD><TITLE>FORM</TITLE></HEAD>"); out.println("<BODY>"); out.println("Parameter = " + param); out.println("</BODY>"); out.println("<HTML>"); out.close(); } }

이렇게 파라미터를 넘겨주면 된다. 여기서 중요한 점은 characterEncoding을 UTF-8 로 했다면 받는 부분도 UTF-8 로 해주어야 한다. 그렇지 안으면, 영어로 받았을 때는 문제가 없지만 한글로 받았을 때는 깨지는 현상이 발생한다.

문자 셋이 안 맞았을 때의 왼쪽 영어, 오른쪽 한글

JSP는 post 부분에 action을 web.xml 부분에 매핑 해준 url을 넣어주면 된다. 아래는 web.xml 매핑한 코드이다.

<servlet> <servlet-name>Servlet</servlet-name> <servlet-class>pack.Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet</servlet-name> <url-pattern>/Serv1</url-pattern> </servlet-mapping>

'Java > JSP' 카테고리의 다른 글

maven 이란?  (0) 2019.09.12
JSP, Servlet, 자바빈 등 용어 정리  (0) 2019.09.12
intellij 에서 Servlet 생성하기  (0) 2019.09.12
intellij 에서 Tomcat 적용하기  (0) 2019.09.12
MVC 디자인 패턴이란?  (0) 2019.09.12

+ Recent posts