<%-- 
    Document   : index
    Created on : 2011-12-13, 9:47:34
    Author     : Administrator
--%><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd"><html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body bgcolor="#EAF0FB">
      <%@ include file="/head.jsp"%>
      <form action="Servlet1" method="post">
<table width="399" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#EBEBEB">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr align="left">
<td height="35" colspan="2" bgcolor="#EAF0FB">
<div align="center"><span><strong>用 户 登 录 </strong></span></div>
</td>
</tr> <tr>
<td width="141" height="45" align="center" bgcolor="#EBEBEB">您的帐号:</td>
<td width="258" align="left" bgcolor="#EBEBEB"><input name="username" type="text" /></td>
</tr>
<tr> </tr>
<tr>
<td height="45" align="center" bgcolor="#EBEBEB">您的密码:</td>
<td align="left" bordercolor="#EBEBEB" bgcolor="#EBEBEB">
                                            <input name="password" type="password" size="21" /></td>
</tr>
<tr>
<td height="60" colspan="2" bgcolor="#EAF0FB">
<div align="center"><input name="submit" type="submit"value="登  录" />
                                            &nbsp;&nbsp;&nbsp;&nbsp; <input name="reset" type="reset" value="重  置" /></div>
</td>
</tr>
</table>
        </form>
    </body>
</html>
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import test.checklogin;/**
 *
 * @author Administrator
 */
public class Servlet1 extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet Servlet1</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet Servlet1 at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");
            */
        } finally { 
            out.close();
        }
    }     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * 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 {
        processRequest(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 {
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        HttpSession session=request.getSession(true);
        checklogin ck=new checklogin();
        ck.setUsername(username);
        ck.setPassword(password);
        String path = null ;
        if(ck.checklogin())
{
                        session.setAttribute("uname",ck.getUsername()) ;
path = "login_succss.jsp" ;
}
else
{
path = "login_failure.jsp" ;
}
request.getRequestDispatcher(path).forward(request,response) ;
    }    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>}/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */package test;import java.sql.*;/**
 *
 * @author Administrator
 */
public class checklogin {
     private String username,password;    public String getPassword() {
        return password;
    }    public void setPassword(String password) {
        this.password = password;
    }    public String getUsername() {
        return username;
    }    public void setUsername(String username) {
        this.username = username;
    }    public boolean checklogin(){
                boolean flag = false ;
                String driverClass = "org.gjt.mm.mysql.Driver";
                String url = "jdbc:mysql://localhost:3306/bbs?useUnicode=true&characterEncoding=utf8";
                String name = "root";
                String passwd = "12345";
Connection conn = null ;
                Statement stmt = null ;
                ResultSet rs = null ;
                String sql = null ;
          try {
          Class.forName(driverClass);
          conn = DriverManager.getConnection(url, name, passwd);
          stmt = conn.createStatement() ;
          sql = "SELECT name FROM users WHERE id='"+username+"' and password='"+password+"'" ;
          rs = stmt.executeQuery(sql) ;
         if(rs.next())
{
           flag=true ;
}
         rs.close();
         stmt.close() ;
         conn.close() ;
           } catch (Exception e) {
            e.printStackTrace(System.err);
        }
        return flag;
    }
}

解决方案 »

  1.   

    flag的值那里不能变为TRUE   是什么问题呢?  
    if(rs.next())
    {
      flag=true ;
    }
    这段没起作用??
      

  2.   

    给的信息太少。
    检查:
    web.xml对Servlet的配置
    JDBC那一块是否访问没问题
      

  3.   

    Servlet的配置
    应该没问题   我就是不清楚JDBC那段又没问题啊     
      

  4.   

    但是我用这条SQL在数据库中查到了结果
      

  5.   

    package test;import java.sql.*;/**
     *
     * @author Administrator
     */
    public class checklogin {
      private String username,password;  public String getPassword() {
      return password;
      }  public void setPassword(String password) {
      this.password = password;
      }  public String getUsername() {
      return username;
      }  public void setUsername(String username) {
      this.username = username;
      }  public boolean checklogin(){
      boolean flag = false ;
      String driverClass = "org.gjt.mm.mysql.Driver";
      String url = "jdbc:mysql://localhost:3306/bbs?useUnicode=true&characterEncoding=utf8";
      String name = "root";
      String passwd = "12345";
    Connection conn = null ;
      Statement stmt = null ;
      ResultSet rs = null ;
      String sql = null ;
      try {
      Class.forName(driverClass);
      conn = DriverManager.getConnection(url, name, passwd);
      stmt = conn.createStatement() ;
      sql = "SELECT name FROM users WHERE id='"+username+"' and password='"+password+"'" ;
      rs = stmt.executeQuery(sql) ;
      if(rs.next())
    {
      flag=true ;
    }
      rs.close();
      stmt.close() ;
      conn.close() ;
      } catch (Exception e) {
      e.printStackTrace(System.err);
      }
      return flag;
      }
    }好吧 我错了   我主要想知道红色这段为什么没起效果
      

  6.   

    你确定你的程序运行到这一块了吗?
    System.Out.printlf一下,看看控制台能不能打印出东西,程序有没有运行到这一块。
    如果可以,再把得到的东西打印出来。
    当然,最好是能Debug
      

  7.   

    可能Servlet的问题   Servlet怎么输出 
      

  8.   

    也可以的啊!
    你试试吧
    debug最好了。
      

  9.   

    应该是SQL语句的问题,对SQL进行预处理看看