如何在Servlet内部的doGet方法中操作jsp超链接



我是Java界的新手。我正在尝试开发一个ACME演示,使用一个简单的CSV文件作为数据库来验证用户名和密码。我想知道是否可以在index.jsp页面上创建一些超链接,如果你点击它们,它会把你带到同一网站的其他jsp页面。据我所知,超链接将调用servlet中的doGet方法,在这里——在我的情况下——如果你的凭据是有效的,你将被重定向到那些安全的jsp。所以它只适用于一个超链接,我想让事情变得更动态,无论有多少链接??!!

jsp

 <a href ="<%=request.getContextPath()%>/LoginNow.do"> Content1</a>
  <!-- Here I would like to add more links -->

Servlet

    @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
  {
    processRequest(request, response);
    //response.sendRedirect("login.jsp");
     HttpSession session= request.getSession(true);
    if ((session.getAttribute("userSession") != null) && (session.getAttribute("userSession").equals(session.getId())))
    {
      response.sendRedirect("content1.jsp");
      // How can my doGet method manage multiple links here?
    }
    else
    {
      response.sendRedirect("login.jsp");
    }
  }

您应该使用servlet过滤器

过滤器是一个组件,它将为到给定url映射的所有请求和/或到给定servlet的所有请求调用。

然后过滤器可以检查用户是否登录。如果他登录了,它会要求容器继续,即调用目标servlet,就像没有过滤器一样。如果他没有登录,过滤器可能会返回错误,或者重定向到登录页面,或者为所欲为。

请参阅http://www.oracle.com/technetwork/java/filters-137243.html以获取servlet过滤器的介绍和示例。

最新更新