做了一个查询用户的页面~在第45行空指针错误(下面有指出45行)
开发环境是Eclipse+tomcat6.0+tomcat插件,下面是我的代码一共三个文件queryUser.jsp,DBManager.java和JavaBean.java,JavaBean就不贴出了 这是queryUSER.jsp页面
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.util.*"%>
<%@ page import="com.jsp.query.*"%>
<%
request.setCharacterEncoding("gb2312");
%>
<%
String basePath = request.getScheme()
+ "://localhost:8090/search_for_user_information/pages/";
%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href=" <%=basePath%>">
<title>用户信息查询 </title>
</head>
<body>
<% String = (String) request.getParameter("");
DBManager mdb=new DBManager();
String username = (String) request.getParameter("username") == null ? ""
: (String) request.getParameter("username");
String work = (String) request.getParameter("work") == null ? ""
: (String) request.getParameter("work"); %> <center> <font size="5">用户信息查询 </font> <form action="queryUser.jsp" method="post">
<table>
<tr>
<td>用户名称: </td>
<td> <input type="text" name="username" /> <input type="hidden"
name="" value="0" /> </td> </tr>
<tr>
<td>用户职业: </td>
<td> <select size="1" name="work">
<option selected="selected" value="">--请选择-- </option>
<option value="学生">学生 </option>
<option value="职员">职员 </option>
<option value="经理">经理 </option>
<option value="cc">cc </option>
</select> </td>
</tr>
<tr>
<td> <input type="submit" value="查询" /> </td>
<td> <input type="reset" value="重置" /> </td>
</tr>
</table>
</form> <%
if (username != "" || work != "") {
mdb.setList(username,work); //此处空指针错误
List <JavaBean> list = mdb.getList();
if (!list.isEmpty()) {
%> <table border="1">
<tr>
<td>用户名称 </td>
<td>密码 </td>
<td>性别 </td>
<td>职业 </td>
<td>爱好 </td>
<td>个人说明 </td>
</tr> <%
for (int i = 0; i < list.size(); i++) {
JavaBean jb = (JavaBean) list.get(i);
%>
<tr>
<td> <%=jb.getName()%> </td>
<td> <%=jb.getPassword()%> </td>
<td> <%=jb.getSex()%> </td>
<td> <%=jb.getWork()%> </td>
<td> <%=jb.getHobby()%> </td>
<td> <%=jb.getDescription()%> </td>
</tr>
<%
}
%>
</table> <%
} else {
%> <font size="4" color="red">您输入的查询条件为用户名: <%=username%>,职业 <%=work%>,数据库中没有与之对应的信息 </font>
<%
}
} else if ( != null && .equals("0")) {
%> <font size="4" color="red">请输入查询条件 </font> <%
}
%>
</center>
</body>
</html> 下面是DBManager.java
import java.sql.*;
import java.util.ArrayList;
import java.util.List; public class DBManager{
private Connection conn=null; private PreparedStatement stmt=null; private ResultSet rs=null; private List <JavaBean> list=new ArrayList <JavaBean>(); public DBManager(){ } public DBManager(String username,String work)throws SQLException{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=user_information?Unicode=true&characterEncoding=gb2312","searcher","password");
}catch (Exception e){
}
} public void setList(String username,String work)throws SQLException{
if(username==null||username.equals("")){
stmt=conn.prepareStatement("select * from users where work =?"); stmt.setString(1,work);
rs=stmt.executeQuery();
while(rs.next()){
JavaBean jb=new JavaBean();
jb.setName(rs.getString("username"));
jb.setPassword(rs.getString("password"));
jb.setSex(rs.getString("sex"));
jb.setWork(rs.getString("work"));
jb.setHobby(rs.getString("hobby"));
jb.setDescription(rs.getString("description")); list.add(jb);
}
}else if(work==null || work.equals("")){
stmt=conn.prepareStatement("select * from users where username like ?"); stmt.setString(1,"%"+username+"%"); rs=stmt.executeQuery();
while(rs.next()){
JavaBean jb=new JavaBean();
jb.setName(rs.getString("username"));
jb.setPassword(rs.getString("password"));
jb.setSex(rs.getString("sex"));
jb.setWork(rs.getString("work"));
jb.setHobby(rs.getString("hobby"));
jb.setDescription(rs.getString("description")); list.add(jb); }
}else{
stmt=conn.prepareStatement("select * from users where work=? and username like ?"); stmt.setString(1,work); stmt.setString(2,"%"+username+"%");
stmt.execute();
rs=stmt.executeQuery();
while(rs.next()){
JavaBean jb=new JavaBean();
jb.setName(rs.getString("username"));
jb.setPassword(rs.getString("password"));
jb.setSex(rs.getString("sex"));
jb.setWork(rs.getString("work"));
jb.setHobby(rs.getString("hobby"));
jb.setDescription(rs.getString("description")); list.add(jb);
}
} }
public List <JavaBean> getList() {
return list;
}
开发环境是Eclipse+tomcat6.0+tomcat插件,下面是我的代码一共三个文件queryUser.jsp,DBManager.java和JavaBean.java,JavaBean就不贴出了 这是queryUSER.jsp页面
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.util.*"%>
<%@ page import="com.jsp.query.*"%>
<%
request.setCharacterEncoding("gb2312");
%>
<%
String basePath = request.getScheme()
+ "://localhost:8090/search_for_user_information/pages/";
%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href=" <%=basePath%>">
<title>用户信息查询 </title>
</head>
<body>
<% String = (String) request.getParameter("");
DBManager mdb=new DBManager();
String username = (String) request.getParameter("username") == null ? ""
: (String) request.getParameter("username");
String work = (String) request.getParameter("work") == null ? ""
: (String) request.getParameter("work"); %> <center> <font size="5">用户信息查询 </font> <form action="queryUser.jsp" method="post">
<table>
<tr>
<td>用户名称: </td>
<td> <input type="text" name="username" /> <input type="hidden"
name="" value="0" /> </td> </tr>
<tr>
<td>用户职业: </td>
<td> <select size="1" name="work">
<option selected="selected" value="">--请选择-- </option>
<option value="学生">学生 </option>
<option value="职员">职员 </option>
<option value="经理">经理 </option>
<option value="cc">cc </option>
</select> </td>
</tr>
<tr>
<td> <input type="submit" value="查询" /> </td>
<td> <input type="reset" value="重置" /> </td>
</tr>
</table>
</form> <%
if (username != "" || work != "") {
mdb.setList(username,work); //此处空指针错误
List <JavaBean> list = mdb.getList();
if (!list.isEmpty()) {
%> <table border="1">
<tr>
<td>用户名称 </td>
<td>密码 </td>
<td>性别 </td>
<td>职业 </td>
<td>爱好 </td>
<td>个人说明 </td>
</tr> <%
for (int i = 0; i < list.size(); i++) {
JavaBean jb = (JavaBean) list.get(i);
%>
<tr>
<td> <%=jb.getName()%> </td>
<td> <%=jb.getPassword()%> </td>
<td> <%=jb.getSex()%> </td>
<td> <%=jb.getWork()%> </td>
<td> <%=jb.getHobby()%> </td>
<td> <%=jb.getDescription()%> </td>
</tr>
<%
}
%>
</table> <%
} else {
%> <font size="4" color="red">您输入的查询条件为用户名: <%=username%>,职业 <%=work%>,数据库中没有与之对应的信息 </font>
<%
}
} else if ( != null && .equals("0")) {
%> <font size="4" color="red">请输入查询条件 </font> <%
}
%>
</center>
</body>
</html> 下面是DBManager.java
import java.sql.*;
import java.util.ArrayList;
import java.util.List; public class DBManager{
private Connection conn=null; private PreparedStatement stmt=null; private ResultSet rs=null; private List <JavaBean> list=new ArrayList <JavaBean>(); public DBManager(){ } public DBManager(String username,String work)throws SQLException{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=user_information?Unicode=true&characterEncoding=gb2312","searcher","password");
}catch (Exception e){
}
} public void setList(String username,String work)throws SQLException{
if(username==null||username.equals("")){
stmt=conn.prepareStatement("select * from users where work =?"); stmt.setString(1,work);
rs=stmt.executeQuery();
while(rs.next()){
JavaBean jb=new JavaBean();
jb.setName(rs.getString("username"));
jb.setPassword(rs.getString("password"));
jb.setSex(rs.getString("sex"));
jb.setWork(rs.getString("work"));
jb.setHobby(rs.getString("hobby"));
jb.setDescription(rs.getString("description")); list.add(jb);
}
}else if(work==null || work.equals("")){
stmt=conn.prepareStatement("select * from users where username like ?"); stmt.setString(1,"%"+username+"%"); rs=stmt.executeQuery();
while(rs.next()){
JavaBean jb=new JavaBean();
jb.setName(rs.getString("username"));
jb.setPassword(rs.getString("password"));
jb.setSex(rs.getString("sex"));
jb.setWork(rs.getString("work"));
jb.setHobby(rs.getString("hobby"));
jb.setDescription(rs.getString("description")); list.add(jb); }
}else{
stmt=conn.prepareStatement("select * from users where work=? and username like ?"); stmt.setString(1,work); stmt.setString(2,"%"+username+"%");
stmt.execute();
rs=stmt.executeQuery();
while(rs.next()){
JavaBean jb=new JavaBean();
jb.setName(rs.getString("username"));
jb.setPassword(rs.getString("password"));
jb.setSex(rs.getString("sex"));
jb.setWork(rs.getString("work"));
jb.setHobby(rs.getString("hobby"));
jb.setDescription(rs.getString("description")); list.add(jb);
}
} }
public List <JavaBean> getList() {
return list;
}
下面是DBManager.java
import java.sql.*;
import java.util.ArrayList;
import java.util.List; public class DBManager{
private Connection conn=null; private PreparedStatement stmt=null; private ResultSet rs=null; private List <JavaBean> list=new ArrayList <JavaBean>(); public DBManager(){ } public DBManager(String username,String work)throws SQLException{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=user_information?Unicode=true&characterEncoding=gb2312","searcher","password");
}catch (Exception e){
}
}
public void setList(String username,String work)throws SQLException{
if(username==null||username.equals("")){
stmt=conn.prepareStatement("select * from users where work =?"); stmt.setString(1,work);
rs=stmt.executeQuery();
while(rs.next()){
JavaBean jb=new JavaBean();
jb.setName(rs.getString("username"));
jb.setPassword(rs.getString("password"));
jb.setSex(rs.getString("sex"));
jb.setWork(rs.getString("work"));
jb.setHobby(rs.getString("hobby"));
jb.setDescription(rs.getString("description")); list.add(jb);
}
}else if(work==null || work.equals("")){
stmt=conn.prepareStatement("select * from users where username like ?"); stmt.setString(1,"%"+username+"%"); rs=stmt.executeQuery();
while(rs.next()){
JavaBean jb=new JavaBean();
jb.setName(rs.getString("username"));
jb.setPassword(rs.getString("password"));
jb.setSex(rs.getString("sex"));
jb.setWork(rs.getString("work"));
jb.setHobby(rs.getString("hobby"));
jb.setDescription(rs.getString("description")); list.add(jb); }
}else{
stmt=conn.prepareStatement("select * from users where work=? and username like ?"); stmt.setString(1,work); stmt.setString(2,"%"+username+"%");
stmt.execute();
rs=stmt.executeQuery();
while(rs.next()){
JavaBean jb=new JavaBean();
jb.setName(rs.getString("username"));
jb.setPassword(rs.getString("password"));
jb.setSex(rs.getString("sex"));
jb.setWork(rs.getString("work"));
jb.setHobby(rs.getString("hobby"));
jb.setDescription(rs.getString("description")); list.add(jb);
}
} }
public List <JavaBean> getList() {
return list;
}
这是queryUSER.jsp页面
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.util.*"%>
<%@ page import="com.jsp.query.*"%>
<%
request.setCharacterEncoding("gb2312");
%>
<%
String basePath = request.getScheme()
+ "://localhost:8090/search_for_user_information/pages/";
%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href=" <%=basePath%>">
<title>用户信息查询 </title>
</head>
<body>
<% String = (String) request.getParameter("");
DBManager mdb=new DBManager();
String username = (String) request.getParameter("username") == null ? ""
: (String) request.getParameter("username");
String work = (String) request.getParameter("work") == null ? ""
: (String) request.getParameter("work"); %> <center> <font size="5">用户信息查询 </font> <form action="queryUser.jsp" method="post">
<table>
<tr>
<td>用户名称: </td>
<td> <input type="text" name="username" /> <input type="hidden"
name="" value="0" /> </td> </tr>
<tr>
<td>用户职业: </td>
<td> <select size="1" name="work">
<option selected="selected" value="">--请选择-- </option>
<option value="学生">学生 </option>
<option value="职员">职员 </option>
<option value="经理">经理 </option>
<option value="cc">cc </option>
</select> </td>
</tr>
<tr>
<td> <input type="submit" value="查询" /> </td>
<td> <input type="reset" value="重置" /> </td>
</tr>
</table>
</form> <%
if (username != "" || work != "") {
mdb.setList(username,work); //此处空指针错误
List <JavaBean> list = mdb.getList();
if (!list.isEmpty()) {
%> <table border="1">
<tr>
<td>用户名称 </td>
<td>密码 </td>
<td>性别 </td>
<td>职业 </td>
<td>爱好 </td>
<td>个人说明 </td>
</tr> <%
for (int i = 0; i < list.size(); i++) {
JavaBean jb = (JavaBean) list.get(i);
%>
<tr>
<td> <%=jb.getName()%> </td>
<td> <%=jb.getPassword()%> </td>
<td> <%=jb.getSex()%> </td>
<td> <%=jb.getWork()%> </td>
<td> <%=jb.getHobby()%> </td>
<td> <%=jb.getDescription()%> </td>
</tr>
<%
}
%>
</table> <%
} else {
%> <font size="4" color="red">您输入的查询条件为用户名: <%=username%>,职业 <%=work%>,数据库中没有与之对应的信息 </font>
<%
}
} else if ( != null && .equals("0")) {
%> <font size="4" color="red">请输入查询条件 </font> <%
}
%>
</center>
</body>
</html>
<% String = (String) request.getParameter("");
DBManager mdb=new DBManager();
String username =
(String)request.getParameter("username") == null ? "": (String) request.getParameter("username");
String work =
(String)request.getParameter("work") == null ? "": (String) request.getParameter("work"); %>
DBManager mdb=new DBManager();
String username =
(String)request.getParameter("username") == null ? "": (String) request.getParameter("username");
String work =
(String)request.getParameter("work") == null ? "": (String) request.getParameter("work"); %>
DBManager mdb=new DBManager();
String username = (String) request.getParameter("username") == null ? ""
: (String) request.getParameter("username");
String work = (String) request.getParameter("work") == null ? ""
: (String) request.getParameter("work"); %>
你在这取的数据就是个空串啊,String username = request.getParameter("username")==null? "":request.getParameter("username");
查看一下你在上一个页面中的输入域中是不是 “username”
DBManager mdb=new DBManager(); 声明了类
然后获取两个变量
mdb.setList(username,work); 执行方法.
可是你的DBmanger如下
public DBManager(){ }
根本没有获取数据库连接
所以你setList里调用的conn就是null
stmt=conn.prepareStatement("select * from users where work =?"); 就应该出问题了