servlet错误?

tys1105 2005-06-10 01:15:34


1、请高手帮一帮我呀!出现下面的错误提示是什么原因引起,应该怎样解决?

2、在web.xml中初始化参数,运行完servlet程序。再打开web.xml文件,发现原来设置初始化参数的语句不存在,不知是什么原因?


错误提示:
java.lang.NullPointerException
at web.JDBCServlet.doGet(JDBCServlet.java:40)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:536)

servlet程序如下:

package web;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.sql.*;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class JDBCServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//连接数据库的属性;
String driver;
String url;
String user;
String password;
//Initialize global variables
public void init() throws ServletException {
driver=getInitParameter("DRIVER");
url=getInitParameter("URL");
user=getInitParameter("USER");
password=getInitParameter("PASSWORD");
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
try
{
Connection con=getConnection();
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from user_info");
while(rst.next())
{
out.println(rst.getString("userid"));
out.println("<br>");
}
con.close();
stmt.close();
rst.close();
}
catch(SQLException e)
{
e.printStackTrace();
}

}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
private Connection getConnection()
{
Connection con=null;
try
{
Class.forName(driver);
con=DriverManager.getConnection(url,user,password);
}
catch(Exception e)
{
e.printStackTrace();
}
return con;
}
//Clean up resources
public void destroy() {
}
}

web.xml配置文件在下面:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

<servlet>
<servlet-name>jdbcservlet</servlet-name>
<servlet-class>web.JDBCServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>jdbcservlet</servlet-name>
<url-pattern>/jdbcservlet</url-pattern>
</servlet-mapping>
<init-param>
<param-name>DRIVER</param-name>
<param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>
</init-param>
<init-param>
<param-name>URL</param-name>
<param-value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev</param-value>
</init-param>
<init-param>
<param-name>USER</param-name>
<param-value>bn</param-value>
</init-param>
<init-param>
<param-name>PASSWORD</param-name>
<param-value>bn</param-value>
</init-param>

</web-app>

...全文
58 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT源哥 2005-06-10
  • 打赏
  • 举报
回复
应该是不会影响到web.xml的
King_Style 2005-06-10
  • 打赏
  • 举报
回复
那为什么在web.xml中设置的初始化参数语句在运行servlet之后又不存在。
--------
晕,我还第一次遇见这等怪事!是不是打开的不是同一个web.xml文件啊?
tys1105 2005-06-10
  • 打赏
  • 举报
回复
顶一下!


那为什么在web.xml中设置的初始化参数语句在运行servlet之后又不存在。

接着顶呀!
unsalted 2005-06-10
  • 打赏
  • 举报
回复
getConnection()检查这个方法吧,这个方法返回的null,导致空指针异常。
java.lang.NullPointerException
at web.JDBCServlet.doGet(JDBCServlet.java:40)

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧