페이지에서 페이지로 이동하는 경우, controller를 거쳤다가 가야함!!!
그래서 controller에 (페이지에서 받고, 페이지에서 보내는 설정)을 해줘야함!
== 해야하는 설정 ==
- doGet, doPost (받는 값이 get일 경우, 받는 값이 post일 경우) 설정
- 먼저, 서비스를 호출해서 받음
- 다시 보내는 값을 do, post, service 등 어떤것으로 할지 설정!
- 여기서는 둘 다 service로 보내는 걸로 설정했음
- service 설정
- 받을때와 보낼때 인코딩 설정해주기
- 단, 보내는 값은 추가적으로 컨텐츠의 타입을 정해서 보내주어야함!
package 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 service.ProductService;
import service.Service;
public class ProductController extends HttpServlet {
private static final long serialVersionUID = 1L;
//해야하는것 : 상품등록,상품리스트,상품상세,상품수정,상품삭제
//연결순서 : 컨트롤러 -> 서비스 -> dao -> DBconnection
//컨트롤러 -> 서비스를 호출해서 값을 처리해야함
//서비스 -> dao에서 서비스를 호출해서 처리
//dao -> DBconnection을 연결해서 처리
private Service svc;
public ProductController() {
// 생성자
svc = new ProductService();
}
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
// 주 작업 영역 = 서비스 영역
//service(request,response);로 get,서비스로 오는 처리는 모두 서비스로 답변할 예정!
//이때, post방식으로 데이터 처리를 할 떄 한글이 깨지는 것을 방지
req.setCharacterEncoding("utf-8"); //받을떄
res.setCharacterEncoding("utf-8"); //보낼때
res.setContentType("text/html; charset=utf-8"); //보내는 값의 컨텐츠의 타입을 정해줌 (contentType="text/html; charset=UTF-8")
//요청에 대한 모든것을 담고 있는 객체 uri 생성
String uri = req.getRequestURI(); //전체 요청경로 (원하는 서비스를 담아옴)
System.out.println(">>> uri " + uri);
//보통은 컨트롤러의 주소/요청서비스로 주는데, 컨트롤러의 주소가 이건하나니까 주소없이 요청서비스만 받아오게 생성!
String context = req.getContextPath(); //프로젝트 명
System.out.println("프로젝트명: " + context);
//객체를 여기에 거쳤다가 보내야하는 목적지의 주소
String destPage = ""; //목적지주소
switch(uri) { //if문 사용도 가능은하는데 복잡해서 비추천
case "/register.pd":
destPage = "/register.jsp"; // '/'를 넣어서 폴더변경해서 이동해주기 (/폴더명/jsp파일명.jsp)
break;
}
//웹의 목적지 주소에 따라 보내는(연결해주는) 객체
//destpage로 이동시 응답객체를 싣고 가야함!
RequestDispatcher rdp = req.getRequestDispatcher(destPage);
rdp.forward(req, res);
}
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
// get방식으로 오는 값을 확인(체킹)
//response.getWriter().append("Served at: ").append(request.getContextPath()); //get으로 보내는 구문
//서비스로 처리해 보낼예정이라 get으로보내는 구문은 필요가 없음!
//서비스로 보내는 구문
service(req,res);
}
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
// post방식으로 오는 값을 확인(체킹)
//doGet(request, response); //get으로 보내는 구문
//서비스로 처리해 보낼예정이라 get으로보내는 구문은 필요가 없음!
//서비스로 보내는 구문
service(req,res);
}
}
'JSP > JSP' 카테고리의 다른 글
[jsp] 5. list 전체출력페이지 만들기 (0) | 2023.05.11 |
---|---|
[jsp] 4. insert 상품DB에 등록하기 (register에서 추가버튼 클릭시) (0) | 2023.05.11 |
[jsp] 3. register 등록하는 페이지 만들기 (0) | 2023.05.11 |
[jsp] 1. 설계도, 컨트롤러 -> 서비스 연결하기 (0) | 2023.05.11 |
[jsp] jsp_project (DB와 화면까지 연결하기) (0) | 2023.05.10 |