JSP和servlet不响应转发

时间:2012-08-08 03:18:50

标签: java html jsp web-applications servlets

我在转发方面遇到了一些问题,即使我正在转发,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>

屏幕: enter image description here

然后我转到那个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>

用那个屏幕:

enter image description here

但是当我点击两个选项中的任意一个,然后转到adminAddNewEmployee.jsp的{​​{1}}时,即使这两个文件都位于adminAddNewManager.jsp的同一个文件夹,我也会反复这样做。 {1}}:

adminPage.jsp

项目树是:

enter image description here

我该如何解决这个问题?我知道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);
        }

    }

2 个答案:

答案 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