상세 컨텐츠

본문 제목

JSP - 서버에 데이터 전달(상품 정보 입력)

JSP

by 기련이 2020. 6. 11. 14:55

본문

1. jsp로 데이터 전달

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>제품 등록</title>
</head>
<body>
	<h3>상품 정보</h3>
	<form action="pInProc.jsp">
		<table>
			<tr>
				<td>제품명</td>
				<td><input type="text" name="p_name"></td>
			</tr>
			<tr>
				<td>가격</td>
				<td><input type="text" name="p_price"></td>
			</tr>
			<tr>
				<td colspan="2"><input type="submit" value="입력"></td>
			</tr>
		</table>
	</form>
</body>
</html>

pageContext.forward로

jsp파일에 전달하는방법과

서블릿으로 전달하는방법이있다

<%@page import="com.dto.Productinfo"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
Productinfo prod = new Productinfo();
String p_name = request.getParameter("p_name");
prod.setP_name(p_name);
String price = request.getParameter("p_price");
int p_price = Integer.parseInt(price);
prod.setP_price(p_price);

request.setAttribute("prod", prod);
pageContext.forward("pResult.jsp");//jsp 전달
%>

jsp파일로 전달▲

<h3>제품 정보</h3>
제품명 : ${prod.p_name}<br>
가격 : ${prod.p_price}<br>

 

제품정보 결과페이지 .jsp

2.서블릿으로 DB에 전달.

<%@page import="com.dto.Productinfo"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
Productinfo prod = new Productinfo();
String p_name = request.getParameter("p_name");
prod.setP_name(p_name);
String price = request.getParameter("p_price");
int p_price = Integer.parseInt(price);
prod.setP_price(p_price);

request.setAttribute("prod", prod);
pageContext.forward("/prodreg");//서블릿으로 전달하는 방법
%>

서블릿으로 전달▲

package com.dto;

public class Productinfo {//제품 정보 저장 DTO
	private String p_name;
	private int p_price;
	
	public String getP_name() {
		return p_name;
	}
	public void setP_name(String p_name) {
		this.p_name = p_name;
	}
	public int getP_price() {
		return p_price;
	}
	public void setP_price(int p_price) {
		this.p_price = p_price;
	}
}

DTO 파일로 제품정보 저장

package com.controller;

import java.io.IOException;

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 com.dto.Productinfo;

@WebServlet("/prodreg")
public class ProdController extends HttpServlet {
	private static final long serialVersionUID = 1L;
   
	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response) throws ServletException, IOException {
				Productinfo prod = (Productinfo)request
						.getAttribute("prod");
			
				System.out.println("제품명 : " + prod.getP_name());
				System.out.println("가격 : " + prod.getP_price());
				
				//prod를 서비스를 거쳐서 DAO를 거쳐서 DB로..
				
				//가정사항. 여기서 부터는 DB에서 제품정보를 검색하여
				//jsp 화면으로 전송.
				//결과를 화면에 전송
				request.setAttribute("prod", prod);
				
				RequestDispatcher dis = request.getRequestDispatcher("pResult.jsp");
				
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

prod를 서비스를 거쳐서 DAO를 거쳐서 DB로 전송

DB에서 제품정보를 검색하여
jsp 화면으로 전송. 결과를 화면에 전송

콘솔창에 나타나는 입력한 데이터정보

서블릿으로 데이터를 전송한 결과이다

관련글 더보기