Struts2连接数据库实现登录验证

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();

      
}

实现登录验证的方法:

public ResultSet executeQuery(String sql) {
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


猜你喜欢

转载自blog.csdn.net/sasik/article/details/79636346