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 |