Struts2连接数据库实现登录验证
一:用jsp连接数据库实现登录验证想必大家都会做,新学了Struts2框架之后,用Struts2连接数据库实现登录验证也异常简单,跟在页面中嵌入大量的Java代码想比,Struts2的方式则更加能体现面向对象的思想
二:让我们先来看一下整体的目录结构
一:我们搭建好Struts2的环境之后记得导入mysql的包,首先我们先看登录页面:index.jsp
在这个页面中我们写一个简单的登录页面,效果如下:
二:这个时候我们开始编写连接数据库的Java类,我把这个类Dao.Java放在dao包下,为了体现面向对象的程序思想,我们在构造函数中写入连接数据库的必要语句,把查询数据库的语句单独写成一个方法,具体实现代码如下:
构造方法:
public Dao() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String url = "jdbc:mysql://localhost:3306/(自己的数据库名称)?useSSL=false";
String usename="(登录数据库的用户名)";
String psw="(登录数据库的密码)";
try {
conn = DriverManager.getConnection(url,usename,psw);
st=conn.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
实现登录验证的方法:
try {
rs = st.executeQuery(sql);
}
catch (Exception e) {
// TODO: handle exception
}
return rs;
}
实现注册的方法:
public int executeUpdate(String sql) {
try {
st.executeUpdate(sql);
} catch (Exception e) {
// TODO: handle exception
}
return 1;
}
这样我们的数据库的类就写完了。
三:我们要把用户输入的信息封装到user类中,方便我们的使用,在com包下新建一个user类,将用户输入的信息封装进去。
四:在com包下的denglu.java中我们写入调用验证和注册的代码
public class denglu implements ModelDriven<user> {
user s=new user();
Dao dao = new Dao();
//实现验证的方法
public String yanzheng() throws SQLException{
String sq = "select * from yanzheng where name='" + s.getUsername()+"' and password ='"+s.getPassword()+"'";
ResultSet rt=dao.executeQuery(sq);
if (rt.next()) {
String shuchu="登录";
return "success";
}
else
{
return "error";
}
}
//实现注册的方法
public String zhuce() throws SQLException{
String sql = "insert into yanzheng(name,password) values('"+s.getUsername()+"','"+s.getPassword()+"')";
int res=dao.executeUpdate(sql);
if (res==1) {
String shuchu="注册";
return "success";
}
else
{
return "error";
}
}
public user getModel() {
// TODO Auto-generated method stub
return s;
}
注:注意这里实现ModelDriven<user> 这个借口要实现其对应的方法。
五:在Struts2的配置文件中写好action并给每个action指明要调用的方法
<action name="zz" class="com.denglu" method="yanzheng">
<result name="success">/cg.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="uu" class="com.denglu" method="zhuce">
<result name="success">/cg.jsp</result>
<result name="error">/error.jsp</result>
</action>
到这里所有的工作都完成了,鉴于笔者能力有限,如有不足之处,欢迎指正,交流。
源码:https://github.com/lewannanhai/Struts2-denglu.git
https://github.com/lewannanhai/Struts2-denglu.git
https://github.com/lewannanhai/Struts2-denglu.git