在做学生管理系统,登录界面和登录验证代码如下,login.jsp:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030" 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>
<table align="center" width="800" border="0" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
<tr>
<td width="100%" height="200" align="left"><img src="Picture/book.jpg" width="100%" height="200" align="left"></img>
<td width="100" height="100" align="right"><img src="Picture/adb.jpg" width="100" height="100" align="right"></img>
</td>
</tr>
</table>
<%String button1=request.getParameter("button1"); %>
<%if(button1==null) {%>
<table align="center" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" height="100" ></td>
</tr>
<tr>
<td width="100%" align="justify">
<form method="post" action="login.jsp" name="login_form">
<p align="center">用户:<input type="text" name="userName" size="20"></input></p>
<p align="center">密码:<input type="password" name="password" size="20"></input></p>
<p align="center">
<input type="radio" name="systemrole" value="student">学生
<input type="radio" name="systemrole" value="teacher" >教师
<input type="radio" name="systemrole" value="administer">管理员</p>
<p align="center"><input align="left" class="buttonface" type="submit" value="确定" name="button1">
<input class="buttonface" type="reset" value="重写" name="button2"></p>
</form>
</td>
</tr>
</table>
<%} else{
request.setCharacterEncoding("GBK");
String userName,password,systemrole;
userName=(String)request.getParameter("userName");
password=(String)request.getParameter("password");
systemrole=(String)request.getParameter("systemrole");
userName.trim();
password.trim();
systemrole.trim();
if((userName==null)||(password==null)){
response.sendRedirect("./login.jsp");
}
else{
Connection con=null;
Statement s=null;
ResultSet r=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:stud","sa","110");
s=con.createStatement();
String sqlstring=null;
if(systemrole.equals("teacher")) sqlstring=new String("select * from teacher where Tno='"+userName+"' and Tpassword='"+password+"'");
else if(systemrole.equals("administer")) sqlstring=new String("select * from administer where Ano='"+userName+"' and Apassword='"+password+"'");
else if(systemrole.equals("student"))sqlstring=new String("select * from student where Sno='"+userName+"' and Spassword='"+password+"'");
r=s.executeQuery(sqlstring);
if(r.next()){
session.setAttribute("userName",userName);
response.sendRedirect("./"+systemrole+"/top.jsp");
}
else{
System.out.println("用户名和密码不正确!");
}
}
catch(Exception sql){
response.sendRedirect("./loginError.jsp");
}
finally{
con.close();
s.close();
} }
}
%>
</body>
</html>登录失败,有没有那个高手帮忙解决下?急救
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030" 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>
<table align="center" width="800" border="0" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
<tr>
<td width="100%" height="200" align="left"><img src="Picture/book.jpg" width="100%" height="200" align="left"></img>
<td width="100" height="100" align="right"><img src="Picture/adb.jpg" width="100" height="100" align="right"></img>
</td>
</tr>
</table>
<%String button1=request.getParameter("button1"); %>
<%if(button1==null) {%>
<table align="center" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" height="100" ></td>
</tr>
<tr>
<td width="100%" align="justify">
<form method="post" action="login.jsp" name="login_form">
<p align="center">用户:<input type="text" name="userName" size="20"></input></p>
<p align="center">密码:<input type="password" name="password" size="20"></input></p>
<p align="center">
<input type="radio" name="systemrole" value="student">学生
<input type="radio" name="systemrole" value="teacher" >教师
<input type="radio" name="systemrole" value="administer">管理员</p>
<p align="center"><input align="left" class="buttonface" type="submit" value="确定" name="button1">
<input class="buttonface" type="reset" value="重写" name="button2"></p>
</form>
</td>
</tr>
</table>
<%} else{
request.setCharacterEncoding("GBK");
String userName,password,systemrole;
userName=(String)request.getParameter("userName");
password=(String)request.getParameter("password");
systemrole=(String)request.getParameter("systemrole");
userName.trim();
password.trim();
systemrole.trim();
if((userName==null)||(password==null)){
response.sendRedirect("./login.jsp");
}
else{
Connection con=null;
Statement s=null;
ResultSet r=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:stud","sa","110");
s=con.createStatement();
String sqlstring=null;
if(systemrole.equals("teacher")) sqlstring=new String("select * from teacher where Tno='"+userName+"' and Tpassword='"+password+"'");
else if(systemrole.equals("administer")) sqlstring=new String("select * from administer where Ano='"+userName+"' and Apassword='"+password+"'");
else if(systemrole.equals("student"))sqlstring=new String("select * from student where Sno='"+userName+"' and Spassword='"+password+"'");
r=s.executeQuery(sqlstring);
if(r.next()){
session.setAttribute("userName",userName);
response.sendRedirect("./"+systemrole+"/top.jsp");
}
else{
System.out.println("用户名和密码不正确!");
}
}
catch(Exception sql){
response.sendRedirect("./loginError.jsp");
}
finally{
con.close();
s.close();
} }
}
%>
</body>
</html>登录失败,有没有那个高手帮忙解决下?急救
解决方案 »
- 多大的项目才用SSH
- 使用Hibernate和Oralce数据库自动生成主键问题
- 在学网络编程的时候 遇到的一个小问题 请各位大虾指点一下
- 为什么需要web services?
- post传递中包含了d:\Temp\test这样的字符,在接收页面接收到的 会把\t转换为空格,请问如何处理?
- 请指点
- jsp中有没有类似asp中response.end的方法
- 有JSP+JAVABEAN的购物商店的源代码吗?
- Servlet与Jsp之间SESSION值传递问题?
- JAVA开发企业内部服务器问题
- 求div的align属性的替代方法
- 将一个对人员增删改查的程序改成Hibernate+spring+struts方式
jdbC连接正确?sql语句正确?前几天我就因为所写的sql语句与数据库不符合,害我瞎了几个晚上
第二,if userName==null那么在这里userName=(String)request.getParameter("userName");就会报异常信息
第三,我建议你先把代码String sqlstring=null;改为String sqlstring="";if(systemrole.equals("teacher")) sqlstring=new String("select * from teacher where Tno='"+userName+"' and Tpassword='"+password+"'");改为sqlstring="select * from teacher where Tno='"+userName+"' and Tpassword='"+password+"'";进行登陆一次,看是否正常。还有,你登陆失败是验证通不过,还是报异常?
在System.out.println(rs.next());看看是ture还是flase,当然如果你用了这句话,需要再用before移回去
84: }
85: finally{
86: con.close();
87: s.close();
88: }
89:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause java.lang.NullPointerException
org.apache.jsp.login_jsp._jspService(login_jsp.java:150)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.
s.close();
换个顺序试试
s.close();
换位子
System.out.println(con==null);//你加这个看看,你的con是不是空的
s=con.createStatement();if(r.next()){
session.setAttribute("userName",userName);
response.sendRedirect("./"+systemrole+"/top.jsp");
System.out.println("==============");//看插入起作用没
}
通过指点,改了,有些效果,不过执行了catch里的代码