我刚开始使用Servlets/JSP/JSTL,我有以下代码:
<html>
<body>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:directive.page contentType="text/html; charset=UTF-8" />
<c:choose>
<c:when test='${!empty login}'>
zalogowany
</c:when>
<c:otherwise>
<c:if test='${showWarning == "yes"}'>
<b>Wrong user/password</b>
</c:if>
<form action="Hai" method="post">
login<br/>
<input type="text" name="login"/><br/>
password<br/>
<input type="password" name="password"/>
<input type="submit"/>
</form>
</c:otherwise>
</c:choose>
</body>
</html>
以及在我的doPost方法中
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
HttpSession session=request.getSession();
try
{
logUser(request);
}
catch(EmptyFieldException e)
{
session.setAttribute("showWarning", "yes");
} catch (WrongUserException e)
{
session.setAttribute("showWarning", "yes");
}
RequestDispatcher d=request.getRequestDispatcher("/index.jsp");
System.out.println("z");
d.forward(request, response);
}
但是有些东西不起作用,因为我想要像这样的东西:
- 如果用户有活动会话并已登录到系统,则应显示“zalogowany”。
- 否则,登录表单
问题是无论我做什么,这些转发都没有将我放在我的项目的根文件夹中的index.jsp中,我仍然在我的地址栏中有Projekt/Hai。
getServletContext().getRequestDispatcher("/message.jsp").forward(request, response);
从servlet重定向到jsp。但是在服务器上无法正常工作。我尝试了response.sendRedirect(request.getContextPath() + "/message.jsp");
,但是jsp没有显示我从servlet发送的消息。如何解决这个问题? - kamal