我在转发方面遇到了一些问题,即使我正在转发,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
的{{1}}时,即使这两个文件都位于adminAddNewManager.jsp
的同一个文件夹,我也会反复这样做。 {1}}:
adminPage.jsp
项目树是:
我该如何解决这个问题?我知道WEB-INF需要一些转发,但我在哪里进行转发?在JSP中?
但请注意我使用HTTP Status 404 -
--------------------------------------------------------------------------------
type Status report
message
description The requested resource () is not available.
--------------------------------------------------------------------------------
Apache Tomcat/7.0.28
但仍然失败。
此致
修改
adminPage.jsp中的添加了:
href
并创建了一个新的servlet <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>
:
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);
}
}
答案 0 :(得分:4)
WEB-INF内的文件无法直接从客户端访问。
单向会改变
<a href="SomeServletmapping">
在SomeServlet内部获取方法
request.getDispatacher(yourJSP).forward();
第二种方式:
move those JSPs outside the WEB-INF folder.
答案 1 :(得分:1)
看看这里
<a href="WEB-INF/results/adminAddNewEmployee.jsp">Press here to continue</a>
根据规范,directly
文件夹内无法访问任何内容(WEB-INF
。
可以使用
来完成<%@ include file="WEB-INF/path/to/expected.jsp" %>
或使用请求转发或使用JSP
等框架发送给Spring
!