2016-05-15 55 views
0

我想這樣做。如果有人使用此網址登錄網址http://localhost:8080/。他應該重定向到登錄servlet。所以,我爲它創建一個代碼,因爲這定義根servlet和CSS

@WebServlet(name = "RootController", urlPatterns = {"/"}) 
public class RootController extends HttpServlet { 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     try (PrintWriter out = response.getWriter()) { 

     } 
    } 


    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 


     RequestDispatcher out = request.getRequestDispatcher("/login"); 

     out.forward(request, response); 


    } 

    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    } 

} 

但是,當我的CSS和JS文件鏈接,因爲這

<link href="resources/css/css/bootstrap.min.css" rel="stylesheet" type="text/css"/> 

這些文件沒有聯繫。但我將根servlet urlPatterns更改爲/abc,它可以正常工作。這是爲什麼?資源文件夾的路徑是正確的。我該怎麼做才能完成我的任務?

回答

0

當你點擊鏈接「http://localhost:8080/」這將您重定向到您在web.xml中定義的默認頁。例如在你的web.xml中,如果你已經定義如下。當你點擊 「http://localhost:8080/

<webapp> 
<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list>  
</webapp> 

所以在你的 「@WebServlet」 添加註釋url模式這樣@WebServlet(name = 「RootController」,URL模式= {「/索引您的網址將加載的index.jsp .JSP「}) 或 花空URLPATTERN 」「 和的doGet

寫下面的代碼
if(request.getServletPath().equals("/index.jsp")) { 
    response.sendRedirect("login") 
} 
+0

它的工作原理!謝謝 :) – top11

0

嘗試空URL模式@WebServlet(name = "RootController", urlPatterns = {""})

+0

它的作品!謝謝:) – top11