본문 바로가기

개발

서블릿으로 Dispatchservlet 역할 구현하기-2 (request.getRequestURI ,getParameter )

요구​원래 member.do로 받았는데 이번에는 *.do로 하나의 서블릿에서 받고 싶음. member.do면 MemberController, book.do면 BookController 클래스를 사용하고 method가 create면 거기 있는 create메소드를 사용하고 싶음.

​Servlet.java

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Servlet extends HttpServlet {
 private static final long serialVersionUID = 1L;

    public Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    public void create(){
     
    }

 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  response.setContentType("text/html; charset = euc-kr");// TODO Auto-generated method stub
  PrintWriter out = response.getWriter();
  String method = request.getParameter("method");
  String check = request.getRequestURI();
  
  if(check.equals("/sservlet/member.do")){
   MemberController mc = new MemberController();
  }
  else{
   BookController bc = new BookController();
  }
  if(method.equals("create")){
   create();
   out.println("create method");
  }
 }

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
 }

web.xml

<servlet>
  <description></description>
  <display-name>DispatchServlet</display-name>
  <servlet-name>DispatchServlet</servlet-name>
  <servlet-class>com.dispatcher.DispatchServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>DispatchServlet</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>​

<해결 1,2> 코드를 처음부터 다시 짰음. request.getRequestURI request.getParameter를 써서 해결.

url-pattern으로 초기 url로 진입할수 있는 값을 정할수 있다는것을 배웠음.

*.do는 와일드 카드로 *대신 무엇이 들어와도 저렇게 받겟다는것을 뜻함.

 

* jsp책을 보면 내용은 아는데, 정작 어디에 써야하는지 몰랐음.

지금 보니 쓸데 없는 주석이 많아 가독성이 떨어짐.

선언한 클래스는 내용이 없어서 생략.​