我的提交页面为:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
 <form name="form2" method="post" action="check.jsp"/>
&nbsp;&nbsp; <a href="index.jsp">雨过天晴首页</a> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
用户名 <input type="text" name="username" size="10" /> &nbsp;
密  码 <input type="password" name="pwd" size="10" />&nbsp;
 <input type="submit"  value="登录"  />
</form>
</html>
我的check.jsp页面为:
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page language="java" contentType="text/html;charset=gb2312"%> 
<% 
//获取提交的用户名和密码 
request.setCharacterEncoding("gb2312");
String username=request.getParameter("username"); 
String pwd=request.getParameter("pwd"); 
Connection conn=null;
Statement st=null;
ResultSet rs=null;
String driver="com.mysql.jdbc.Driver";
String dbUrl="jdbc:mysql://localhost:3306/UserDB"; 
String dbUser="root";
String dbpwd="12345678";
Class.forName(driver); 
conn=DriverManager.getConnection(dbUrl,dbUser,dbpwd);
st=conn.createStatement();
String sql="select pwd from userinfo where username='"+username+"'"; 
rs=st.executeQuery(sql); 
//判断用户是否存在 
while(rs.next()) 

  if(pwd.equals(rs.getString("pwd")))
  {
   session.setAttribute("name",username);
   response.sendRedirect("index.jsp"); 
  }
else 

    out.println("用户名或密码错误!!请重新<a href=index.jsp>登录</a>"); 

 } 
//关闭 结果集 会话 和 连接 
rs.close(); 
st.close(); 
conn.close(); 
%> 
提交过去页面没反映,就是空白一片,如果提交的页面是其他页面都行,不知道我代码到底什么问题··谢谢了

解决方案 »

  1.   

    while(rs.next())这句不满足的话,if跟else里面的代码就都不会执行了,也就没有结果了
      

  2.   

    嗯,前提是满足条件···我原本还有这样的语句
    request.setCharacterEncoding("gb2312"); 
    String username=request.getParameter("username"); 
    String pwd=request.getParameter("pwd"); 
    if(username==null||pwd==null)
    {
     out.println("```");
      return;
    }
    也没有反映··只有跳转,然后空白一片··
      

  3.   

    应该是楼上说的原因。遇到这种问题你可以在代码里面加一些打印语句,看到底提交过去没有。用Eclipse的话可以debug一下,就能很快找出问题的所在了。
      

  4.   

    String sql="select pwd from userinfo where username='"+username+"'"; 
    rs=st.executeQuery(sql); 执行出来 如果你数据库中不存在用户名=username这条数据的话。还是一样的
      

  5.   

    我在最开始加了句out.println(request.getParameter("username"));·
    ·第一次显示过去为null··第二次我再重新登录就对了··
    以前一直都这样登录的但就空白··
    ,代码是分明真的没问题滴嘛···
    郁闷郁闷··这种难道是错误????什么错误·哦?
    嗨,不懂··还是谢谢楼上的提醒总算弄出来了
      

  6.   

    那你修改后有没有重新启动web服务器啊
      

  7.   

    嗯,什么都没改,就是对页面就行刷新而已·
    第一次显示为null后,后来我就把那句注释掉了··
      

  8.   

    我给你做一个给你参考你看行不咯实体类
    Class User{
       private String name;
       private String pwd;   生成Get和Set方法
    }<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> 
    <html> 
    <form name="form2" method="post" action="check.jsp"/> 
    &nbsp;&nbsp; <a href="index.jsp">雨过天晴首页 </a> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 
    用户名 <input type="text" name="username" size="10" /> &nbsp; 
    密  码 <input type="password" name="pwd" size="10" />&nbsp; 
    <input type="submit"  value="登录"  /> 
    </form> 
    </html> <%@ page import="java.io.*"%> 
    <%@ page import="java.util.*"%> 
    <%@ page import="java.sql.*"%> 
    <%@ page language="java" contentType="text/html;charset=gb2312"%> 
    <% 
    //获取提交的用户名和密码 
    request.setCharacterEncoding("gb2312"); 
    String username=request.getParameter("username"); 
    String pwd=request.getParameter("pwd"); 
    Connection conn=null; 
    Statement st=null; 
    ResultSet rs=null; 
    String driver="com.mysql.jdbc.Driver"; 
    String dbUrl="jdbc:mysql://localhost:3306/UserDB"; 
    String dbUser="root"; 
    String dbpwd="12345678"; 
    Class.forName(driver); 
    conn=DriverManager.getConnection(dbUrl,dbUser,dbpwd); 
    st=conn.createStatement(); 
    String sql="select pwd from userinfo where username='"+username+"'"; 
    rs=st.executeQuery(sql); 
    //判断用户是否存在 
    while(rs.next()) 

    User user=new User();
      if(username.equals(user.getName())) 
      { 
      session.setAttribute("name",username); 
     request.getRequestDispatcher("index.jsp").forward(request, response);  } 
    else 

        out.println("用户名或密码错误!!请重新 <a href=index.jsp>登录 </a>"); 


    //关闭 结果集 会话 和 连接 
    rs.close(); 
    st.close(); 
    conn.close(); 
    %> 
      

  9.   

    我记得】
    response.sendRedirect();是在浏览器端跳转不传参数的样你用request.getRequestDispatcher("").forward(request,response)试试
    你也可以用jsp+javaBean+servlet来做分离
    代码到没撒问题你的indext.jsp里有内容不