我是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过滤器的介绍和示例。