struts.xml配置
<package name="default"  extends="struts-default">        <action name="login" class="com.java.action.LoginServlet">
            <result name="success">/success.jsp</result>
            <result name="input">/login.jsp</result>
        </action>
</package>
DB代码
public class DB {
private static String url ="jdbc:mysql://localhost:3306/test";
private static String name = "root";
private static String password ="password";

public  DB(){
}

static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
//创建连接
public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url, name, password);
}

//释放资源
public static void free(Connection conn,Statement stmt,ResultSet rs){

try {
if(rs!=null)
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
if(stmt!=null)
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
if(conn!=null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
dao代码
public class AdminDao {

 public DB db = null;

public AdminDao(){

db = new DB();
}

public String getAdminPassword(String admin_user) throws SQLException{

UserForm user = new UserForm();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;

String admin_password = "";
String sql = "select * from tb_login where admin_user = '"+admin_user+"'";

conn = db.getConnection();

ps = conn.prepareStatement(sql);

rs = ps.executeQuery();

while(rs.next()){
admin_password = rs.getString("admin_password");
}

return  admin_password;
}

}
action代码
public class LoginServlet extends ActionSupport {

private static AdminDao adminDao = null;
UserForm user = new UserForm();
static {

adminDao = new AdminDao();
}
//验证表单数据是否为空
public void validateIndex() {
if (null == user.getAdmin_user() || user.getAdmin_user().equals("")) {
this.addFieldError("admin_user", "| 请您输入用户名");
}
if (null == user.getAdmin_password() || user.getAdmin_password().equals("")) {
this.addFieldError("admin_password", "| 请您输入密码");
}
}


//验证用户登录
public String login() throws SQLException {
String query_password = adminDao.getAdminPassword(user.getAdmin_user());
if (query_password.equals("")) {
this.addActionError("| 该用户名不存在");
return INPUT;
}
if (!query_password.equals(user.getAdmin_password())) {
this.addActionError("| 您输入的密码有误,请重新输入");
return INPUT;
}
return SUCCESS;
}
}form代码
public class UserForm {
private String admin_user;
private String admin_password;
public String getAdmin_user() {
return admin_user;
}
public void setAdmin_user(String adminUser) {
admin_user = adminUser;
}
public String getAdmin_password() {
return admin_password;
}
public void setAdmin_password(String adminPassword) {
admin_password = adminPassword;
}

}为什么点击确定,直接跳转到成功页面

解决方案 »

  1.   

     <action name="login" class="com.java.action.LoginServlet">你没有指定method属性,调用的就是execute方法,默认返回success
      

  2.   

    怎么感觉struts1和struts2混起来了。
      

  3.   

    UserForm楼主应该是想做一个VO或者DTO吧,差不多啦,命名不好而已
      

  4.   

    UserForm :在楼主设计的这个里面算VO或者TDO吧。不影响,命名不好而已嘛
      

  5.   

    你的login方法直接返回的就是SUCCESS,所以就直接跳转到成功页面了
      

  6.   

    楼上说错了楼主的是public String login() throws SQLException {
    String query_password = adminDao.getAdminPassword(user.getAdmin_user());
    if (query_password.equals("")) {
    this.addActionError("| 该用户名不存在");
    return INPUT;
    }
    if (!query_password.equals(user.getAdmin_password())) {
    this.addActionError("| 您输入的密码有误,请重新输入");
    return INPUT;
    }
    return SUCCESS;
    }
    }
    原因是<action name="login" class="com.java.action.LoginServlet" method="login">加上就好了
      

  7.   

    原因我以说了,不加 method="login"默认调用execute,execute方法默认返回success
      

  8.   


    加上method="login"就可以了,,谢谢了啊