lesson03_JSP_InputOutput.zip
0.01MB
lesson03_JSP_Servlet_Communication.zip
0.01MB
Servlet의 LifeCycle
Servlet을 생성하면 아래와 같이 간단한 방식으로 생성과 삭제가 이뤄집니다.
일반적으로 Service 에는 기능을 담당하며, doGet, doPost 를 사용합니다.
Request
화면(View)을 담당하는 .JSP, .HTML 에서 서버(Servlet)을 향해 데이터를 전달 할 수 있습니다.
doGet
URL안에 사용자의 데이터가 함께 전달됩니다.
구분자인 ? 파라메터명=값&파라메터명=값&... 형태로 URL이 출력됩니다.
http://localhost:8090/lesson03_JSP_Servlet_Communication/Gugudan?dan=5&start=2&end=9
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- form 안에서 method ="get"을 선언하였습니다. 기본값입니다. -->
<form action="Gugudan" method="get">
단<input name="dan"> <br>
시작<input name="start"> <br>
끝<input name="end"> <br>
버튼 태그로 만든 버튼입니다. <button>출력</button>
</form>
</body>
</html>
package lesson03_JSP_Servlet;
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;
@WebServlet("/Gugudan")
public class Gugudan extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doGet으로 접근하였습니다.");
int dan = Integer.parseInt(request.getParameter("dan"));
int s = Integer.parseInt(request.getParameter("start"));
int e = Integer.parseInt(request.getParameter("end"));
response.setCharacterEncoding("euc-kr");
PrintWriter out = response.getWriter();
out.print("<html>");
out.println("<head><meta charset='euc-kr'><title>구구단</title></head>");
out.println("<body>");
out.print("<table border='1'>");
out.printf("<tr><td><h2>%d단</h2></td></tr>", dan);
for (int i = s; i <= e; i++) {
out.printf("<tr><td>%d x %d = %d</td></tr>", dan, i, dan * i);
}
out.print("</table>");
out.println("</body>");
out.println("</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doPost로 접근하였습니다.");
doGet(request, response);
}
}
doPost
사용자의 데이터가 Header 안에서 암호화 되서 전달 됩니다.
http://localhost:8090/lesson03_JSP_Servlet_Communication/Gugudan
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- form 안에서 method ="post"을 선언하였습니다. 기본값입니다. -->
<form action="Gugudan" method="post">
단<input name="dan"> <br>
시작<input name="start"> <br>
끝<input name="end"> <br>
input으로만든 버튼입니다.<input type="submit" value="출력"> <br>
버튼 태그로 만든 버튼입니다. <button>출력</button>
</form>
</body>
</html>
package lesson03_JSP_Servlet;
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;
@WebServlet("/Gugudan")
public class Gugudan extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doGet으로 접근하였습니다.");
int dan = Integer.parseInt(request.getParameter("dan"));
int s = Integer.parseInt(request.getParameter("start"));
int e = Integer.parseInt(request.getParameter("end"));
response.setCharacterEncoding("euc-kr");
PrintWriter out = response.getWriter();
out.print("<html>");
out.println("<head><meta charset='euc-kr'><title>구구단</title></head>");
out.println("<body>");
out.print("<table border='1'>");
out.printf("<tr><td><h2>%d단</h2></td></tr>", dan);
for (int i = s; i <= e; i++) {
out.printf("<tr><td>%d x %d = %d</td></tr>", dan, i, dan * i);
}
out.print("</table>");
out.println("</body>");
out.println("</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doPost로 접근하였습니다.");
doGet(request, response);
}
}
만약 JSP 생성시, 생성되는 템플릿을 변경하고 싶다면 Windows > Preferences 에서 변경할 수 있습니다.
New에서 Template를 생성할 수있습니다. 아래 샘플은 HTML5입니다.
<%@page language="java" contentType="text/html; charset=${encoding}"
pageEncoding="${encoding}"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="${encoding}">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
'Web Programming > JSP' 카테고리의 다른 글
6. JSP Cookie & Session (0) | 2020.03.21 |
---|---|
5. JSP 데이터 공유 (0) | 2020.03.21 |
4. JSP 스크립트 태그 (0) | 2020.03.18 |
2. JSP Servlet Basic (0) | 2020.03.17 |
1. JSP 개발환경 구축 및 웹 프로그램 개요 (0) | 2020.03.15 |