如何访问子文件夹中的servlet?

时间:2015-07-29 01:16:12

标签: java servlets

如何访问位于子文件夹中的表单中的servlet。这是怎么回事。

<form action="../login" method="post"> 

虽然有效,但位于web-inf文件夹中名为css的文件夹中的样式表无效。这是我的目录

的结构
WebContent/css/style.css
WebContent/jsp/login.jsp

在登录页面中,这里是嵌入css的代码

<link href="../css/style.css" rel="stylesheet">

当我将style.css移出css文件夹时,它工作了。我认为它试图在根文件夹中查找style.css。

2 个答案:

答案 0 :(得分:2)

WEB-INF文件夹对用户浏览器是私有的,浏览器无法访问任何JSP,CSS,HTML或放置在该文件夹中的任何文件,这是设计使然。

有时,JSP文件放在WEB-INF文件夹中,以强制通过MVC样式的servlet访问它们。在这种情况下,您必须将URL映射到servlet,然后servlet将转发到WEB-INF文件夹中的JSP,如下所示:

// Map this servlet to URI /foo/login    
class LoginServlet extends HttpServlet{
          @Override
          public void doPost(HttpServletRequest request, HttpServletResponse response){
              ...
              RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/WebContent/login.jsp");
              dispatcher.forward(request, response);
          }
    }

无论如何,不​​要将静态HTML资源(HTML,CSS,GIF,...)放在WEB-INF文件夹中,只放置JSP文件。

如果您的应用程序非常简单,您可能无法从MVC架构中受益,只需将WebContent文件夹(包含的JSP文件)移出WEB-INF文件夹,您就可以直接访问JSP文件。 / p>

答案 1 :(得分:0)

您只需更改CSS的链接代码即可。

<link href="projectname/css/style.css" rel="stylesheet">

代替

<link href="../css/style.css" rel="stylesheet">

风格是连接。

如果您有任何指定的文件夹,那么只需按以下方式连接:

project-name/folder_name/file.extension