代码如下
public class LoginServlet1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8"); //防止post提交方式乱码
//要清楚用户登陆业务第一个是获取用户名以及密码
String username = request.getParameter("username");
String password = request.getParameter("password");
//通过用户名user来判断user是否登陆成功 即没成功则为null
User user = null;
try {
//业务方法 来判断用户是否登陆成功
user = login(username,password);
if(user!=null) {
//这里要知道为什么用了重定向 没用转发
response.sendRedirect(request.getContextPath()+"/index.jsp");
}else {
//设置域属性 在html页面中使用jsp调用显示
request.setAttribute("LoginInfo", "登录失败,用户名或密码错误");
//使用转发 要明白为什么要用请求转发
request.getRequestDispatcher("login.jsp").forward(request, response);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public User login(String username,String password) throws SQLException {
//C3P0连接池基础操作
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
String sql = "select * from user where username=? and password=?";
User user = qr.query(sql, new BeanHandler<User>(User.class), username,password);
return user;
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
//jsp中的显示回显信息代码
<%= request.getAttribute("LoginInfo")==null?"":request.getAttribute("LoginInfo") %>