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

时间:2013-08-15 20:19:51

标签: java jsp servlets

我是Java世界的新手。我正在尝试使用简单的CSV文件作为数据库开发ACME Demo来验证用户名和密码。我想知道是否可以在index.jsp页面上创建一些超链接,如果你点击它们,它将带你到同一网站的其他jsp页面。据我所知,超链接将调用servle中的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");
    }
  }

1 个答案:

答案 0 :(得分:0)

您应该使用 servlet过滤器

过滤器是将针对给定url-mapping的所有请求和/或针对给定servlet的所有请求调用的组件。

然后,过滤器可以检查用户是否已登录。如果他已经进入,它会要求容器继续,即调用目标servlet,就好像没有过滤器一样。如果他没有登录,过滤器可以返回错误,或重定向到登录页面,或做任何想做的事。

有关servlet过滤器的介绍和示例,请参阅http://www.oracle.com/technetwork/java/filters-137243.html