我是JSP和Servlet的新手,所以请耐心等待一段时间! 我对JSP和Servlet之间的通信有一个问题。
我正在尝试创建一个LogIn页面。
这是我的LogIN索引JSP页面
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
<head><title> index.jsp</title></head>
<body bgcolor="orange">
<h2> <font color=white> JSP index.jsp at</font>
<%= request.getContextPath () %>
<font color=white>
</font></h2><hr>
<form action="LibrarySysServlet" method ="POST">
<font color=navy><h3>Login</h3>
<table>
<tr>
<td> MemberId </td>
<td align="left"><input type="text" name="memId" length="30"/></td>
</tr>
<tr>
<td> Password </td>
<td align="left"><input type="text" name="password" length="30"/></td>
</tr>
</table>
<br>
<p><input type="submit" value="Submit"/></p>
</font>
</form>
<br>
</body>
</html>
我真的很困惑在登录时为索引页面的表单操作放置什么,因为目标根据logIn是否正确而更改。
对于我的Servlet方面,我试图在索引页面中扫描并通过函数传递它以检查logIn是否正确并根据不同的答案重定向它。
然而,在运行时,它不会重定向,但它只会继续执行表单操作中指定的任何内容。
代码的简短片段(因为它太长而没有粘贴整个东西):
RequestDispatcher dispatcher;
ServletContext servletContext = getServletContext(); //links to index.JSP
String page = request.getPathInfo();
page = page.substring(1);
if ("index".equals(page)) {
if (logIn(request)) {
dispatcher= servletContext.getRequestDispatcher("/result.jsp");
} else {
dispatcher= servletContext.getRequestDispatcher("/Menu.jsp");
}
}
帮助真的很困惑!我做错了什么?
答案 0 :(得分:0)
RequestDispatcher dispatcher;
ServletContext servletContext = getServletContext(); //links to index.JSP
//check here your username and password and put into a variable true or false
if (variable== true) {
dispatcher= servletContext.getRequestDispatcher("/result.jsp");
} else {
dispatcher= servletContext.getRequestDispatcher("/Menu.jsp");
}
}
答案 1 :(得分:0)
最好使用response.sendRedirect(“{url}”)而不是调度程序。
同时测试你的logIn方法,看看它是否按你的意愿工作
答案 2 :(得分:0)
您可以利用容器并使用基于FORM的身份验证。在web.xml中:
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>login.html</form-login-page>
<form-error-page>login_error.html</form-error-page>
</form-login-config>
</login-config>
然后在login.html:
Please log in:
<form method="POST" action="j_security_check">
<input type="text" name="j_username">
<input type="password" name="j_password">
<input type="submit" value="Login">
</form>
您必须使用j_security_check,j_username和j_password才能生效。