用户登录案例需求:
编写login.html登录页面: username & password两个输入框 使用Druid数据库连接池技术,操作mysql,USERS数据库中user表; 使用JdbcTemplate技术封装JDBC 登录成功跳转到SuccessServlet展示:登录成功!用户名,欢迎您! 登录失败跳转到FailServlet展示:登录失败,用户名或密码错误!
druid.properties
driverClassName= com. mysql. jdbc. Driver
url= jdbc: mysql: /
username= root
password= 123456
initialSize= 5
maxActive= 10
maxWait= 3000
minIdle= 3
UserDao
public class UserDao {
private JdbcTemplate template = new JdbcTemplate ( JDBCUtils. getDataSource ( ) ) ;
public User login ( User loginUser) {
try {
String sql = "select * from user where username = ? and password = ?" ;
User user = template. queryForObject ( sql,
new BeanPropertyRowMapper < User> ( User. class ) ,
loginUser. getUsername ( ) , loginUser. getPassword ( ) ) ;
return user;
} catch ( DataAccessException e) {
e. printStackTrace ( ) ;
return null;
}
}
}
User
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;
}
@Override
public String toString ( ) {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}' ;
}
}
UserDaoTest
import cn. abc. dao. UserDao;
import cn. abc. domain. User;
import org. junit. Test;
public class UserDaoTest {
@Test
public void testLogin ( ) {
User loginuser = new User ( ) ;
loginuser. setUsername ( "james" ) ;
loginuser. setPassword ( "123" ) ;
UserDao dao = new UserDao ( ) ;
dao. login ( loginuser) ;
System. out. println ( loginuser) ;
}
}
JDBCUtils
public class JDBCUtils {
private static DataSource ds;
static {
try {
Properties pro = new Properties ( ) ;
InputStream is = JDBCUtils. class . getClassLoader ( ) . getResourceAsStream ( "druid.properties" ) ;
pro. load ( is) ;
ds = DruidDataSourceFactory. createDataSource ( pro) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
}
}
public static DataSource getDataSource ( ) {
return ds;
}
public static Connection getConnction ( ) throws SQLException {
return ds. getConnection ( ) ;
}
}
FailServlet
@WebServlet ( "/failServlet" )
public class FailServlet extends HttpServlet {
protected void doPost ( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response. setContentType ( "text/html;charset=utf-8" ) ;
response. getWriter ( ) . write ( "登录失败,用户或密码错误" ) ;
}
protected void doGet ( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this . doPost ( request, response) ;
}
}
LoginServlet
@WebServlet ( "/loginServlet" )
public class LoginServlet extends HttpServlet {
protected void doPost ( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request. setCharacterEncoding ( "utf-8" ) ;
String username = request. getParameter ( "username" ) ;
String passsword = request. getParameter ( "passsword" ) ;
User loginuser = new User ( ) ;
loginuser. setUsername ( username) ;
loginuser. setPassword ( passsword) ;
UserDao dao = new UserDao ( ) ;
User user = dao. login ( loginuser) ;
if ( user == null) {
request. getRequestDispatcher ( "/failServlet" ) . forward ( request, response) ;
} else {
request. setAttribute ( "user" , user) ;
request. getRequestDispatcher ( "/successServlet" ) . forward ( request, response) ;
}
}
protected void doGet ( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this . doPost ( request, response) ;
}
}
SuccessServlet
@WebServlet ( "/successServlet" )
public class SuccessServlet extends HttpServlet {
protected void doPost ( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User user = ( User) request. getAttribute ( "user" ) ;
if ( user != null) {
response. setContentType ( "text/html;charset=utf-8" ) ;
response. getWriter ( ) . write ( "登录成功" + user. getUsername ( ) + "欢迎您" ) ;
}
}
protected void doGet ( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this . doPost ( request, response) ;
}
}
login.html
<!DOCTYPE html>
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> Title</ title>
</ head>
< body>
< form action = " /loginServlet" method = " post" >
< input type = " text" name = " username" > < br>
< input type = " password" name = " password" > < br>
< input type = " submit" value = " 登录" >
</ form>
</ body>
</ html>