步骤分析:
1.创建数据库和表结构
CREATE DATABASE day09;
USE day09;
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20),
PASSWORD VARCHAR(20)
);
INSERT INTO USER VALUES(NULL,'tom','123');
INSERT INTO USER VALUES(NULL,'jack','123');
2.创建动态的web项目(Dynamic Web Project,2.5版本)
3.创建包结构 utils servlet service dao bean
4.导入项目需要的jar包(c3p0,mysql,dbutils放web-inf→lib里),工具类(DatasourceUtils),配置文件(xml)
5.导入项目需要的静态文件(前端的文件)
6.编写LoginServlet
//获取用户名和密码
//创建servlice并调用方法
//判断用户输入的数据在数据库是否存在
若存在: xxx:欢迎回来
若不存在: 登录失败
package com.gongsi.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gongsi.bean.User;
import com.gongsi.service.LoginService;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
response.setHeader("content-type", "text/html;charset=utf-8");
//获取login.htm表单中请求的用户名和密码(这个username是input里属性name的值)
String username=request.getParameter("username");
String password=request.getParameter("password");
//创建loginservice
LoginService ls=new LoginService();
try {
//调用service中的方法
User user=ls.getUserByUsernameAndPwd(username,password);
//根据返回的对象,判断提示信息的内容
if(user==null){
response.getWriter().println("账号密码错误");
}else{
response.getWriter().println(user.getUsername()+"欢迎回来");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
7.编写LoginService
//创建LoginDao
//调用dao中的方法
package com.gongsi.service;
import java.sql.SQLException;
import com.gongsi.bean.User;
import com.gongsi.dao.LoginDao;
public class LoginService {
public User getUserByUsernameAndPwd(String username, String password) throws SQLException {
// TODO Auto-generated method stub
//创建LoginDao
LoginDao ld=new LoginDao();
return ld.geeUserByUsernameAndPwd(username,password);
}
}
8.编写LoginDao
//创建QueryRunner对象
//编写sql
//执行sql
package com.gongsi.dao;
import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import com.gongsi.bean.User;
import com.gongsi.utils.DataSourceUtils;
public class LoginDao {
public User geeUserByUsernameAndPwd(String username, String password) throws SQLException {
// TODO Auto-generated method stub
//创建qr
QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
//编写sql
String sql="select * from user where username=? and password=?";
//执行sql
User user = qr.query(sql, new BeanHandler<User>(User.class), username,password);
return user;
}
}
Bean
package com.gongsi.bean;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}