java 写jsp登录页面。判定数据库里的用户名和密码。 为什么 无论我在页面输入什么 ,都显示登录失败。 10

packagecn.zero.action;importjava.sql.Connection;importjava.sql.DriverManager;importja... package cn.zero.action;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpServletRequest;
import cn.zero.service.LoginCheck;
import oracle.jdbc.driver.DBConversion;

import org.apache.struts2.ServletActionContext;
public class LoginAction extends ActionSupport{
private String uname;
private String upassword;
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}

public LoginAction()
{
}

public String getUname()
{
return uname;
}

public void setUname(String uname)
{
this.uname = uname;
}

public String getUpassword()
{
return upassword;
}

public void setUpassword(String upassword)
{
this.upassword = upassword;
}

public void validate()
{
if (getUname() == null || "".equals(getUname().trim()))
addFieldError("uname", "必须输入用户名");
if (getUpassword() == null || "".equals(getUpassword().trim()))
addFieldError("upassword", "必须输入密码");
}

public String execute() throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "pain", "123");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select *from reguser where user_name='"+this.uname+"' and user_password='"+this.upassword+"'");
try {
if(!rs.next()){
this.msg="用户名或密码不正确";
return "error";
}
else
return "success";

} catch (Exception e) {
e.printStackTrace();
}
return null;

}
}
展开
 我来答
liujie151376
2012-11-19 · TA获得超过411个赞
知道小有建树答主
回答量:270
采纳率:0%
帮助的人:195万
展开全部
select *from reguser where user_name,注意看,这里,*和from之间少了一个空格,导致rs里面是空的,那个try块里面会发生异常
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
松依03S
2012-11-19 · TA获得超过347个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:170万
展开全部
1、在自定义验证方法validate()时,应先清空FieldError信息;

2、sql语句中有错误,*和from中间用空格隔开;
3、去掉try、catch语句,不要返回null;
4、关闭conn。
追问
去掉try  catch  那这个函数头怎么写啊。 没有try 会报错的吧
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
476046707
推荐于2017-10-06 · 超过10用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:38.1万
展开全部
你在JSP页面上通过账号密码两个文本框的name在servlet里面获得值对调用DAO 查询你的账号信息只要是不等于或者为空让他重定向到你的JSP 成功就接着走呗。要是不想的话用AJAX 对值判断也成但后返回到页面 写一个IF循环。 没什么难的啊就是查询加判断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
别七达甜人13
2012-11-19 · 超过17用户采纳过TA的回答
知道答主
回答量:162
采纳率:0%
帮助的人:30万
展开全部
return "success";
上面写一行
this.msg="";
登陆成功后就将原来的报过错的清空下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式