上一篇做的基于struts2开发的登录模块(未连接数据库),当时感觉很好,很强大!这次连了数据库,做出来之后,感觉到些许框架的好处,但是还不是很明显,也许是这个功能太小了,哈哈,继续!
其他地方不变,唯一改变的地方在业务处理这块:
Loginstruts.java中的核心代码:
package teststruts2;
import dao.LoginDao;
public class Loginstruts {
private String name;
private String password;
private String message;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
boolean flag = false;
LoginDao logindao = new LoginDao();
flag = logindao.login(name, password);
if(flag){
message="execute";
return "SUCCESS";
}else{
return "ERROR";
}
}
}
LoginDao.java中的核心代码:
package dao;
import java.sql.*;
import util.Conutil;
//import bean.User;
public class LoginDao {
public boolean login(String name,String password){
//User user = new User(name,password);
boolean b = false;
Conutil conutil = new Conutil();
Connection con = conutil.getCon();
String sql = "select * from t_user where mame=? and password=?";
try {
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if(rs.next()){
b=true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return b;
}
}
Conutil.java中的核心代码:
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conutil {
private String driver = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://127.0.0.1:3306/test";
private String dbuser = "root";
private String dbpass = "Admin123";
private Connection con = null;
public Connection getCon(){
try {
Class.forName(driver);
con = DriverManager.getConnection(url,dbuser,dbpass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public void closecon(){
if(con!=null)
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
运行结果显示:
总结分析:
1、页面请求交给Loginstruts.java来处理,也就是说,使用这个类来封装HTTP中的请求参数,这样的话这个类中就应该包含与请求相对应的属性,并未改属性 提供对应的setter和getter方法。
2、Loginstruts.java类中包含一个execute方法,struts2框架会默认调用这个方法。但是这个方法并不做具体的业务逻辑,而是调用其他业务逻辑组件来处理,并返回一个String类型的结果。
3、execute方法中返回的字符串对应实际的物理视图。
感觉到了配置文件的好处!!!