上一篇讲到数据库验证用户名,这里介绍下,用户登录之后如何查看用户信息,和对用户信息的 增删改查功能实现。
先看下总体项目 有朋友说照着建立项目运行不了,所以就贴出项目的源代码,由于这个项目不知道放到哪里去了,所以自己又写了个,跟这个项目的代码可能会有点不一样,希望大家见谅 地址
http://115.com/file/bhylzuex 如果使用较早的Myeclipse 自己要加入struts2的包,要不然会显示有错误。。。。。。。。。。。。。。。。。。。。。。。。。。。。
这是用户登陆表
这是用户信息表
1.在用户输入用户名和密码登陆之后,我们可以直接调用一个查询所有用户信息的方法,这样就可以查看到所有用户信息了,所要做的就是要写多个方法来执行,然后返回给页面显示(在这里我没有做分页演示),大家要有耐心的看哦,代码有点多。。。
------------------------------action类代码-------------------------- package laogen.action;
import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement;
import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext; import laogen.common.DBcon; import laogen.dto.depDto; public class action {
private String username;//注意这里跟index.jsp form里面的name属性要对应
private String password; private String msg;
public String getMsg() { return msg; }
public void setMsg(String msg) { this.msg = msg; }
//然后生成setting getting 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; }
//自己写个方法来执行登陆
public String login() throws Exception {
Connection conn = DBcon.getConnection();// 这是用来连通数据库,记得,要下载个驱动程序,mysql Statement stmt = null; ResultSet rs1 = null; ResultSet rs2 = null; try {
stmt = conn.createStatement();
String sql1 = \"select * from userinfomation where username='\" + this.username + \"'\"; rs1 = stmt.executeQuery(sql1); if (!rs1.next()) {
// 判断用户名是不是 存在,如果不是则输出信息,返回界面 this.msg = \"用户名不正确!\"; return \"Error\"; } else {
String sql2 = \"select * from userinfomation where password='\" + this.password + \"'\"; rs2 = stmt.executeQuery(sql2);
if (!rs2.next()) {
// 判断密码是不是存在,如果不是则输出信息,返回界面 this.msg = \"密码不正确!\"; return \"Error\"; } }
rs1.close(); rs2.close(); stmt.close(); conn.close();
} catch (Exception e) { e.printStackTrace(); }
//当上面验证成功了,调用下面的query方法,查出所有用户信息 return query(); }
//这里是用来输出所有用户信息
public String query() throws Exception {
Connection conn = DBcon.getConnection();// 这是用来连通数据库,记得,要下载个驱动程序,mysql Statement stmt = null; try {
stmt = conn.createStatement();
String sql = \"select * from dep\"; // 从另一张表查出信息 ResultSet rs = stmt.executeQuery(sql);
List depDto dt = new depDto(); // 引进depDto dt.setId(rs.getInt(\"id\")); dt.setName(rs.getString(\"name\")); dt.setSex(rs.getString(\"sex\")); dt.setTime(rs.getString(\"time\"));// 这里你可以按你需要取出数据库的列的值 list.add(dt);// 把值添加到list里面 } //在这我们可以输出数据库里面有多少条记录 System.out.println(\"数据库里面有\"+list.size()+\"条记录\"); // 把list 放到session中,传回给页面,所以页面只需接收listAll就可以了 HttpSession session = ServletActionContext.getRequest() .getSession(); session.setAttribute(\"listAll\ conn.close(); rs.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); } return \"query\"; } //这里是添加信息的功能 public String add() throws Exception{ //首先要接收页面传过来的值 String name=ServletActionContext.getRequest().getParameter(\"name\"); String sex=ServletActionContext.getRequest().getParameter(\"sex\"); java.util.Date date = new java.util.Date(); String time=\"\"; SimpleDateFormat s = new SimpleDateFormat(\"yyyy年-MM月dd日-HH:mm:ss\"); time=s.format(date); //如果输出是乱码的话,就要转码了 System.out.println(name+sex+time); Connection conn = DBcon.getConnection(); Statement stmt = null; try { stmt=conn.createStatement(); String sql = \"insert into dep(name,sex,time) values('\"+name+ \"','\"+ sex+\"','\"+time+\"')\"; int i=stmt.executeUpdate(sql); if(i==0){ System.out.println(\"添加失败\"); }else{ System.out.println(\"添加成功\"); } conn.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); } //return \"add\"; 如果你是返回这个,那么页面没有跟新到你新增的信息,所以在返回时要在查询一遍,也就是下面的方法 return query(); } //删除用户 public String del() throws Exception{ String id=ServletActionContext.getRequest().getParameter(\"id\"); System.out.println(id); int i=Integer.parseInt(id); Connection conn = DBcon.getConnection(); Statement stmt = null; try { stmt=conn.createStatement(); String sql = \"delete from dep where id=\"+i; int a=stmt.executeUpdate(sql); if(a==0){ System.out.println(\"删除失败\"); } conn.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); } return query(); } //修改用户信息 public String update() throws Exception{ //修改用户信息,首先要接收到要修改哪个用户的ID,然后返回给页面,给显示出该用户的所有信息 String id=ServletActionContext.getRequest().getParameter(\"id\"); System.out.println(id); int i=Integer.parseInt(id); Connection conn = DBcon.getConnection(); Statement stmt = null; try { stmt=conn.createStatement(); String sql = \"select * from dep where id=\"+i; ResultSet rs=stmt.executeQuery(sql); List depDto dt = new depDto(); // 引进depDto dt.setId(rs.getInt(\"id\")); dt.setName(rs.getString(\"name\")); dt.setSex(rs.getString(\"sex\")); dt.setTime(rs.getString(\"time\")); list.add(dt);// 把值添加到list里面 } HttpSession session = ServletActionContext.getRequest() .getSession(); session.setAttribute(\"list\ conn.close(); rs.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); } return \"update\"; } //接受修改页面传过来的值 public String update1() throws Exception{ //我在这只接受sex ,id 如果没有ID的话,就会把全部更新了,不是我们想要的效果 String sex=ServletActionContext.getRequest().getParameter(\"sex\"); String id=ServletActionContext.getRequest().getParameter(\"id\"); int i=Integer.parseInt(id); System.out.println(sex); Connection conn=DBcon.getConnection(); Statement stmt=null; try { stmt=conn.createStatement(); String sql=\"update dep set sex='\"+sex+\"' where id=\"+i; stmt.executeUpdate(sql); conn.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); } return query(); } } --------------------------------------------------------------depDto------------------------------------------------------------------------------- depDto.java 代码 package laogen.dto; public class depDto { private int id; private String name; private String sex; private String time; //生成setting和getting 方法 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } } 2.-------------------------------类写好了,就要配置好struts.xml------------------------------- 3.------------------------------------------------接着就是页面显示代码和添加页面的代码了 ---------------------------------------------------- ------简要说明下,这里是使用了struts2的iterator来循环输出,\"#session.listAll\" 是从action类传回来的listAll------- query.jsp 页面代码 <%@ page language=\"java\" pageEncoding=\"UTF-8\"%> <%@ taglib uri=\"/struts-tags\" prefix=\"s\"%> ] 吗?')==true){window.location.href='login!del.action?id='+ ----------------------------------------------------------------------------- add.jsp 页面代码 <%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"utf-8\"%> <%@ taglib prefix=\"s\" uri=\"/struts-tags\"%> 增加信息 onclick=\"window.location.href='javascript:history.go(-1)'\"> --------------------------------------------------------------------------------- 登陆界面的代码 index.jsp <%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"gbk\"%> <%@ taglib prefix=\"s\" uri=\"/struts-tags\"%> ================================================== 更新页面 update.jsp <%@ page language=\"java\" pageEncoding=\"utf-8\"%> <%@ taglib uri=\"/struts-tags\" prefix=\"s\"%> <%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%> name onclick=\"window.location.href='javascript:history.go(-1)'\"> 是挺多的,大家可以学习下,打了好久啊。。。支持下吧。。。。。。。。。。。 如果是sql数据库的也是可以的 只要把里面的那个连接数据库的类改下就可以了:看代码 public class DBConnection { //创建连接 public static Connection getConnection() { Connection DBconn = null; try { Class.forName(\"com.microsoft.sqlserver.jdbc.SQLServerDriver\"); String url = \"jdbc:sqlserver://localhost:1433;databasename=Oexam\"; //Oexam为数据库名称 String user = \"sa\";//用户名 String password = \"123\";//用户名密码 DBconn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e1) { System.out.println(\"驱动程序加载错误\"); } catch (SQLException e2) { System.out.println(\"数据库连接时错误\"); } catch (Exception e3) { e3.printStackTrace(); } return DBconn; } //关门连接 public static void clear(Connection DBconn) { if (DBconn != null) { try { DBconn.close(); } } catch (SQLException e) { e.printStackTrace(); } } 因篇幅问题不能全部显示,请点此查看更多更全内容
用户信息 number name sex operate onClick=\"window.location.href='add.jsp'\"> \">
项目 录入 name
sex
登陆界面
修改
项目 录入
sex Time
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务