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;
}