jsp 做登录的问题 根据不同权限跳转到不同页面
做一个登录 系统能够通过员工的ID 自动识别数据库中员工的职位。。然后跳转到不同的操作界面。
下面是处理页面。。不知道能不能这么写。。
用TOMCAT出现以下异常 java.lang.NullPointerException
jsp 页面如下。。。。
。。。。。。。。
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="kaoqin.*"%>
<!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=gb2312">
<title>登录处理页面</title></title>
</head>
<body>
<jsp:useBean id="db" scope="page" class="kaoqin.sqlBean"/>
<%
try{
String id=new String(request.getParameter("id").getBytes("iso8859_1"),"gbk");
String password=new String(request.getParameter("password").getBytes("iso8859_1"),"gbk");
String position=" ";
boolean flag=true;
if(flag)
{
ResultSet rs =null;
position="普通员工";
String sqlstr="select * from person";
sqlstr=sqlstr+"where id='"+id+"'";
sqlstr=sqlstr+"and password='"+password+"'";
sqlstr=sqlstr+"and position='"+position+"'";
rs=db.executeQuery(sqlstr);
boolean login_flag;
if(!rs.next()) 。。。。。。。。。。。。。主要是这里连接不到数据库还是怎么的。运行到这就出现异常了
login_flag=false;
else
login_flag=true;
// if(!login_flag){
// out.print("<center><p><font color=red size=4>登录失败</font></p>");
//out.print("<p><a href=login.jsp>请点击这里再次登陆</a></p>");
//out.print("<br></center>");
// }
if(login_flag)
{
session.setAttribute("login_flag","success");
response.sendRedirect("employeeframe.htm"); 普通员工的页面
}
}
if(flag)
{
ResultSet rs =null;
String sqlstr="";
position="部门经理";
sqlstr="select * from person";
sqlstr=sqlstr+"where id='"+id+"'";
sqlstr=sqlstr+"and password='"+password+"'";
sqlstr=sqlstr+"and position='"+position+"'";
rs=db.executeQuery(sqlstr);
boolean login_flag;
if(!rs.next())
login_flag=false;
else
login_flag=true;
if(login_flag)
{
session.setAttribute("login_flag","success");
response.sendRedirect("managerframe.htm"); 部门经理的页面
}
}
if(flag)
{
ResultSet rs =null;
String sqlstr="";
position="系统管理员";
sqlstr="select * from person";
sqlstr=sqlstr+"where id='"+id+"'";
sqlstr=sqlstr+"and password='"+password+"'";
sqlstr=sqlstr+"and position='"+position+"'";
rs=db.executeQuery(sqlstr);
boolean login_flag;
if(!rs.next())
login_flag=false;
else
login_flag=true;
if(login_flag)
{
session.setAttribute("login_flag","success");
response.sendRedirect("adminframe.htm"); 系统管理员的页面
}
login_flag=false;
}
else {
String message= "登陆失败,用户名或密码有误!!";
session.setAttribute("error",String.valueOf(message));
response.sendRedirect("login.jsp");}
}
catch(Exception e)
{
out.print(e.toString());
}
%>
</body>
</html>
用JAVABEAN连接数据库。。
。。。。。。。。。。。。。
package kaoqin;
import java.io.*;
import java.sql.*;
public class sqlBean{///
public Connection conn=null;
public ResultSet rs=null;
private String DatabaseDriver="sun.jdbc.odbc.JdbcOdbcDriver";
//DataSource 数据源名称DSN
private String DatabaseConnStr="jdbc:odbc:atd";
//定义方法
/*setXxx用于设置属性值;getXxx用于得到属性值*/
public void setDatabaseDriver(String Driver){
this.DatabaseDriver=Driver;
}
public String getDatabaseDriver(){
return (this.DatabaseDriver);
}
public void setDatabaseConnStr(String ConnStr){
this.DatabaseConnStr=ConnStr;
}
public String getDatabaseConnStr(){
return (this.DatabaseConnStr);
}
public sqlBean(){/////构造函数
try{
Class.forName(DatabaseDriver);
}
catch(java.lang.ClassNotFoundException e){
System.err.println("加载驱动器有错误:"+e.getMessage( ));
System.out.print("执行插入有错误:"+e.getMessage());//输出到客户端
}
}
public String getString(String name) throws SQLException{
if(rs==null) throw new SQLException("ResultSet is null");
return String.valueOf(rs.getString(name));
}
public void executeInsert(String sql){
try{
conn = DriverManager.getConnection("jdbc:odbc:atd","","");
Statement stmt=conn.createStatement( );
stmt.executeUpdate(sql);
}
catch(SQLException ex){
System.err.println("执行插入有错误:"+ex.getMessage() );
System.out.print("执行插入有错误:"+ex.getMessage());//输出到客户端
}
}
// display data
public ResultSet executeQuery(String sql){
rs=null;
try{
conn = DriverManager.getConnection("jdbc:odbc:atd","","");
Statement stmt=conn.createStatement( );
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("执行查询有错误:"+ex.getMessage() );
System.out.print("执行查询有错误:"+ex.getMessage()); //输出到客户端
}
return rs;
}
// delete data
public void executeDelete(String sql){
try{
conn = DriverManager.getConnection("jdbc:odbc:atd","","");
Statement stmt=conn.createStatement( );
stmt.executeUpdate(sql);
}
catch(SQLException ex){
System.err.println("执行删除有错误:"+ex.getMessage() );
System.out.print("执行删除有错误:"+ex.getMessage()); //输出到客户端
}
}
//////////////////
public void CloseDataBase(){
try{
conn.close();
}
catch(Exception end){
System.err.println("执行关闭Connection对象有错误:"+end.getMessage( ) );
System.out.print("执行执行关闭Connection对象有错误:有错误:"+end.getMessage()); //输出到客户端
}
}
}