新手提问:关于struts2.0的数据操作。

colie_li 2011-11-25 08:27:40
刚学习struts2,想做一个连接数据库的用户登录验证,就是输入账号,然后通过该账号去数据库查找密码;如果查找的密码跟输入的密码一样则登陆成功,否则不成功;
action:

package com.test.login;
import java.sql.*;

import com.opensymphony.xwork2.ActionSupport;

public class Login extends ActionSupport
{
private String username;
private String password;
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;
String a="sadad";
System.out.print(a);
}
public String DB()
{
Connection con = null;
Statement sql=null;
ResultSet rs=null;
try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:sum","","");
}catch(Exception e){System.out.println("数据库连接错误!");
try{
String sqle="select pass from student where studentid='"+username+"'";
rs=con.createStatement().executeQuery(sqle);
rs.next();
String a=rs.getString("pass");

if(rs.next())
{
if(a==password)
{
return this.SUCCESS;
}
else
{
this.addFieldError("password", "password input worng");
return this.INPUT;
}
}
else
{
this.addFieldError("username", "username input worng");
return this.INPUT;
}
}catch(Exception e1){System.out.println(e1.toString());
}
}
return null;
}
@Override
public String execute() throws Exception {

return "sucess";
}
@Override
public void validate()
{

if(null==this.getUsername()||"".equals(this.getUsername().trim()))
{
this.addFieldError("username", "username err");
}
if(null==this.getPassword()||"".equals(this.getPassword().trim()))
{
this.addFieldError("password", "password err");
}
}

}










xml;


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<package name="struts2" extends="struts-default">

<action name="login" class="com.test.login.Login" >
<result name="input">/login.jsp</result>
<result name="sucess">/index.jsp</result>
</action>


</package>
</struts>








运行的结果是不输入东西提示username err或password err错误,然后无论是输入对的密码还是输入错的密码显示的是空白页;各位牛人解答下;
...全文
57 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang7535067 2011-11-25
  • 打赏
  • 举报
回复
try{
String sqle="select pass from student where studentid='"+username+"'";
rs=con.createStatement().executeQuery(sqle);
rs.next();
String a=rs.getString("pass");

if(rs.next())
{
if(a==password)
{
return this.SUCCESS;
}
else
{
this.addFieldError("password", "password input worng");
return this.INPUT;
}
}
去掉这一句 if(rs.next())
加嘞个油 2011-11-25
  • 打赏
  • 举报
回复

<result>/index.jsp</result>

这样。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧