본문 바로가기
Back/Servlet

[Servlet] 에노테이션(1:1)등록과 web.xml 파일 등록

by 시월해 2021. 5. 3.

<!-- HTML 주석 -->
<%-- JSP 주석 --%>


Ex02.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<h2>두 수 더하기(에노테이션(1:1) 등록)</h2>
<%-- 입력된 데이터를 서블릿 매핑 이름이 adder인 서블릿으로 전송하라는 의미 --%>
<form action="adder" method="get">
	<%-- 텍스트 박스에 입력된 첫번째 숫자를 num1이라는 변수에 저장하여 서블릿으로 전송하라는 의미 --%>
	<p>첫번째 수 : <input type="text" name="num1"></p> 
	<p>두번째 수 : <input type="text" name="num2"></p>
	<input type="submit" value="계산">
</form>

<hr>

<h2>두 수 더하기(web.xml 파일에 등록)</h2>
<form action="adder1" method="post">
	<%-- 텍스트 박스에 입력된 첫번째 숫자를 num1이라는 변수에 저장하여 서블릿으로 전송하라는 의미 --%>
	<p>첫번째 수 : <input type="text" name="num1"></p> 
	<p>두번째 수 : <input type="text" name="num2"></p>
	<input type="submit" value="계산">
</form>
</body>
</html>

AdderServlet.java

package com.sist;

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("/adder")
public class AdderServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public AdderServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// form 태그에서 method="get"인 경우 실행되는 메서드
		// request : 첫번쨰 매개변수
		//           사용자(클라이언트)의 요청에 대한 정보를 처리
		// response : 두번째 매개변수
		//            요청 정보에 대한 처리 결과를 클라이언트에 응답 처리
		
		// 1단계 : 클라이언트에서 넘어온 데이터를 받기 - 사용자가 전송한 데이터를 받기
		int num1 = Integer.parseInt(request.getParameter("num1"));
		int num2 = Integer.parseInt(request.getParameter("num2"));
		
		// 응답 시 한글 처리
		response.setContentType("text/html; charset=UTF-8");
		// 2단계: 처리한 결과를 클라이언트 웹 브라우저에 출력하는 작업.
		PrintWriter out = response.getWriter(); 
		
		out.println("<html>");
		out.println("<head></head>");
		out.println("<body>");
		out.println("<h1>두 수의 합 >>> " + (num1+num2)+"</h1>");
		out.println("</body>");
		out.println("</html>");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	}

}

Adder1Servlet.java

package com.sist;

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("/Adder1Servlet")
public class Adder1Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public Adder1Servlet() {
        super();

    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//method="post"인 경우 데이터 처리하는 메서드
		int su1 = Integer.parseInt(request.getParameter("num1"));
		int su2 = Integer.parseInt(request.getParameter("num2"));
		
		// 응답 시 한글 처리
		response.setContentType("text/html; charset=UTF-8");
		// 2단계: 처리한 결과를 클라이언트 웹 브라우저에 출력하는 작업.
		PrintWriter out = response.getWriter(); 
		
		out.println("<html>");
		out.println("<head></head>");
		out.println("<body>");
		out.println("<h1>두 수의 합 >>> " + (su1+su2)+"</h1>");
		out.println("</body>");
		out.println("</html>");
	}

}

web.xml 등록하기

기본 화면

방식이 다를 뿐 두 가지 결과는 같게 나온다.

단, get 방식은

이렇게 주소창에 변수 값이 표시되지만,

Post 방식은 서블릿 네임만 나타난다.

 

'Back > Servlet' 카테고리의 다른 글

[Servlet] 서블릿에서 체크박스 요소의 값 받기  (0) 2021.05.03
자바 서블릿(Servlet) 기초  (0) 2021.05.03