繁体   English   中英

JSP和Servlet不响应转发

[英]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.jspadminAddNewManager.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM