黑马程序员技术交流社区

标题: JSP中输入正确的用户名和密码登陆不进去 [打印本页]

作者: 金_鑫    时间: 2012-7-28 13:41
标题: JSP中输入正确的用户名和密码登陆不进去
本帖最后由 金_鑫 于 2012-7-30 15:42 编辑

以下是登陆界面源码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <base href="<%=basePath%>">
   
  <title>登陆页面</title>
   
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
   
  <body>
  <%
  String userid = new String(request.getParameter("username").getBytes("ISO-8859-1"),"GBK");  
  String password = new String(request.getParameter("password").getBytes("ISO-8859-1"),"GBK");  
  if ( userid == "" || userid == null || userid.length()>20 || password == "" || password == null || password.length()>20 )
  {
  try
  {   
  response.sendRedirect ( "wrong.jsp?wrongid=1" );
   
  } catch ( Exception e )
  {
  }
  }   
  else{
  Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
conn =DriverManager.getConnection("jdbc:odbc:student");
stmt = conn.createStatement();   
String sql="SELECT * FROM denglu where id="+userid+" and pw="+password;
if (stmt.execute(sql)) {
rs = stmt.getResultSet();
while(rs.next()){
out.println("登陆成功!<br />");
out.println("欢迎您:"+rs.getString("name"));  
}   
}   
conn.close();
}
catch (SQLException ex){
response.sendRedirect ( "wrong.jsp?wrongid=2" );
} catch (InstantiationException e) {
response.sendRedirect ( "wrong.jsp?wrongid=2" );
} catch (IllegalAccessException e) {
response.sendRedirect ( "wrong.jsp?wrongid=2" );
} catch (ClassNotFoundException e) {
response.sendRedirect ( "wrong.jsp?wrongid=2" );
}
finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException sqlEx) { } // ignore
rs = null;
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException sqlEx) { } // ignore
stmt = null;
}
}
  }
  %>
  </body>
</html>

Access数据库
编号 id pw
1 admin 11
2 11 11

但输入账号admin 密码11 却进不去,为什么,求教。

作者: 高正新    时间: 2012-7-28 18:56
把画红线的改成GBK看看。。

作者: 金_鑫    时间: 2012-7-28 19:01
水木桶 发表于 2012-7-28 18:56
把画红线的改成GBK看看。。

哦知道了
作者: 金_鑫    时间: 2012-7-28 19:02
水木桶 发表于 2012-7-28 18:56
把画红线的改成GBK看看。。

我那用户名和密码是英文的 改GBK没用啊
作者: 刘同超    时间: 2012-7-28 21:11
本帖最后由 刘同超 于 2012-7-28 21:17 编辑
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%@ page import="java.sql.*"%>
  3. <%
  4.         String path = request.getContextPath();
  5.         String basePath = request.getScheme() + "://"
  6.                         + request.getServerName() + ":" + request.getServerPort()
  7.                         + path + "/";
  8. %>

  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  10. <html>
  11.         <head>
  12.                 <base href="<%=basePath%>">

  13.                 <title>登陆页面</title>

  14.                 <meta http-equiv="pragma" content="no-cache">
  15.                 <meta http-equiv="cache-control" content="no-cache">
  16.                 <meta http-equiv="expires" content="0">
  17.                 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18.                 <meta http-equiv="description" content="This is my page">
  19.                 <!--
  20. <link rel="stylesheet" type="text/css" href="styles.css">
  21. -->

  22.         </head>

  23.         <body>
  24.                 <%
  25.                         String userid = request.getParameter("username");   // 我修改了这里
  26.                         String password = request.getParameter("password"); // 还有这里
  27.                        
  28.                         // 代码不写在servlet,测试输出代码都有麻烦。
  29.                         %>
  30.                         <!-- 注意,这里是页面输出一下,看输出是否是输入内容。 -->
  31.                                 ${userid }
  32.                                 ${password }
  33.                         <%
  34.                         if (userid == "" || userid == null || userid.length() > 20
  35.                                         || password == "" || password == null
  36.                                         || password.length() > 20) {
  37.                                 try {
  38.                                         response.sendRedirect("wrong.jsp?wrongid=1");

  39.                                 } catch (Exception e) {
  40.                                 }
  41.                         } else {
  42.                                 Connection conn = null;
  43.                                 Statement stmt = null;
  44.                                 ResultSet rs = null;
  45.                                 try {
  46.                                         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
  47.                                         conn = DriverManager.getConnection("jdbcdbc:student");
  48.                                         stmt = conn.createStatement();
  49.                                         String sql = "SELECT * FROM denglu where id=" + userid
  50.                                                         + " and pw=" + password;
  51.                                         if (stmt.execute(sql)) {
  52.                                                 rs = stmt.getResultSet();
  53.                                                 while (rs.next()) {
  54.                                                         out.println("登陆成功!
  55. ");
  56.                                                         out.println("欢迎您:" + rs.getString("name"));
  57.                                                 }
  58.                                         }
  59.                                         conn.close();
  60.                                 } catch (SQLException ex) {
  61.                                         response.sendRedirect("wrong.jsp?wrongid=2");
  62.                                 } catch (InstantiationException e) {
  63.                                         response.sendRedirect("wrong.jsp?wrongid=2");
  64.                                 } catch (IllegalAccessException e) {
  65.                                         response.sendRedirect("wrong.jsp?wrongid=2");
  66.                                 } catch (ClassNotFoundException e) {
  67.                                         response.sendRedirect("wrong.jsp?wrongid=2");
  68.                                 } finally {
  69.                                         if (rs != null) {
  70.                                                 try {
  71.                                                         rs.close();
  72.                                                 } catch (SQLException sqlEx) {
  73.                                                 } // ignore
  74.                                                 rs = null;
  75.                                         }
  76.                                         if (stmt != null) {
  77.                                                 try {
  78.                                                         stmt.close();
  79.                                                 } catch (SQLException sqlEx) {
  80.                                                 } // ignore
  81.                                                 stmt = null;
  82.                                         }
  83.                                 }
  84.                         }
  85.                 %>
  86.         </body>
  87. </html>
复制代码

作者: 高正新    时间: 2012-7-30 14:20
金_鑫 发表于 2012-7-28 19:02
我那用户名和密码是英文的 改GBK没用啊

我感觉你的页面里编码太多了,统一一下看看。。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2