2017-10-09 29 views
0

所以我使用註釋(而不是web.xml)。我的servlet看起來像這樣(很簡單,如果用戶鍵入FooUser和FooLast形式,它顯示Welcome.jsp中Servlet無法訪問WEB-INF中的.jsp文件

否則重定向到同一頁面的Login.jsp。

@WebServlet("/ServletLogin") 
public class ServletLogin extends HttpServlet { 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     if(request.getParameter("Username").equals("FooUser") && request.getParameter("Lastname").equals("FooLast")) { 
      RequestDispatcher rd=request.getRequestDispatcher("/WEB-INF/Welcome.jsp"); 
      rd.forward(request,response); 
     } 
     else { 
      RequestDispatcher rd=request.getRequestDispatcher("Login.jsp"); 
      rd.forward(request,response); 
     } 
    } 
} 

而且我登錄。 JSP看起來像這樣

<!DOCTYPE html> 
<html lang="en"> 
<body class="login"> 
    <div> 
     <form action="ServletLogin" method="post"> 
      <h1>Login Form</h1> 
      <div> 
       <input type="text" class="form-control" placeholder="Username" 
        name="Username" required="" /> 
      </div> 
      <div> 
       <input type="password" class="form-control" placeholder="Password" 
        name="Password" required="" /> 
      </div> 
      <div> 
       <input class="btn btn-info" type="submit" value="Log in" /> 
      </div> 
     </form> 
    </div> 
    </div> 
    </div> 
</body> 
</html> 

回答

0

卸下開始斜線:

RequestDispatcher rd=request.getRequestDispatcher("WEB-INF/Welcome.jsp"); 

或試試這個:

RequestDispatcher rd=request.getRequestDispatcher("../WEB-INF/Welcome.jsp"); 

,或者嘗試先獲取上下文:

RequestDispatcher rd=getServletContext().getRequestDispatcher("WEB-INF/Welcome.jsp");