下面的是我的login.jsp程序
当选择复选框陌生人登录的时候,点击“登录”按钮,可以进入留言界面。当有正确的用户名跟密码登录的时候就进入留言界面。但是当我都没有选择的时候直接点击“登录”按钮也可以进入留言界面,我下面的代码是没有任何选择时点击“登录”按钮是原来的界面。我感觉是在判断空值的时候出错了!请大家帮忙下,小女子不胜感激……<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %><HTML>
<BODY>
<CENTER>
<h1>登录界面</h1>
<%
String guest[]=request.getParameterValues("guest");
if(guest!=null)//对登录的是否是陌生人进行判断
{
session.setAttribute("username",guest);
response.sendRedirect("liuyan1.jsp");
}
else
{
Connection con;
Statement sql;
ResultSet rs;
String name="";
String pwd="";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{
out.print("出错1"+e);
}
try{
con=DriverManager.getConnection("jdbc:odbc:messagedb","sa","sa");
sql=con.createStatement();
name=request.getParameter("username");
pwd=request.getParameter("password");
//byte a[]=name.getBytes("ISO-8859-1");
//name=new String(a);
//byte b[]=pwd.getBytes("ISO-8859-1");
//pwd=new String(b);
if(name!=null && pwd!=null)
{
String q="select * from user where username='"+name+"' and password='"+pwd+"'";
rs=sql.executeQuery(q);
if(rs.next())
{
rs.close();
session.setAttribute("username",name);
session.setAttribute("password",pwd);
response.sendRedirect("liuyan1.jsp");
}
else
{
rs.close();
session.setAttribute("error","error");
response.sendRedirect("error.jsp");
}
}
else if(name==null&&pwd==null)
{
%>
<form method="post" name="frm1" action="login.jsp">
用户名:<input type=text name="username">
<BR>
<BR>
密码:<input type=password name="password">
<BR>
<BR>
<input type="checkbox" name="guest" value="匿名登陆" > 匿名登录
<BR>
<BR>
<input type="submit" name="sumbit" value="登录" >
<BR>
<BR>
<input type="button" name="button" value="注册会员" onclick="javascript:window.location.href='register.jsp'" >
</form>
<%
}
}
catch(SQLException e)
{
out.print("出错2"+e);
}
}
%>
</CENTER>
</BODY>
</HTML>
当选择复选框陌生人登录的时候,点击“登录”按钮,可以进入留言界面。当有正确的用户名跟密码登录的时候就进入留言界面。但是当我都没有选择的时候直接点击“登录”按钮也可以进入留言界面,我下面的代码是没有任何选择时点击“登录”按钮是原来的界面。我感觉是在判断空值的时候出错了!请大家帮忙下,小女子不胜感激……<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %><HTML>
<BODY>
<CENTER>
<h1>登录界面</h1>
<%
String guest[]=request.getParameterValues("guest");
if(guest!=null)//对登录的是否是陌生人进行判断
{
session.setAttribute("username",guest);
response.sendRedirect("liuyan1.jsp");
}
else
{
Connection con;
Statement sql;
ResultSet rs;
String name="";
String pwd="";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{
out.print("出错1"+e);
}
try{
con=DriverManager.getConnection("jdbc:odbc:messagedb","sa","sa");
sql=con.createStatement();
name=request.getParameter("username");
pwd=request.getParameter("password");
//byte a[]=name.getBytes("ISO-8859-1");
//name=new String(a);
//byte b[]=pwd.getBytes("ISO-8859-1");
//pwd=new String(b);
if(name!=null && pwd!=null)
{
String q="select * from user where username='"+name+"' and password='"+pwd+"'";
rs=sql.executeQuery(q);
if(rs.next())
{
rs.close();
session.setAttribute("username",name);
session.setAttribute("password",pwd);
response.sendRedirect("liuyan1.jsp");
}
else
{
rs.close();
session.setAttribute("error","error");
response.sendRedirect("error.jsp");
}
}
else if(name==null&&pwd==null)
{
%>
<form method="post" name="frm1" action="login.jsp">
用户名:<input type=text name="username">
<BR>
<BR>
密码:<input type=password name="password">
<BR>
<BR>
<input type="checkbox" name="guest" value="匿名登陆" > 匿名登录
<BR>
<BR>
<input type="submit" name="sumbit" value="登录" >
<BR>
<BR>
<input type="button" name="button" value="注册会员" onclick="javascript:window.location.href='register.jsp'" >
</form>
<%
}
}
catch(SQLException e)
{
out.print("出错2"+e);
}
}
%>
</CENTER>
</BODY>
</HTML>
不能这样写
if(request.getParameterValues("guest")){
request=request.getParameterValues("guest");
session.setAttribute("username",guest);
response.sendRedirect("liuyan1.jsp");
}
这样写就对了!
String guest=request.getParameter("guest");
if(null!=guest&&!"".equals(guest))//对登录的是否是陌生人进行判断
{
session.setAttribute("username",guest);
response.sendRedirect("liuyan1.jsp");
}