求解惑!!!!

jxwanghao 2011-11-12 11:03:07
1. 请问SQLServer 2008里面的MSSQLServer引擎和SQLServer引擎可以同时启动吗??

昨天遇到一变态错误,不知道什么原因,请看如下代码:
package com.servlet;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import java.util.*;
public class LoginCl extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse res){

Connection conn=null;
Statement stm=null;
ResultSet rs=null;
try {
//------加载JDBC-ODBC驱动------
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//------得到连接对象------
//String connStr="jdbc:odbc:test";
String connStr="jdbc:sqlserver://localhost:1433;DatabaseName=test1";
conn=DriverManager.getConnection(connStr,"sa","08062129");

//接受用户名和密码
String user=req.getParameter("username");
String pwd=req.getParameter("passwd");

//创建statement
stm=conn.createStatement();
rs=stm.executeQuery("select top 1 passwd from tb_users where username='"+user+"'");

//说明用户是存在的
if(rs.next()){
String dbPasswd=rs.getString(1);
System.out.print(dbPasswd); //得到的值是admin
System.out.print(pwd);//得到的值是admin
boolean b=dbPasswd.equals(pwd);
System.out.print(b);//得到的却是false

//这段代码的变态就是我必须写 " !dbPasswd.equals(pwd) " 才会运行得到正常的结果,不知道是不是SQLServer 2008的原因??? 求解惑!
if(dbPasswd.equals(pwd)){
//将验证成功的信息写入session,并得到session
HttpSession hs=req.getSession(true);
//修改session存在的时间
hs.setMaxInactiveInterval(20);
hs.setAttribute("pass","ok");
res.sendRedirect("welcome?uname="+user+"&passwd="+pwd);
}else{
res.sendRedirect("login");
}
}

}
catch (Exception ex) {
ex.printStackTrace();
}finally{
try {
if(rs!=null){
rs.close();
}
if(stm!=null){
stm.close();
}
if(conn!=null){
conn.close();
}
}
catch (Exception ex) {
ex.printStackTrace();
}

}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
...全文
129 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
游一游走一走 2011-11-12
  • 打赏
  • 举报
回复
粗略看了下,这跟数据库应该无多大关系
请楼主认真检查两个值,System.out.print(pwd) 时pwd有空格与无空格在控制台打印是一个效果的,我估计是那个字符含有些打印出来但看不见的,比如空格
jxwanghao 2011-11-12
  • 打赏
  • 举报
回复
求高手指点,其他同学的没有出现这种情况,不过他们的数据库不是SQLServer 2008 ,不知道是不是数据库的原因,求指点,先谢谢了!
jxwanghao 2011-11-12
  • 打赏
  • 举报
回复

谢谢楼上的兄弟了,搞定了。^-^

trim() 返回字符串的副本,忽略前导空白和尾部空白。


(sPasswd.trim()).equals(passwd.trim())

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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