我正在构建一个Web应用程序,我有一个登录jsp表单,它将被重定向到一个servlet ......
我的servlet代码:
Login login=new Login();
login.setUserName(request.getParameter("txtUsername"));
login.setPassWord(request.getParameter("txtPassword"));
LoginService ls=new LoginService();
ls.loginValidate(login);
RequestDispatcher rd=request.getRequestDispatcher("/Login.jsp");
rd.forward(request, response);
}
从他们到服务类: 我的服务类代码:
public class LoginService {
Login login=null;
public Login loginValidate(Login login) {
validateLogin(login);
return login;
}
private void validateLogin(Login login) {
this.login=login;
if(login!=null){
LoginDAO ld=new LoginDAO();
DataSource dataSource=new DataSource();
ld.setDataSource(dataSource);
ld.validate(login);
}
}
}
}
从他们到DAO
我的LoginDAO:
public class LoginDAO {
private DataSource dataSource;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public boolean validate(Login login){
boolean status=true;
String sql="select * from Login where UserName=? and PassWord=?";
Connection conn = null;
try{
conn = dataSource.createConnection();
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,login.getUserName());
ps.setString(2,login.getPassWord());
ResultSet rs=ps.executeQuery();
status=rs.next();
}
catch (SQLException e) {
throw new RuntimeException(e);
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {}
}
}
return status;
}
}
但是当我键入正确的用户名和密码时,它会重定向到成功页面(在此上下文中为Login.jsp),即使我输入错误的un和pw重定向,我也明白为什么因为在servlet中调用方法之后我已经调度了它登录到login.jsp所以在任何情况下它都会重定向我。但我的一个朋友解决这个问题建议我在un和pw输入错误时添加自定义异常类..现在我想知道如何为这个应用程序编写这个自定义异常类。所以请有人在这方面帮助我......提前致谢...
答案 0 :(得分:0)
try{
boolean status=true;
stmt=con.createStatement();
res=stmt.executeQuery("select count(*) from user where USER_NAME='"+strUsername+"'and PASSWORD='"+strPassword+"'");
res.next();
count=res.getInt(1);
if(count==1){
return status;
}
else{
return false;
}
}
答案 1 :(得分:0)
ls.loginValidate(login)可以返回登录状态,如true或false boolean,如果登录成功则登录用户对象。取决于loginVlidate的返回类型,您可以将消息设置为jsp pag,如:
if(login){
setAttribute("LoginMsg","Login Successfull.")
RequestDispatcher rd=request.getRequestDispatcher("/Login.jsp");
rd.forward(request, response);
}else{
setAttribute("LoginMsg","Login fails.")
RequestDispatcher rd=request.getRequestDispatcher("may be another page (error)");
rd.forward(request, response);
}
你可以在jsp中获得attriubte。