1、登陆form
1 <s:form name="login" action="login" method="post" theme="simple"> 2 <s:bean name="net.nw.vo.UserRoles" var="r" /> 3 <table> 4 <tr> 5 <td colspan="2"> 6 <s:actionmessage cssStyle="red"/> 7 </td> 8 </tr> 9 <tr> 10 <td> 11 类型: 12 </td> 13 <td> 14 <s:select name="roleId" list="%{#r.roles}" headerKey="0" headerValue="--请选择--"/> 15 </td> 16 </tr> 17 <tr> 18 <td> 19 用户名: 20 </td> 21 <td> 22 <s:textfield name="username" /> 23 </td> 24 </tr> 25 <tr> 26 <td> 27 密码: 28 </td> 29 <td> 30 <s:password name="password" /> 31 </td> 32 </tr> 33 <tr> 34 <td> 35 验证码: 36 </td> 37 <td> 38 <s:textfield name="randomCode" maxlength="4"/> 39 </td> 40 </tr> 41 <tr> 42 <td> 43 <input type="submit" value="提交" /> 44 </td> 45 <td> 46 <input type="button" value="注册"> 47 </td> 48 </tr> 49 </table> 50 </s:form>
2、struts.xml配制跳转
1 <package name="user" namespace="/" extends="tiles-default"> 2 <action name="login" class="net.nw.action.UsersAction" method="login"> 3 <result type="tiles">adminTiles</result> 4 <result name="input">/login.jsp</result> 5 </action> 6 </package>
3、vo
1 package net.nw.vo; 2 3 import java.util.Date; 4 5 /** 6 * 用户 7 * @author syj 8 * 9 */ 10 public class Users { 11 private int userId; 12 private String username; 13 private String password;; 14 private String status; 15 private Date regdate; 16 private int roleid; 17 18 public int getUserid() { 19 return userId; 20 } 21 public void setUserId(int userId) { 22 this.userId = userId; 23 } 24 public String getUsername() { 25 return username; 26 } 27 public void setUsername(String username) { 28 this.username = username; 29 } 30 public String getPassword() { 31 return password; 32 } 33 public void setPassword(String password) { 34 this.password = password; 35 } 36 public String getStatus() { 37 return status; 38 } 39 public void setStatus(String status) { 40 this.status = status; 41 } 42 public Date getRegdate() { 43 return regdate; 44 } 45 public void setRegdate(Date regdate) { 46 this.regdate = regdate; 47 } 48 public int getRoleId() { 49 return roleid; 50 } 51 public void setRoleId(int roleId) { 52 this.roleid = roleId; 53 } 54 55 }
1 package net.nw.vo; 2 3 import java.util.Map; 4 5 import net.nw.dao.UserrolesDAO; 6 7 /** 8 * 用户角色 9 * 10 * @author syj 11 * 12 */ 13 public class UserRoles { 14 private int roleid; 15 private String roleName; 16 private Map<Integer, String> roles; 17 18 public UserRoles() 19 { 20 UserrolesDAO urDao = new UserrolesDAO(); 21 roles = urDao.getRoles(); 22 } 23 24 public Map<Integer, String> getRoles() { 25 return roles; 26 } 27 28 public void setRoles(Map<Integer, String> roles) { 29 this.roles = roles; 30 } 31 32 public int getRoleId() { 33 return roleid; 34 } 35 36 public void setRoleId(int roleId) { 37 this.roleid = roleId; 38 } 39 40 public String getRoleName() { 41 return roleName; 42 } 43 44 public void setRoleName(String roleName) { 45 this.roleName = roleName; 46 } 47 48 }
vo关系视图
4、UsersAction行为
1 package net.nw.action; 2 3 import net.nw.dao.UserDAO; 4 import net.nw.vo.Users; 5 6 import com.opensymphony.xwork2.ActionSupport; 7 import com.opensymphony.xwork2.ModelDriven; 8 9 public class UsersAction extends ActionSupport implements ModelDriven<Users>{ 10 11 private Users u = new Users(); 12 13 public String login() 14 { 15 System.out.println("用户名:" + u.getUsername()); 16 System.out.println("密码:" + u.getPassword()); 17 System.out.println("类型:" + u.getRoleId()); 18 UserDAO dao = new UserDAO(); 19 if(dao.userLogin(u)) 20 { 21 return SUCCESS; 22 } 23 else 24 { 25 this.addActionMessage("用户名或密码错误!"); 26 return INPUT; 27 } 28 } 29 30 public Users getModel() 31 { 32 return u; 33 } 34 }
5、DAO
1 package net.nw.dao; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 6 /** 7 * 数据库链接 8 * @author syj 9 * 10 */ 11 public class Conn { 12 private static String dbUrl = "jdbc:mysql://localhost:3306/smt"; 13 private static String dbUser = "root"; 14 private static String dbPwd = "123456"; 15 16 //静态方法块,在构建对象时,调用 17 static 18 { 19 try{ 20 Class.forName("com.mysql.jdbc.Driver"); 21 }catch(ClassNotFoundException e) 22 { 23 e.printStackTrace(); 24 } 25 } 26 27 public static Connection getConnection() throws Exception 28 { 29 return DriverManager.getConnection(dbUrl,dbUser,dbPwd); 30 } 31 }
1 package net.nw.dao; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 7 import net.nw.vo.Users; 8 9 public class UserDAO { 10 public boolean userLogin(Users u) { 11 Connection conn = null; 12 PreparedStatement stmt = null; 13 ResultSet rs = null; 14 15 try { 16 conn = Conn.getConnection(); 17 String sql = "select username,password,roleid from users where username=? and password=? and roleid=?"; 18 stmt = conn.prepareStatement(sql); 19 stmt.setString(1, u.getUsername()); 20 stmt.setString(2, u.getPassword()); 21 stmt.setInt(3, u.getRoleId()); 22 rs = stmt.executeQuery(); 23 if (rs.next()) { 24 return true; 25 } else { 26 return false; 27 } 28 } catch (Exception ex) { 29 ex.printStackTrace(); 30 return false; 31 } finally { 32 // 关闭数据库链接 33 try { 34 if (rs != null) { 35 rs.close(); 36 rs = null; 37 } 38 if (stmt != null) { 39 stmt.close(); 40 stmt = null; 41 } 42 if (conn != null) { 43 conn.close(); 44 conn = null; 45 } 46 } catch (Exception ex) { 47 ex.printStackTrace(); 48 } 49 } 50 } 51 }
1 package net.nw.dao; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.Statement; 6 import java.util.HashMap; 7 import java.util.Map; 8 9 public class UserrolesDAO { 10 11 //查找角色 12 public Map<Integer,String> getRoles(){ 13 Map<Integer,String> map = new HashMap<Integer, String>(); 14 Connection conn = null; 15 Statement stmt = null; 16 ResultSet rs = null; 17 18 try 19 { 20 conn = Conn.getConnection(); 21 stmt = conn.createStatement(); 22 String sql = "select roleId,roleName from userroles;"; 23 rs = stmt.executeQuery(sql); 24 while(rs.next()) 25 { 26 //System.out.println(rs.getInt("roleId")); 27 //System.out.println(rs.getString("roleName")); 28 map.put(rs.getInt("roleId"), rs.getString("roleName")); 29 } 30 return map; 31 } 32 catch(Exception ex) 33 { 34 ex.printStackTrace(); 35 return map; 36 } 37 finally 38 { 39 //关闭数据库链接 40 try 41 { 42 if(rs != null) 43 { 44 rs.close(); 45 rs = null; 46 } 47 if(stmt != null) 48 { 49 stmt.close(); 50 stmt = null; 51 } 52 if(conn != null) 53 { 54 conn.close(); 55 conn = null; 56 } 57 } 58 catch(Exception ex) 59 { 60 ex.printStackTrace(); 61 } 62 63 } 64 } 65 66 67 }
代码流程简单梳理:

浙公网安备 33010602011771号