首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

请大伙看一下这奇怪的代码

2013-12-19 
请大家看一下这奇怪的代码先上代码再说问题:%@ page languagejava contentTypetext/html charsetU

请大家看一下这奇怪的代码
先上代码再说问题:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
  <%@ page import ="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>欢迎光临商品管理系统</title>
</head>
<body>
<center>
<form action=login2.jsp name=form1>
<table>
<tr>~~请先登录~~</tr>
<tr><td>用户名</td><td ><input type=text name="username" id="username"></td></tr>
<tr><td>密码</td><td ><input type=password name="password" id="password"></td></tr>
<tr>
<td><input type=reset name="Submit" value="重置"></td>
<td><input name="Submit" type=submit value="登录"></td>
</tr>

</table>
</form>
<%
Connection conn=null;
try{
String username=request.getParameter("username");
String password=request.getParameter("password");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String strConn="jdbc:sqlserver://localhost:1433;DatabaseName=Goods;characterEncoding=GB2312";
String strUser="sa";
String strPassword="wsc550246215";
conn =DriverManager.getConnection(strConn,strUser,strPassword);
Statement stm=conn.createStatement();
String sql="select User1,Id from dl where User1='"+username+"' and Id='"+password+"'";
int a=-20;
if(username!=""||password!="")
{
a=0;
ResultSet rs=stm.executeQuery(sql);
if(rs.next()){
session.setAttribute("欢迎", username);
response.sendRedirect("show1.jsp");
}
else{
out.print("用户名或密码错误,即将返回");

}
}else{
session.setAttribute("error", "请检查用户名或密码");
response.sendRedirect("login3.jsp");
}

stm.close();
conn.close();

}catch(ClassNotFoundException e){
out.println(e.getMessage());
}


%>
</center>
</body>
</html>
请大伙看一下这奇怪的代码
为什么else与if内2个代码都会触发呢!而且我前面已经判断输入是否非空,空,才执行下面的代码,一运行就如上图所示,实在奇怪,求大家分析下.不胜感激
[解决办法]
else{
out.print("用户名或密码错误,即将返回");

}只是走了这个啊  
[解决办法]
你打个断点一看username和password的值就懂了,要是他们值为null的话,if(username!=""
[解决办法]
password!="")是满足条件的;
要是username或password为""的话,你也不能这样判断啊,老大字符串是这样比较的莫,应该改成if(!"".equals(username) && !"".equals(password))呀

[解决办法]
if(username!=""
[解决办法]
password!="")换成
if(!(username==null
[解决办法]
"".equals(username.trim())
[解决办法]
password==null
[解决办法]
"".equals(password.trim()))

热点排行