[英]JSP and servlet does not respond to forwarding
我在转发时遇到了一些问题,即使我在转发,JSP文件在哪里也拒绝转发:我从这里开始:
index.html:
<!DOCTYPE html>
<html>
<head><title>Bank application</title>
<link rel="stylesheet"
href="./css/styles.css"
type="text/css"/>
</head>
<body>
<table class="title">
<tr><th>Web Bank application</th></tr>
</table>
<br/>
<fieldset>
<legend>Login Page - please enter your Username and Password</legend>
<form action="loginPage">
Username: <input type="text" name="username"><br>
Password : <input type="text" name="password"><br>
<input type="submit" value="Login">
</form>
</fieldset>
<br/>
<br/>
<br/>
<br/>
<br/><br/><br/><br/><br/><br/>
</body></html>
与屏幕:
然后,我移至该JSP文件-adminPage.jsp :
<!DOCTYPE html>
<html>
<head><title>System Administrator Page</title>
<link rel="stylesheet"
href="./css/styles.css"
type="text/css"/>
</head>
<body>
<h1>Hello ${name.firstName} ${name.lastName} , You've logged in successfully!</h1>
<h1>
Please choose one of the following options
</h1>
<fieldset>
<legend>Add a new manager to the bank system</legend>
<form action="adminAdds1">
<a href="WEB-INF/results/adminAddNewManager.jsp">Press here to continue</a>
</form>
</fieldset>
<fieldset>
<legend>Add a new employee to the bank system</legend>
<form action="adminAdds2">
<a href="WEB-INF/results/adminAddNewEmployee.jsp">Press here to continue</a>
</form>
</fieldset>
</body></html>
在该屏幕上:
但是当我单击两个选项之一,并移至adminAddNewEmployee.jsp
的adminAddNewManager.jsp
时,即使两个文件都位于adminPage.jsp
的同一文件夹中,我adminPage.jsp
:
HTTP Status 404 -
--------------------------------------------------------------------------------
type Status report
message
description The requested resource () is not available.
--------------------------------------------------------------------------------
Apache Tomcat/7.0.28
项目树在哪里:
我怎样才能解决这个问题 ? 我知道WEB-INF需要进行一些转发,但是该转发到哪里? 在JSP中?
但请注意,我使用href
仍然失败。
问候
编辑:
在adminPage.jsp中添加:
<fieldset>
<legend>Add a new manager to the bank system</legend>
<form action="adminAdds1">
<a href="src/servlets/Admin1">Press here to continue</a>
</form>
</fieldset>
并创建了一个新的Servlet Admin1.java
:
package servlets;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/adminAdds1")
public class Admin1 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
request.getRequestDispatcher("/WEB-INF/results/adminPage.jsp").forward(request, response);
}
}
但是当我再次运行所有东西时,我得到:
HTTP Status 404 - /WebBank/src/servlets/Admin1
--------------------------------------------------------------------------------
type Status report
message /WebBank/src/servlets/Admin1
description The requested resource (/WebBank/src/servlets/Admin1) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/7.0.28
无法从客户端直接访问WEB-INF中的文件。
一种方法是改变
<a href="SomeServletmapping">
在SomeServlet的get方法里面做
request.getDispatacher(yourJSP).forward();
第二种方式:
move those JSPs outside the WEB-INF folder.
在这里看看
<a href="WEB-INF/results/adminAddNewEmployee.jsp">Press here to continue</a>
根据规范, WEB-INF
文件夹中不能directly
访问任何内容。
可以使用
<%@ include file="WEB-INF/path/to/expected.jsp" %>
或者使用请求重定向器或使用诸如Spring
框架调度到JSP
!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.