유가엘
개발일지
유가엘
전체 방문자
오늘
어제
  • 분류 전체보기 (107)
    • Solution (16)
      • EAI (11)
      • Concept (1)
      • webMethods (4)
    • Language (20)
      • Java (20)
    • DataBase (19)
      • Oracle (18)
    • Web Programming (38)
      • JSP (11)
      • Spring (10)
      • Project (17)
    • 협업도구 (8)
      • Git (8)
    • IT (6)
      • ETC (4)
      • 정보처리기사 (1)
      • Android (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

티스토리

hELLO · Designed By 정상우.
유가엘

개발일지

3. JSP Servlet Request Response
Web Programming/JSP

3. JSP Servlet Request Response

2020. 3. 17. 11:12

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
    'Web Programming/JSP' 카테고리의 다른 글
    • 5. JSP 데이터 공유
    • 4. JSP 스크립트 태그
    • 2. JSP Servlet Basic
    • 1. JSP 개발환경 구축 및 웹 프로그램 개요
    유가엘
    유가엘

    티스토리툴바