登录页面使用jsp和postgresql无法正常工作

时间:2016-01-13 13:46:22

标签: java postgresql jsp

我正在尝试使用jsp和postgress创建登录页面。登录不起作用.index.jsp页面总是说抱歉,电子邮件或密码错误。

索引页面是欢迎页面。它指向loginprocess.jsp.并调用了一个bean LoginDao.java。

的index.jsp

<form action="loginprocess.jsp">
Email:<input type="text" name="email"/><br/><br/>
Password:<input type="password" name="pass"/><br/><br/>
<input type="submit" value="login"/>
</form>

loginprocess.jsp

<%@page import="bean.LoginDao"%>
<jsp:useBean id="obj" class="bean.LoginBean"/>

<jsp:setProperty property="*" name="obj"/>

<%
boolean status=LoginDao.validate(obj);
if(status){
out.println("You r successfully logged in");
session.setAttribute("session","TRUE");
}
else
{
out.print("Sorry, email or password error");
%>
<jsp:include page="index.jsp"></jsp:include>
<%
}
%>

LoginDao.java

 import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    public class LoginDao {
    //public static void main(String args[]){
    public static boolean validate( LoginBean bean ){
           Connection c = null;
             Statement stmt = null;
            boolean status=false;
            try{

                Class.forName("org.postgresql.Driver");
             c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/test","postgres", "pgadmin");
            // c.setAutoCommit(false);
                //PreparedStatement ps=c.prepareStatement("select * from user432 where email=? and pass=?;");
                //ps.setString(1,bean.getEmail());
                //ps.setString(2, bean.getPass());
                stmt = c.createStatement();
                ResultSet rs = stmt.executeQuery( "SELECT * FROM public.\"USER432\" where email= 'a' and pass='a' ;" );
                //ResultSet rs = stmt.executeQuery( "SELECT * FROM public.company;" );
                status=rs.next();
                 rs.close();
             stmt.close();
             c.close();
            }catch(Exception e){}
                //System.out.println(status);
            return true;



    }
    }

LoginBean.java

package bean;

public class LoginBean {
private String email,pass;

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getPass() {
    return pass;
}

public void setPass(String pass) {
    this.pass = pass;
}


}

1 个答案:

答案 0 :(得分:0)

尝试按照以下步骤操作:

  1. 尝试验证是否与数据库建立了连接,并且可以从数据库中检索数据。
  2. 使用jsp对bean进行Cologate,而不使用输入参数( LoginBean bean )
  3. 如果以前的步骤没问题。
  4. 尝试在方法validate中添加参数(email,pass)而不是对象LoginBean。
  5. 在你的jsp传递参数中如下:

    < jsp:useBean id="obj" class="LoginBean" scope="session" />
    <body>
       < jsp:getProperty name="obj" property="email" />  
       < jsp:getProperty name="obj" property="pass" /> 
    </body>