JSP/이론
서블릿 한방에
SEOKIHOUSE
2023. 6. 20. 12:24
@WebServlet("/") --->모든녀석 다긁어온다
- uri: 클라이언트가 요청한 URI를 저장합니다.
- conPath: 컨텍스트 경로를 저장합니다.
- com: URI에서 컨텍스트 경로를 제외한 부분을 저장합니다.
- startsWith()는 문자열이 특정 문자열로 시작하는지 확인
a.jsp -> a.jsp
b.jsp->b.jsp
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;
@WebServlet("/")
public class MoveTestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri = request.getRequestURI();
String conPath = request.getContextPath();
String com = uri.substring(conPath.length());
System.out.println(uri);
System.out.println(conPath);
System.out.println(com);
if(com.equals("/a") || com.equals("/")) {
request.getRequestDispatcher("a.jsp").forward(request, response);
}else if(com.equals("/b")){
response.sendRedirect("b.jsp");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
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;
//모든 요청을 한곳에서 처리하려면
// /로 받는다
@WebServlet("/")
public class MoveTestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri = request.getRequestURI();
String conPath = request.getContextPath();
String com = uri.substring(conPath.length());
String view ="";
System.out.println(uri);
System.out.println(conPath);
System.out.println(com);
if(com.equals("/a") || com.equals("/")) {
view = "a.jsp";
}else if(com.equals("/b")){
view = "redirect:b.jsp";
}else if(com.equals("/list")) {
view= "redirect:list.jsp";
}
//view에 담긴 문자열에 따라 포워딩 or 리다이렉팅
//redirect가 0~8까지라 9부터 끝까지 이동할 페이지 주소
if(view.startsWith("redirect:")) {
response.sendRedirect(view.substring(9));
}else {
request.getRequestDispatcher(view).forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}