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.위에방식들이 처음으로 할거
//여러 타입을 지정 할 수있다
//클래스를 객체화 할 때 마다 유연하게 클래스 내 데이터 타입을 지정 할 수 있다
Nbox<Integer, String, String> box= new Nbox<Integer, String, String>();
box.setNo(Integer.parseInt(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 Nbox<N,A,G> { //아직 지정되지 않은 타입 //T말고도 다른거 사용해도 상관없음
//<> Generic(제너릭) : 내부적으로 봤을떄는 특정 문자열을 고정 = 내가 변경 가능
//제너릭 사용이유
//제너릭 : 객체화를 할떄 마다 지정가능 =사용할때 마다 내가 유연하게 지정할수있는게 강점이다
//클래스를 객체화 할 때 마다 유연하게 클래스 내 데이터 타입을 지정 할 수 있다
//T는 타입이다
//T 의 타입이 지정되면 필드들의 타입도 자동으로 지정되게 된다.
//제너릭 안의 임시 타입의 문자는 아무렇게나 지정가능
private N no; //private은 여기서만 사용 가능
private A name;
private G grade;
//shift + alt +s = getters and setters
public N getNo() {
return no;
}
public void setNo(N no) {
this.no = no;
}
public A getName() {
return name;
}
public void setName(A name) {
this.name = name;
}
public G getGrade() {
return grade;
}
public void setGrade(G 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>
<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>
<p>no: ${box.no}</p>
<p>name:${box.name}</p>
<p>game:${box.grade}</p>
</body>
</html>