//登录
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
Index
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<form name="form1" method="post" action="checkservlet">
  <div align="center">
    <p>用户名称:
      <input type="text" name="userName">
    </p>
    <p>用户密码:
      <input type="password" name="userPwd">
    </p>
    <p>
      <input type="submit" name="Submit" value="提交">
    </p>
  </div>
</form>
<p>&nbsp;</p>
</body>
</html>
//用户
package com.lian.logindemo4.Bean;public class UserBean 
{
    private String userName;
    private String userPwd;    public void setUserName(String userName) {
        this.userName = userName;
    }    public void setUserPwd(String userPwd) {
        this.userPwd = userPwd;
    }    public String getUserName() {
        return userName;
    }    public String getUserPwd() {
        return userPwd;
    }
}//servlet(<servlet-name>checkservlet</servlet-name>)
package com.lian.logindemo4.Servlet;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.lian.logindemo4.Bean.DataBean;
import com.lian.logindemo4.Bean.UserBean;public class CheckServlet extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=GBK";    //Initialize global variables
    public void init() throws ServletException {
    }    //Process the HTTP Get request
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException
    {
        if (request.getParameter("userName") != null &&
            request.getParameter("userPwd") != null)
        {
            String userName = request.getParameter("userName");
            String userPwd = request.getParameter("userPwd");
            DataBean db = new DataBean();
            UserBean ub=db.CheckUserLogin(userName,userPwd);            request.setAttribute("user",ub);
            response.sendRedirect("LogOK.jsp");
        }
    }    //Process the HTTP Post request
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException {
        doGet(request, response);
    }    //Clean up resources
    public void destroy() {
    }
}//验证
package com.lian.logindemo4.Bean;import java.sql.*;
import com.lian.logindemo4.Bean.UserBean;public class DataBean
{
    private Connection conn = null;
    private ResultSet rst = null;
    private PreparedStatement ps = null;    public DataBean()
    {
        try
        {
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            conn = DriverManager.getConnection
("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=JSP","sa", "");
        }
        catch (SQLException ex)
        {
            System.out.println(ex.getMessage() + "1路径错误");
        }
        catch (ClassNotFoundException ex)
        {
            System.out.println(ex.getMessage() + "驱动错误");
        }
    }    public UserBean CheckUserLogin(String userName,String userPwd)
    {
        UserBean ub=null;
        String sql="select count(*) from UserLon where userName=? and userPwd=?";
        try
        {
            ps=conn.prepareStatement(sql);
            ps.setString(1, userName);
            ps.setString(2, userPwd);
            rst=ps.executeQuery();
            if(rst.next())
            {
                if(rst.getInt(1)>0)
                {
                    ub.setUserName(rst.getString("userName"));
                    ub.setUserPwd(rst.getString("userPwd"));
                }
            }        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return ub;
    }
}//sqlserver2000数据库
表UserLon
字段userName(varchar),userPwd(varchar)

解决方案 »

  1.   

    public UserBean CheckUserLogin(String userName,String userPwd)
        {
            UserBean ub=null;
            String sql="select * from UserLon where userName=? and userPwd=?";
            try
            {
                ps=conn.prepareStatement(sql);
                ps.setString(1, userName);
                ps.setString(2, userPwd);
                rst=ps.executeQuery();
                if(rst.next())
                {
                        ub.setUserName(rst.getString("userName"));
                        ub.setUserPwd(rst.getString("userPwd"));
                }        }
            catch(Exception e)
            {
                e.printStackTrace();
            }
            return ub;
        }
    }
    这样试试
      

  2.   

    问题不少,帮你说几个吧
    1.在方法public UserBean CheckUserLogin(String userName,String userPwd)
    里:你先 UserBean ub=null
    然后ub.setUserName(rst.getString("userName"));
    有空指针异常
    但是被扑获,并打印 e.printStackTrace();
    所以CheckUserLogin返回的是NULL
    个人认为CheckUserLogin返回类型应定义为boolean 型,是注册用户返回true
     2.
    //UserBean ub=db.CheckUserLogin(userName,userPwd);
    在这里应该判断如果是注册用户,返回到登录成功頁面
    不是则返回到失败頁面
    3.
    密码应该加密,否则风险很大
    4.登录成功的用户的信息应保存在session中,每一次用户访问只有登录后才能访问的頁面的时候,都要验证是一下是否合法用户
    ===============
    具体的实现可以参考网上一些代码
      

  3.   

    UserBean ub=db.CheckUserLogin(userName,userPwd);            request.setAttribute("user",ub);
                response.sendRedirect("LogOK.jsp");
    很明显都没做什么判断就直接跳转的LogOK.jsp里面了。。
    起码得有个if....else语句作为判断吧