succon 2013-04-17 22:03
浏览 226
已采纳

数据库中管理员登陆

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.school.struts.action;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.school.struts.form.MloginForm;


public class MloginAction extends Action {
  public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  MloginForm mloginForm = (MloginForm) form; // TODO Auto-generated method stub
  
  String username = mloginForm.getUsername();
  String password = mloginForm.getPassword();
  
  if(username.length()==0||password.length()==0){
   return mapping.getInputForward();
  }
       System.out.println("managername=" + username + "    password=" + password);
  Statement stmt =null;
  ResultSet rs = null;
        String sql = "select * from managersdata where managername = '"
    + username + "' and password = '" + password + "'"; 
      try{
       Class.forName("com.mysql.jdbc.Driver");
   Connection conn = DriverManager.getConnection(
     "jdbc:mysql://localhost:3306/logistics", "root", "123456");
   stmt = conn.createStatement();
   rs = stmt.executeQuery(sql);
  if (username.equals(mloginForm.getUsername()) && password.equals(mloginForm.getPassword())){
    return mapping.findForward("success");
   }else{
    request.setAttribute("errorinfo", "用户名或者密码不正确!");
       return mapping.findForward("failure");
   }
  // else return mapping.getInputForward();
        } catch (Exception ex) {
   System.out.println(ex.getMessage());
  } finally {
   try {
    rs.close();
    stmt.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }

  }
  return mapping.getInputForward();
 }
}

代码如上,登陆的时候无论数据库中是否有管理员的数据都登陆成功 怎么解决。。

  • 写回答

2条回答 默认 最新

  • jinnianshilongnian 2013-04-17 22:09
    关注

    String username = mloginForm.getUsername();
    String password = mloginForm.getPassword();

    if (username.equals(mloginForm.getUsername()) && password.equals(mloginForm.getPassword())){

    这不是自己与自己比较嘛 肯定永真啊

    rs = stmt.executeQuery(sql); 你应该得到rs 判断有没有数据 有 就登录成功 否则失败

    String sql = "select * from managersdata where managername = '"
    + username + "' and password = '" + password + "'"; 这个有sql注入问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog