У меня есть следующее требование
- на странице Login.html - Войти btn и Забыть пароль btn
- если Войти нажмите кнопку,
- Необходимо выполнить проверку текстовых полей имени пользователя и пароля.
- Если проверка прошла успешно - вызовите LoginServlet
- Если LoginServlet успешно проверяет пользователя → вызовите другой DashboardServlet
- Если LoginServlet проверить пользователя не удалось --> вернуть сообщение об ошибке на страницу login.html, а на странице login.html должно отображаться предупреждение или сообщение.
- Что работает? - работает проверка пустого текстового поля, я могу найти, какая кнопка нажата, логин или забыл пароль.
- Я не использую jsp-страницу, поэтому предложите решение, которое работает с html.
Я изо всех сил пытаюсь найти решение за последние 3 дня, я уже обратился за помощью к SO и другим порталам, но до сих пор не получил окончательного результата
Логин.html
<script>
function validateloginform() {
var name = document.getElementById("username").value;
var password = document.getElementById("password").value;
if (name == null || name == "") {
alert("Please enter valid userName");
return false;
} else if (password.length < 6) {
alert("Password must be at least 6 characters long.");
return false;
}else
{return true;
}
}
$(document).ready(function(){
// Set a variable, we will fill later.
var value = null;
// On submit click, set the value
$('input[type="submit"]').click(function(){
value = $(this).val();
});
// Use the set value in the submit function
$('form').submit(function (event)
{
event.preventDefault();
//alert(value);
if(value == "LOGIN")
{
if (validateloginform()){
alert('i want to call LoginServlet here');
}
else if (value == "FORGOT PASSWORD")
window.location.href = "ChangePassword.html"
});});//ready function
</script>
</head>
<body background="../Images/zebra_background.jpg">
<p id="header"> ZMC Server</p>
<div class="combine">
<img class="logo" src="../Images/zebra_logo.png"><br>
<text>Welcome To</text>
<text1>Admin Console Login Page </text1>
<!-- onsubmit="return validateloginform();" -->
<form action="/zmcwebadmin/loginServlet" method="post"
id="loginForm" name="loginform"> <!-- </form> -->
<div class="usernameformat">
<input type="text" name="username" class="userformat" id="username"
placeholder="User Name"> <br> <input type="password"
name="password" id="password" class="passformat" placeholder="Password">
</div>
<p class="rememberme">
Remember me <img id="remember_me" onclick="changeRememberImage()"
src="../Images/remember_me_off.png" width="28" height="20"
style="float: right">
</p><br>
<input type="submit" class="buttonformat" value="LOGIN" id="btnlogin" name="btnlogin">
<input
type="submit" class="buttonformat" value="FORGOT PASSWORD" id="btnforgetpwd" name="btnforgetpwd">
</form>
Сервер входа в систему
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("I am in doGet of LoginServlet");
response.sendRedirect("/html/Loginpage.html");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("I am in doPost of LoginServlet");
String userName = request.getParameter("username");
String passWord = request.getParameter("password");
if(LoginDao.validate(userName, passWord))
{
HttpSession session=request.getSession();
if(session.isNew())
{
//New session creation
session=request.getSession(true);
}
else
{
session = request.getSession(false);
}
//setting attribute on session
session.setAttribute("userName",userName);
//send request to Welcome.jsp page
//response.sendRedirect("/Dashboard.html");
response.sendRedirect("/zmcwebadmin/dashBoardServlet");
response.getWriter().write(String.valueOf(userName));
System.out.println("I have connected to DB");
}
else
{
//response.sendRedirect("error.html");
String data = "User name and password do not match";
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(data);
/*RequestDispatcher rd = request.getRequestDispatcher("Loginpage.html"); -- This solution works
rd.forward(request, response);*/
//response.sendRedirect("Loginpage.html");
request.setAttribute("error", "Unknown login, try again");
doGet(request, response);
System.out.println("I have not connected to server");
}
}
}