2017-01-01 2 views
0

Я сделал код с JSP и Servlet. Я хочу показать сообщение об ошибке на странице JSP, когда учетные данные не совпадают. Я написал код в сервлете, но он не отображается на странице jsp правильно. Я хочу показать сообщение об ошибке ниже текстового поля пароля. Если какие-либо примеры доступных PLS, дайте мне знать, это будет большой помощью.Проверка сервера JSP и Servlet

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
     <title>Login Application</title> 
    </head> 
    <body> 
     <form action="loginServlet" method="post"> 
     User Login 
     <br> 
     User ID 
     <input type="text" name="username" > 
     <br><br> 
     Password 
     <input type="password" name="userpass"><br> 
     &nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Login" > 
     </form> 
    </body> 
</html> 

LoginServlet.java

package com.test.servlets; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
import com.amzi.dao.LoginDao; 

public class LoginServlet extends HttpServlet{ 

    private static final long serialVersionUID = 1L; 

    public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 

     String n=request.getParameter("username"); 
     String p=request.getParameter("userpass"); 

     HttpSession session = request.getSession(false); 
     if(session!=null) 
     session.setAttribute("name", n); 

     if(LoginDao.validate(n, p)){ 
      RequestDispatcher rd=request.getRequestDispatcher("welcome.jsp"); 
      rd.forward(request,response); 
     } 
     else{ 
      out.print("Wrong Credentials"); 
      RequestDispatcher rd=request.getRequestDispatcher("index.jsp"); 

      rd.include(request,response); 


     } 

     out.close(); 
    } 
} 

Вот мой код пожалуйста исправить его.

+0

Is LoginDao.validate() проверено? Это, скорее всего, преступник – GurV

ответ

0

Вместо того чтобы писать out.print .... установить ошибку как атрибут запроса, а в вашем index.jsp получить доступ к атрибуту запроса с помощью ${requestAttributeKey}, где requestAttributeKey - это ключ вашего атрибута запроса.