Войти используя Servlet -JSP - PullRequest
       5

Войти используя Servlet -JSP

0 голосов
/ 19 октября 2019

Я пытаюсь создать очень простое приложение для входа в систему, используя Servlet & JSP с базой данных SQL, используя Eclipse (MARS) IDE.

login.jsp

<body>
      <form action="Login"method="post">
      Enter username : <input type="text" name="uname"> <br>
      Enter password : <input type="password" name="pass">  <br>
      <input type="submit" value="login">
      </form>
</body>

welcome.jsp

  <body>
    <%
        response.setHeader("Cache-Control", "no-cache,no-store,must-revaildate");
        response.setHeader("Pragma","no-cache");
        response.setHeader("Expires","0");  
        if(session.getAttribute("username")==null){
            response.sendRedirect("login.jsp");
        }
    %>
      Welcome ${username}
      <a href="video.jsp">Videos here </a>

      <form action="Logout">
        <input type="submit" value="Logout">
      </form>
  </body>

video.jsp

<body>
<%

response.setHeader("Cache-Control", "no-cache,no-store,must-revaildate");
response.setHeader("Pragma","no-cache");
response.setHeader("Expires","0");  
    if(session.getAttribute("username")==null){
        response.sendRedirect("login.jsp");
    }
%>
  www.thefeind.mp4
</body>

Logout.java

@WebServlet("/Logout")
public class Logout extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public Logout() {
        super();
    }


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        session.removeAttribute("username");
        session.invalidate();
        response.sendRedirect("login.jsp");
    }


}

LoginDao.java

public class LoginDao {
    String sql ="select * from login where uname=? and pass=?";
    String url ="jdbc:mysql://localhost:3306/akash";
    String username="root";
    String password="";
    public boolean check(String uname,String pass){
        try{
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection(url,username,password);
            PreparedStatement st = con.prepareStatement("sql");
            st.setString(1,uname);
            st.setString(2,pass);
            ResultSet rs = st.executeQuery();
            if(rs.next()){
                return true;
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }
        return false;
    }
}

Login.java

public class Login extends HttpServlet {

    public Login() {
        super();

    }


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

        String uname = request.getParameter("uname");
        String pass = request.getParameter("pass");
        LoginDao dao = new LoginDao();
        if(dao.check(uname, pass)){
            HttpSession session = request.getSession();
            session.setAttribute("username", uname);
            response.sendRedirect("welcome.jsp");
        }
        else{
            response.sendRedirect("login.jsp");
        }
    }

Проблема в том, что я не могу войти в систему, используя правильные учетные данные, хранящиеся в моей базе данных. Я не могу найти, почему это происходит в этом коде?

1 Ответ

2 голосов
/ 19 октября 2019

Я вижу одну проблему:

PreparedStatement st = con.prepareStatement("sql");

должно быть

PreparedStatement st = con.prepareStatement(sql);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...