2013-04-23 4 views
2

초보자이며 서블릿에서 JSP 파일로 리디렉션하는 방법을 이해하려고합니다. 내 서블릿은 현재 JSP 파일에서 응답을받은 후 "결과"를 생성하고 결과를 다른 JSP 파일로 전달하려고합니다. 코드 줄이 있다는 것을 알고 있습니다.서블릿에서 JSP 파일로 리디렉션하는 방법

request.getRequestDispatcher("/upload.jsp").forward(request, response); 

하지만 별도의 메서드를 만들어 doGET에서 호출합니까? 당신이 method을 생성하더라도

+0

당신은 doGet/doPost/doPut/등에서 직접이 메소드를 호출합니다. –

+0

doGet 메서드의 마지막 줄 (더 구체적으로 리디렉션 할 곳)으로 지정하십시오. 기본 아이디어는 컨트롤러의 논리 끝이고 당신은 지금 리디렉션하고 싶습니다. – Nishant

+0

doGet에서 호출하십시오. 놀랄만 한 코드가없는 한 줄 기능이 필요하지 않은 것처럼 보입니다. 또한 그것은 멈추고, 그 후에는 돌아와야합니다. –

답변

4

당신은 별도로 당신이 methodrequestresponse 객체가 필요

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
     request.getRequestDispatcher("/upload.jsp").forward(request, response); 
    } 

을 할 수 있습니다.

내가 크게 공식 문서를 추천하고있다 :

http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html

pictorial

+0

감사! 이것은 굉장합니다! – user2221016

+0

도와 주셔서 감사합니다. 도움이된다면 답변으로 표시하십시오. –

0

당신이 주석 버전 3.0을 사용하는 경우 리디렉션은 매우 간단합니다.

데이터베이스 조작을 다루는 사용자 클래스 (setter 및 getters가있는 문자열 전체 이름 및 사용자 이름)와 UserDAO 클래스가 있다고 가정합니다. 이 가정 하면 컨트롤러 :

@RequestMapping(value = "/user_list") 
public String users(HttpServletResponse response, HttpServletRequest request) 
{ 
    //some function to verify access 
    boolean authorized = client.getAccess(); 
    request.setAttribute("authorized", authorized); 

    if (authorized) 
    { 
     List<User> users = UserDAO.geUsers(); 

     request.setAttribute("users", users); 
     return "user_list"; 
    } 
    else 
    { 
     return "access_denied"; 
    } 
} 

그런 다음 다음과 같은 구문을 사용하여 모든 위치에서 재 지정할 수 있습니다

@RequestMapping(value = "/create_user", method = RequestMethod.POST) 
public String add_user(HttpServletResponse response, HttpServletRequest request) 
{ 

    boolean authorized = client.getAccess(); 
    if (authorized) 
    { 
     User user = new User(); 

      user.setUserName(request.getParameter("username")); 
      user.setFullName(request.getParameter("fullname")); 

     if (UserDAO.saveUser(user)) 
     { 
      return "redirect:/user_list"; 
     } 
     else 
     { 
      return "error"; 
     } 
    } 
    else 
    { 
     return "access_denied"; 
    } 
} 

리디렉션 : 당신이 dB로 삽입 된 경우/USER_LIST (예를 업데이트 USER_LIST을 반환됩니다 변경 사항이 반영됩니다).

Btw는 :

http://www.javatpoint.com/spring-3-mvc-tutorial

:

http://www.mkyong.com/spring-mvc/spring-3-mvc-and-xml-example/

그 자습서를 보라 : 당신은 당신의 XML에 몇 줄을 추가하는 경우 당신은 당신의 컨트롤러에서 .jsp로 경로를 삭제할 수 있습니다

http://www.javatpoint.com/servlet-tutorial

+0

죄송합니다, 어쨌든 나는 당신이 Spring MVC를 사용하고 있다는 것을 읽었을 것이라고 생각했기 때문에 대답에 사용했습니다. – monika

+0

Spring MVC를 사용하여 리다이렉트하지 않고'forward '하고있다. Spring MVC를 사용하여 리다이렉트하고자한다면 컨트롤러 메소드에'redirect : url'을 리턴해야한다! –

+0

리디렉션 중입니다. 위의 게시물 (튜토리얼 링크)에서 언급 한 XML에서 URL이 짧아졌습니다. index_prefix =/WEB-INF/jsp/ index.suffix = .jsp 등 "user_list"는 URL의 관련 부분입니다 (모든 접두사와 접미사가 공통이므로) – monika

관련 문제