登录页面:
<form action="logon/Validate" method="post">
  <table align="center" width="280" border="1">
  <tr>
  <td colspan="2" align="center">文 件 管 理 系 统</td>
  </tr>
  <tr>
  <td width="80" align="right">用户类型:</td>
  <td>学生:<input type="radio" name="type" value="0" checked="checked">
  教师:<input type="radio" name="type" value="1"></td>
  </tr>
  <tr>
  <td align="right">用 户 名:</td>
  <td><input type="text" name="username" size="20"></td>
  </tr>
  <tr>
  <td align="right">用户密码:</td>
  <td><input type="password" name="password" size="21"></td>
  </tr>
  <tr>
  <td colspan="2" align="center"><input type="submit" value="提交">&nbsp;&nbsp;&nbsp;
  <input type="reset" value="重置">
  </td>
  </tr>
  <tr>
  <td colspan="2"><font color="#ff0000"><a href="/logon/register.jsp">注册新用户</a></font>
  </td>
  </table>
   </form> 
Servlet:
import java.io.IOException;
import com.Conn;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Validate extends HttpServlet {
 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException{
        response.setContentType("text/html;charset=UTF-8");
        String type=request.getParameter("type");
String username=request.getParameter("username");
String password=request.getParameter("password");
Conn con=new Conn();
//执行判断转向
if(con.judge(username, password, type)==1&&type.equals("1")){
request.setAttribute("username", username);
response.sendRedirect("teacher.jsp");
}
else if(con.judge(username, password, type)==1&&type.equals("0")){
request.setAttribute("username", username);
response.sendRedirect("student.jsp");
}
else{
response.sendRedirect("../error.htm");
}

}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response);
}
}
javabean:
import java.sql.*;
public class Conn {
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
int pd=0;
public int judge(String username,String password,String type){
String sql="SELECT * FROM user where username='"+username+"' and password='"+password+"' and type='"+type+"'";
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://210.32.83.249:3306/fileup";
 Connection conn=DriverManager.getConnection(url,"root","123456");
 stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
if(rs.next()){
pd=1;
}
} catch (Exception e) {
e.printStackTrace();
}
try {
rs.close();
stmt.close();
conn.close();
}
catch (Exception e) {
e.getMessage();
}

return pd;
}}

解决方案 »

  1.   

    主要是以上servlet老是转向error.htm,我用jsp调用bean能成功,不知道这是为什么
      

  2.   

    分开测试 先看你的数据库能不能连接成功,再看sql语句能否查出你想要的结果 最后再看你的判断跳转只能这样了 你那写的实在是看不清楚啊
      

  3.   

    很显然if(con.judge(username, password, type)==1&&type.equals("1"))没进去
    if(con.judge(username, password, type)==1&&type.equals("0"))没进去
    说明con.judge(username, password, type)的返回值不是1,或type.equals("0")返回为假
    或type.equals("0")返回为假,一步一步往前推就知道错误在什么地方了。。
      

  4.   

    if(con.judge(username, password, type)==1&&type.equals("1")){ 
        System.out.println(con.judge(username, password, type));
        System.out.println(type);

        request.setAttribute("username", username); 
        response.sendRedirect("teacher.jsp"); 

    else if(con.judge(username, password, type)==1&&type.equals("0"))

        request.setAttribute("username", username); 
        response.sendRedirect("student.jsp"); 

    else{ 
        response.sendRedirect("../error.htm"); 

    在红色部分输出到控制台看看con.judge(username, password, type)和type的值到底是什么就知道了!!!