비전공개미 개발노트
[Java/JSP] Servlet으로 doGet/doPost사용하기 본문
반응형
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
'프로그래밍 > Java' 카테고리의 다른 글
| [Java/JSP] Servlet을 이용하여 회원가입페이지 만들기(DB연동) (1) | 2022.10.31 |
|---|---|
| [Java/JSP] doGet/doPost 차이 (0) | 2022.10.31 |
| Java 9일차 - MySQL연동 (1) | 2022.09.28 |
| Java 8일차 - GUI(채팅프로그램 꾸미기) (0) | 2022.09.28 |
| Java 8일차 - java + MySQL연동 / INSERT/ SELECT (0) | 2022.09.28 |
Comments