求解惑!!!!
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);
}
}?
------解决方案--------------------
粗略看了下,这跟数据库应该无多大关系
请楼主认真检查两个值,System.out.print(pwd) 时pwd有空格与无空格在控制台打印是一个效果的,我估计是那个字符含有些打印出来但看不见的,比如空格