반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Tags
more
Archives
Today
Total
관리 메뉴

비전공개미 개발노트

[Java/JSP] Servlet으로 doGet/doPost사용하기 본문

프로그래밍/Java

[Java/JSP] Servlet으로 doGet/doPost사용하기

비전공개미 2022. 10. 31. 19:16
반응형
SMALL

기존에는 jsp로 파일을 보내서 jsp파일 내에서 java코드를 불러내어 처리를 했지만

서블릿을 사용하면 jsp파일 확장자를 보이지 않고 서블릿 파일 내에서 처리가 된다.

서블릿을 사용하는 이유가 클라이언트 요청정보를 외부에 노출시키지 않는다고 하는데 정확한 사용이유는 모르겠다. 더 공부를 해야될것 같다.

아무튼 이번에는 Servlet을 이용하여 처리해보자

 

doGet()

 

 

portalFrm.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>
<form action="portal">
	<input type="radio" name="site" value="naver">네이버<br>
	<input type="radio" name="site" value="google">구글<br>
	<input type="submit" value="이동">
</form>
</body>
</html>

 

 

method를 get으로 처리하거나 그냥 이동시 doGet으로 이동하여 처리한다.

 

 

PortalServlet.java

package org.global.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class PortalServlet
 */
@WebServlet("/portal")
public class PortalServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public PortalServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String param = request.getParameter("site");
		if(param.equals("naver")) {
			response.sendRedirect("https://naver.com");
		}else if(param.equals("google")) {
			response.sendRedirect("https://google.com");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

 

portalFrm.jsp

 

 

 

doPost()

 

 

bookFrm.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>
<form action="book" method="post">
	책 아이디 : <input type="text" name="bookId"><br>
	책 제목 : <input type="text" name="bookName"><br>
	출판사 : <input type="text" name="publisher"><br>
	가격 : <input type="text" name="price"><br>
	<input type="submit" value="전송">
</form>
</body>
</html>

 

 

 

 

BookReg.java

package org.global.controller;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.global.beans.Book;

/**
 * Servlet implementation class BookReg
 */
@WebServlet("/book")
public class BookReg extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public BookReg() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String bookId = request.getParameter("bookId");
		String bookName = request.getParameter("bookName");
		String publisher = request.getParameter("publisher");
		String price = request.getParameter("price");
		
		String[] bookArr = {bookId, bookName, publisher, price};
		List<String> list = Arrays.asList(bookArr);
		request.setAttribute("book", bookArr);
		
		//book빈파일을 통하여 사용가능 확인하기
		//Book book = new Book();
		
		RequestDispatcher rd = request.getRequestDispatcher("bookResult.jsp");
		rd.forward(request, response);
	}

}

 

@WebServlet의 이름을 book으로 지정해주고

직전의 view단의 jsp파일에서 form태그 에서 method를 post로 지정해주었기 때문에

doPost로 이동하여 처리한다.

 

처리가 완료되면 bookResult.jsp로 이동한다

 

 

 

bookResult.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>
book ID : ${book[0]}<br>
title : ${book[1]}<br>
publisher : ${book[2]}<br>
price : ${book[3]}

</body>
</html>

 

 

 

 

bookFrm.jsp

 

 

 

bookResult.jsp

반응형
LIST
Comments