求助,java web的一个问题
我才学java web几天,依照教材上敲了一些程序,可是在eclipse中运行报错。明明和教材上一模一样,为什么我这个就报错了呢?
我学这个时间还不太久,我按教材上敲了这些程,但是eclipse报错,很是烦恼,和书上一模一样的,怎么就错了呢?
HTTP Status 500 -
--------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
com.study.DAO.studentDAO.studenname(studentDAO.java:36)
com.study.servlet.studentservlet.doPost(studentservlet.java:43)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
以下是我的两个程序
-------------------------------------
package com.study.DAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import com.student.bean.student;
public class studentDAO {
private Connection con=null;
public void initCon(){
try{
Class.forName("com.jdbc.mysql.Driver");
String url="jdbc:mysql://localhost:3306/lianxi";
con=DriverManager.getConnection(url,"root","root");
}
catch(Exception ex){ex.printStackTrace();}
}
public ArrayList studenname(String stuname){
this.initCon();
ArrayList stud=new ArrayList();
String sql="SELECT stuid,stuname,stusex,stuphone,stuplace FROM student WHERE stuname like '%"+stuname+"%'";//select * from student where stuname like '%"+stuname+" %'
try {
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
student stu=new student();
stu.setStuid(rs.getString("stuid"));
stu.setStuname(rs.getString("stuname"));
stu.setStusex(rs.getString("stusex"));
stu.setStuphone(rs.getString("stuphone"));
stu.setStuplace(rs.getString("stuplace"));
stud.add(stu);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
this.closeCon();
}
return stud;
}
public void closeCon(){
try{
if(con!=null)
{con.close();
con=null;
}
}catch(SQLException ex){ex.printStackTrace();}
}
}
------------------------------------------------
package com.study.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.study.DAO.studentDAO;
public class studentservlet extends HttpServlet {
/**
* Constructor of the object.
*/
public studentservlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String stuname=request.getParameter("stuname");
try{
stuname=new String(stuname.getBytes("utf-8"));
}catch( Exception ex){ex.printStackTrace();}
//调用javabean查询学生信息(data access object DAO)
studentDAO StudentDAO=new studentDAO();
ArrayList stus=StudentDAO.studenname(stuname);
request.setAttribute("stus", stus);
//调转到jsp页面显示查询结果
ServletContext sc=this.getServletContext();
RequestDispatcher rs=sc.getRequestDispatcher("/stushow.jsp");
rs.forward(request, response);
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
------------------------------------------------
package com.student.bean;
public class student {
private String stuid;
private String stuname;
private String stusex;
private String stuphone;
private String stuplace;
public String getStuid() {
return stuid;
}
public void setStuid(String stuid) {
this.stuid = stuid;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public String getStusex() {
return stusex;
}
public void setStusex(String stusex) {
this.stusex = stusex;
}
public String getStuphone() {
return stuphone;
}
public void setStuphone(String stuphone) {
this.stuphone = stuphone;
}
public String getStuplace() {
return stuplace;
}
public void setStuplace(String stuplace) {
this.stuplace = stuplace;
};
}
------------------------------------------
不知道你们曾经有没有遇到这样的问题?请帮助我分析一下这个问题在哪吧
[解决办法]
com.study.DAO.studentDAO.studenname(studentDAO.java:36)
com.study.DAO.studentDAO.java 的36行 ,报空指针异常
Statement stmt=con.createStatement();
先确认的 con不为null先