login.html 里面登陆表单 提交后到servlet 里面的loginservlet 里面
loginservlet 中获取数据 把数据库封装成bean
request.setCharacterEncoding ("UTF-8");
String username = request.getParameter ("username");
String password = request.getParameter ("password");
//封装user
User loginuser = new User ();
loginuser.setUsername (username);
loginuser.setPassword (password);*/
对上面的进行优化 getParamenterMap();优化后数据成为一个map 集合 对其BeanUtils 进行封装
/**
* 对上面注释的代码 进行简化 优化代码如下
*/
//获取所有的参数
Map<String, String[]> map = request.getParameterMap ( );
User loginuser = new User ();
//用BeanUntils 进行封装
try {
BeanUtils.populate (loginuser,map);
} catch (IllegalAccessException e) {
e.printStackTrace ( );
} catch (InvocationTargetException e) {
e.printStackTrace ( );
}
在servlet 里面调用dao下面的userdao(操作数据库user表)
//调用UserDao
UserDao userDao = new UserDao ();
User user = userDao.login (loginuser);
if (user ==null){
//登陆失败
request.getRequestDispatcher ("/failServlet").forward (request,response);
}else {
//登陆成功
//存数据
request.setAttribute ("username",loginuser);
request.getRequestDispatcher ("/succseeServlet").forward (request,response);
}
利用JDBCTemplate
UserDao
package com.login.Dao;
import com.login.domain.User;
import com.login.util.JDBCUTIL;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
/*
操作数据库的User表
* */
public class UserDao {
/*
声明JDBCTemplate 对象进行共用
*/
private JdbcTemplate Template = new JdbcTemplate (JDBCUTIL.grtDataSource());
/**
*登陆方法
* @param loginUser 只有用户名与密码
* @return 返回用户的所有信息
*/
public User login(User loginUser){
//sql
User user = null;
try {
String sql = "select *from user where username = ? and password = ?";
user = Template.queryForObject (sql,
new BeanPropertyRowMapper<> (User.class),
loginUser.getUsername ( ),
loginUser.getPassword ( )
);
return user;
} catch (DataAccessException e) {
e.printStackTrace ( );
return null;
}
}
}
在until 里面写工具类 比如JDBC连接类Duird连接池
package com.login.util;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
/**
* JDBC 连接类 Durid连接池
*/
public class JDBCUTIL {
private static DataSource ds;
static {
//加载配置文件
try {
Properties properties = new Properties ();
InputStream is = JDBCUTIL.class.getClassLoader ( ).getResourceAsStream ("druid.properties");
properties.load (is);
//初始化连接池
ds = DruidDataSourceFactory.createDataSource (properties);
} catch (IOException e) {
e.printStackTrace ( );
}catch (Exception e){
e.printStackTrace ();
}
}
/*
获取连接池对象
* */
public static DataSource grtDataSource(){
return ds;
}
/*
获取连接connection 对象
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection ();
}
}
配置文件
driverClassName=com.mysql.jdbc.Driver
url= jdbc:mysql://localhost:3306/login
username=1806253419
password=*********
initialSize=5
maxActive=10
maxWait=3000