01登录功能

1.      login.jsp提交action到LoginServlet

 <body>
   <form action="LoginServlet" method="get">
    username:<input type="text" name="username"><br>
    password:<input type="text" name="password"><br>
    <input type="submit" value="Login">
    </form>
  </body>

2.    LoginServlet 获取login页面提交的值{username,password};并将其实例化为一个UserDal对象u

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException
	{//获取页面提交的值并保存变量
		String username = request.getParameter("username");
		String password = request.getParameter("password");		
		//判断用户名和密码不能为空,为空则跳转,并return返回终止运行后面的程序。
		if (null == username || "".equals(username.trim()))
		{
			request.getRequestDispatcher("login.jsp")
					.forward(request, response);
			return;
		}

		if (null == password || "".equals(password.trim()))
		{
			request.getRequestDispatcher("login.jsp")
					.forward(request, response);
			return;
		}
		
		//实例化一个IUserDAL接口对象dao
		IUserDAL dao = new UserDAL();                 //第1.5步
		//构造一个对象u
		UserInfo u = dao.login(username, password);  
		//数据库中存在这个u;即用户名密码正确
		if (u != null)
		{
			//获取Session会话对象
			HttpSession session = request.getSession();
			//获取会话对象里u的值将其保存为UserSession
			session.setAttribute("UserSession", u);

			//登陆成功跳转到登陆成功的页面
			request.getRequestDispatcher("登录成功.jsp").forward(request,
					response);
			
		} 
		//不存在u用户名密码错误登录失败
		else
			
		{
			request.getRequestDispatcher("login.jsp").forward(request,
					response);
		}
	}

1.5   

业务层、数据访问层

1/接口类IDAL

public interfaceIUserDAL {
     public UserInfo login(Stringusername,String password);//返回类型为UserInfo
}


2/实现接口方法DAL

public class UserDAL implements IUserDAL{
     public UserInfo login(Stringusername, String password) //此方法带两个参数
     {
         //打开数据库连接
         Connectionconn=DBUtil.Open();
         //待执行的sql语句
String sql="select id,username,password from UserTbl where username=? andpassword=?";       
         try{
              PreparedStatementpstmt=conn.prepareStatement(sql);
//将待执行的sql语句存在pstmt对象里
              pstmt.setString(1,username);                    
              // 将username设置为第一个参数 --对应问号
              pstmt.setString(2,password);                   
              //将password设置为第二个参数
              ResultSetrs=pstmt.executeQuery();
                //执行sql命令,返回结果集
              if(rs.next()){
                   int id=rs.getInt(1);
                   UserInfou=newUserInfo();
                   u.setId(id);
                   u.setUsername(username);
                   u.setPassword(password);
                   return u;
              }
             
         }catch(SQLException e)
         {
              // TODO Auto-generated catch block
              e.printStackTrace();
         }
         return null;
     }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值