Generic (2)

coc·2023년 8월 29일
0

Controller

package kr.co.gudi.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 kr.co.gudi.model.Box;
import kr.co.gudi.model.GBox;
import kr.co.gudi.model.Nbox;


@WebServlet("/input")
public class Controller extends HttpServlet {

	
	
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String no = req.getParameter("no");
		String name = req.getParameter("name");
		String grade = req.getParameter("grade");
		System.out.println(no+"/"+name+"/"+grade); //1.위에방식들이 처음으로 할거
	
		
		//T의 타입은 내가 = T는  객체화 하면서 정할 수 있다
		//타입을 STring으로 바꾸면 모든 필드가 String으로 (no,name,grade)고정
		/*GBox<String> box = new GBox<String>();
		box.setNo(no);
		box.setName(name);
		box.setGrade(grade);*/
		
		
		
		
		System.out.println(box.getNo());
		System.out.println(box.getName());
		System.out.println(box.getGrade());// 객체안에 내용을 알고싶으면 .찍어서 확인
		
		req.setAttribute("box", box);
		RequestDispatcher dis = req.getRequestDispatcher("index.jsp");
		dis.forward(req, resp);
	}

	

	
}

Model

package kr.co.gudi.model;


//빈 규약:데이터를 담는 자바파일(클래스)은 private으로 필드를 지정해야 한다
public class GBox<T> { //아직 지정되지 않은 타입

	//<> 제너릭 : 내부적으로 봤을떄는 특정 문자열을 고정 = 내가 변경 가능
	
	//T는 타입이다
	//T 의 타입이 지정되면 필드들의 타입도 자동으로 지정되게 된다.
	private T no;  //private은 여기서만 사용 가능 
	private T name;
	private T grade;
	
	
	public T getNo() {
		return no;
	}
	public void setNo(T no) {
		this.no = no;
	}
	public T getName() {
		return name;
	}
	public void setName(T name) {
		this.name = name;
	}
	public T getGrade() {
		return grade;
	}
	public void setGrade(T grade) {
		this.grade = grade;
	}
	
	
	
}

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
</head>
<body>
<!-- MainController -->
	<form action="input">
		<p>no: <input type="text" name="no"></p>
		<p>game: <input type="text" name="name"></p>
		<p>grade: <input type="text" name="grade"></p>
		<button>입력</button>
	</form>
	<!-- box는 객체이기 때문에 일련번호만 찍힌다 =kr.co.gudi.model.Box@68735dbe=no: ${box} -->
	<!-- el tag 에서는 getter 메서드를 사용하지 않고 필드명만 도출해도 가져올 수 있다 =${box.no}-->
	<p>no: ${box.no}</p>
	<p>name:${box.name}</p>
	<p>game:${box.grade}</p>
</body>
</html>
profile
시작

0개의 댓글