위로
아래
서블릿 파일 생성
controller 패키지 안에 BoardController 서블릿 파일 생성
httpServlet 상속
init과 destroy 생략 가능. doGet과 doPost 선택
url 매핑 이름 : /jb
doGet으로 요청 모으기
package controller;
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;
/**
* Servlet implementation class d
*/
@WebServlet("/jb")
public class d extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public d() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 입력할 예정
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
다른 페이지로 이동시켜 주는 컨트롤러 생성
command 키의 value 값에 따라 다른 page로 이동시켜주는 컨트롤러 생성
String command = null;
String page = null;
command = request.getParameter("command");
switch(command) {
case "list" : {
page = "view/BoardList.jsp";
break;
}
case "writeForm" : {
page = "view/BoardWriteForm.jsp";
break;
}
}
RequestDispatcher dp = request.getRequestDispatcher(page);
dp.forward(request, response);
command와 page 문자열을 선언하고 초기화해준다.
command 파라미터를 불러와서, 그 값에 따라 switch 문을 통해 어디로 보낼지 page 문자열에 주소를 입력한다.
글을 쓴 후 글 목록으로 갈 수 있도록 list 케이스를 미리 추가한다.
데이터베이스에서 정보를 미리 가져와야 하니,비즈니스 로직을 처리할 BoardListAction.jsp으로 이동한다.
파라미터를 그대로 가지고 이동할 수 있게, requestDispatcher를 사용해서, page 문자열에 저장한 페이지로 이동한다.
주소 오입력에 대비
혹시 command 값이나 주소를 잘못 칠 수 있으니, 그에 대비한다.
String command = null;
String page = null;
if(request.getParameter("command")==null)
command = "list";
else
command = request.getParameter("command");
switch(command) {
case "list" : {
page = "view/BoardList.jsp";
break;
}
case "writeForm" : {
page = "view/BoardWriteForm.jsp";
break;
}
default : {
page = "view/Error.jsp";
break;
}
}
RequestDispatcher dp = request.getRequestDispatcher(page);
dp.forward(request, response);
잘못된 command 값을 입력할 경우 글목록으로,
아예 잘못된 주소를 입력했을 경우는 에러 페이지인 Error.jsp로 이동하도록 해놓았다.
전체 코드
더보기
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;
/**
* Servlet implementation class BoardController
*/
@WebServlet("/jb")
public class BoardController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public BoardController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String command = null;
String page = null;
if(request.getParameter("command")==null)
command = "list";
else
command = request.getParameter("command");
switch(command) {
case "list" : {
page = "view/BoardList.jsp";
break;
}
case "writeForm" : {
page = "view/BoardWriteForm.jsp";
break;
default : {
page = "view/Error.jsp";
break;
}
}
RequestDispatcher dp = request.getRequestDispatcher(page);
dp.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}