JSP链接到另一个JSP

时间:2013-01-12 19:31:18

标签: jsp servlets

在我的JSP页面中,我希望链接转发到另一个JSP页面。当用户在home.jsp上时,我希望他们转到login.jsp等。我遇到的问题是,除非我将页面放在项目文件夹中(在WEB-INF之上),否则无法找到JSP文件夹)。

我试过这些代码行,但都没有用:

<a href="/enq/WEB-INF/pages/login.jsp">
<a href="/WEB-INF/pages/login.jsp">
<a href="/pages/login.jsp">

它只与项目文件夹中的JSP页面一起使用,然后我使用下一行:

<a href="login.jsp">

但我希望JSP页面位于:WEB-INF / pages /

3 个答案:

答案 0 :(得分:4)

我已经解决了,我为每个JSP页面创建了4个Servlet。每个servlet都将消息转发到相应的JSP,如下所示:

request.getRequestDispatcher("/WEB-INF/pages/enquette.jsp").forward(request, response);

在JSP页面之间的一个href:

<a href="/enq/enquette">

网络XML:

<servlet-mapping>
<servlet-name>Enquette</servlet-name>
<url-pattern>/enquette</url-pattern>

答案 1 :(得分:2)

<a href="/pages/login.jsp">

它必须正常工作。在这种情况下,您获得了什么HTTP状态?

答案 2 :(得分:1)

如果您希望用户有权访问以下文件: /WEB-INF/pages/login.jsp

你应该创建一个servlet,你应该改变html或jsp文件中的链接:

<a href="/pages/login.jsp"> login page </a>

创建一个servlet: 将此行添加到您的web.xml文件中:

<servlet-mapping>
<servlet-name>accessFiles</servlet-name>
<url-pattern>/pages/*</url-pattern>  
</servlet-mapping>


<servlet>
<servlet-name>accessFiles</servlet-name>
<servlet-class>yourclass</servlet-class>
</servlet>

然后创建扩展servlet的yourclass.java:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class yourclass extends javax.servlet.http.HttpServlet {

 private String message;

  public void init() throws ServletException
  {

  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      String pathInfo = request.getPathInfo();
      request.getRequestDispatcher("/WEB-INF/pages/" + pathInfo).forward(request, response);

  }

  public void destroy()
  {
      // do nothing.
  }

}

getPathInfo()将在servlet模式之后返回URL的一部分(/ pages /) 这应该工作。

您还可以在/ WEB-INF / pages /目录下添加更多jsp文件,并通过此servlet将用户转发到欲望页面。