求指点:myeclipse中web用户登陆check的问题

hello_dagoushi 2015-12-14 07:22:01
在myeclipse中做web project的登陆页面验证时,无论输入的用户名和密码是否错误都自动跳转到failure的失败页面,新人表示研究了很久查了很多资料还是不懂

以下是我的部分代码,求各路高手指点迷津T T!
首先在登陆login.html页面中 <form id="form1" name="form1" action="yanz" method="post">
然后在验证的的yanz.java页面中链接sql数据库(yanz.java这个页面是创建的servlet),从数据库中读取已有的用户名和密码,验证登陆页面的数据是否正确

String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String DBURL="jdbc:sqlserver://localhost:1433;DatabaseName=denglu";
String DBNAME="sa";//登陆数据库的用户名和密码
String DBPASS="123";

Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null; //代表sql语句执行的结果集
boolean flag=false;

String username=request.getParameter("username");//从客户端获得请求的参数
String password=request.getParameter("password");

try{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBNAME,DBPASS);
String sql="select username,password from user where username=? and password=?";//从数据库中选出密码和用户名,user是数据库表名
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,"username");
pstmt.setString(2,"password");
rs=pstmt.executeQuery();
if(rs.next()){
flag=true;
}
}catch(Exception e){}
finally
{
try{
conn.close();
}catch(Exception e){}
}

if(flag){
response.sendRedirect("success.jsp");
}else{
response.sendRedirect("failure.jsp");
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);


}

...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello_dagoushi 2015-12-15
  • 打赏
  • 举报
回复
~_~已经解决了,是工程没有导入驱动的包…… 昨晚用system.out.printlin语句输出的时候发现try中间的大段语句没有执行直接跳到异常去了 谢谢你!!!
街头小贩 2015-12-14
  • 打赏
  • 举报
回复
,完了就不执行其他的语句了。编译也通过了 re: 什么意思?
hello_dagoushi 2015-12-14
  • 打赏
  • 举报
回复
~_~代码乱乱的会改进……我用的是myeclipse,按你的调换了代码,然后地址栏的地址就变成http://localhost:8089/LALA/yanz跳转到yanz页面提示需要重新操作,完了就不执行其他的语句了。编译也通过了。
街头小贩 2015-12-14
  • 打赏
  • 举报
回复
servlet是单例模式,不要在类路径放动态数据

<form id="form1" name="form1"  action="/yanz" method="post">
</form>
街头小贩 2015-12-14
  • 打赏
  • 举报
回复

package servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author xiaofanku
 */
@WebServlet("/yanz")
public class BeanServlet extends HttpServlet {
    final String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    final String DBURL="jdbc:sqlserver://localhost:1433;DatabaseName=denglu";
    final String DBNAME="sa";//登陆数据库的用户名和密码
    final String DBPASS="123";

    
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request,response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            String username = request.getParameter("username");//从客户端获得请求的参数
            String password = request.getParameter("password");
            
            Connection conn=null;
            PreparedStatement pstmt=null;
            ResultSet rs=null; //代表sql语句执行的结果集
            
            boolean flag=false;
            
            Class.forName(DBDRIVER);
            conn = DriverManager.getConnection(DBURL, DBNAME, DBPASS);
            String sql = "select username,password from user where username=? and password=?";
            //从数据库中选出密码和用户名,user是数据库表名
            pstmt = conn.prepareStatement(sql);
            
            pstmt.setString(1, username);
            pstmt.setString(2, password);
            
            rs = pstmt.executeQuery();
            if (rs.next()) {
                flag = true;
            }
            
            if (flag) {
                response.sendRedirect("success.jsp");
            } else {
                response.sendRedirect("failure.jsp");
            }
        } catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(BeanServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

我的环境:java7+,servlet 3+,netbean8.1
街头小贩 2015-12-14
  • 打赏
  • 举报
回复
看你贴个代码乱乱的!它能好用才怪!

10,608

社区成员

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

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