Servlet과 Jsp를 이용하여 싱글파라미터 넘기기
웹/백엔드, Spring

Servlet과 Jsp를 이용하여 싱글파라미터 넘기기

1. servlet이란?

자바를 활용하여 동적으로 웹페이지를 생성하는 서버측 프로그램이다.

간단히, 홈페이지 로그인을 했을때 바뀐 이미지가 나오는걸 생각하면 된다.

 

2. jsp란?

웹 서버에서 동적으로 웹페이지 생성해서 돌려준다.

 

간단한 예제

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	div{
		width: 400px;
		text-align: center;
	}
	span{
		cursor: pointer;
	}
</style>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>
<script type="text/javascript">
	$(document).ready(function(){
		$('span').click(function(){
			$('input').val('');
		})
	});
</script>
<body>
	<div>
		<h2>상품을 등록 해 주세요.</h2>
		<form action="Mainservlet.do" method="get">
			<table>
				<tbody>
					<tr>
						<td>상품명:</td>
						<td><input type="text" name="pname"></td>
					</tr>
					<tr>
						<td>상품가격:</td>
						<td><input type="text" name="pprice"></td>
					</tr>
					<tr>
						<td>상품 설명:</td>
						<td><input type="text" name="pdec"></td>
					</tr>
				</tbody>
			</table>
			<button type="submit">전송</button>
			<span>취소</span>
		</form>
	</div>
</body>
</html>

버튼 클릭 시 mainservlet.do를 찾아서 form값 전달

<form action="Mainservlet.do" method="get">

 

Mainservlet.java

package servlet;

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;

@WebServlet("/Mainservlet.do")
public class Mainservlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public Mainservlet() {
        super();    
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setAttribute("pname", request.getParameter("pname"));
		request.setAttribute("pprice", request.getParameter("pprice"));
		request.setAttribute("pdec", request.getParameter("pdec"));
		request.getRequestDispatcher("result.jsp").forward(request, response);
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	}
}

jsp로 넘겨주기 위해 데이터를 가공

request.setAttribute("pdec", request.getParameter("pdec"));

result.jsp로 값을 넘겨준다

request.getRequestDispatcher("result.jsp").forward(request, response);

 

result.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>
<style type="text/css">
	table{
		width: 200px;
		border-collapse: collapse;
		border: 1px solid black;
	}
	tr, td{
		border: 1px solid black;
	}
</style>
</head>
<body>
	<div>
		<h2>상품을 등록 해 주세요.</h2>
		<table>
			<tbody>
				<tr>
					<td width="70">상품명:</td>
					<td><%=request.getAttribute("pname") %></td>
				</tr>
				<tr>
					<td width="70">상품가격:</td>
					<td><%=request.getAttribute("pprice") %></td>

				</tr>
				<tr>
					<td width="70">상품 설명:</td>
					<td><%=request.getAttribute("pdec") %></td>

				</tr>
			</tbody>
		</table>
	</div>
</body>
</html>

이 부분이 값을 받아오는 부분

<td><%=request.getAttribute("pname") %></td>

 

입력 부분

 

결과 부분