如何访问位于子文件夹中的表单中的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。
答案 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