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