servlet程序哪里错了啊?谢谢~import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class CounterServlet extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//private String indata;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
/*接受客户端信息*/
response.setContentType (CONTENT_TYPE); PrintWriter out = response.getWriter();
//indata = request.getParameter("DATA");
/*与数据库连接查询*/
String url = url="jdbc:microsoft:sqlserver://localhost:1433;Da2tabaseName=chfjava";
Connection con;
Statement stmt;
String query = "select * from shop";
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
out.println("<h2 align='center'>" + "搜索结果" + "</h2>");
out.println("<html>");
out.println("<head><title>商品搜索结果</title></head>");
out.println("<body>");
con = DriverManager.getConnection(url, "sa", "");
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString("id");
String t = rs.getString("name");
String f = rs.getString("price");
out.println(s + " " + t + " " + f);
}
stmt.close();
con.close();
//out.println("<P>"+ indata + "</P>");
out.println("</body></html>");
out.close();
}
catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
}
}
html文件<html>
<head>
<title>网上购物</title>
</head>
<body bgcolor="white">
<table border="10" cellpadding="10" align="CENTER">
<tr><td width="275">
<h2>商品信息查询</h2>
<br>输入你要查询的信息<br>
<form method="post" action="CounterServlet">
<input type= "text" name="DATA" size=30>
<p>
<input type="SUBMIT" value= "查询">
<input type="RESET" value= "重新输入">
</form>
</td></tr>
</table>
</body>
</html>运行结果
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Error allocating a servlet instance
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:619)
root cause java.lang.NoClassDefFoundError: test/CounterServlet (wrong name: CounterServlet)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:620)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1853)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:875)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1330)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:619)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.5.26
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class CounterServlet extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//private String indata;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
/*接受客户端信息*/
response.setContentType (CONTENT_TYPE); PrintWriter out = response.getWriter();
//indata = request.getParameter("DATA");
/*与数据库连接查询*/
String url = url="jdbc:microsoft:sqlserver://localhost:1433;Da2tabaseName=chfjava";
Connection con;
Statement stmt;
String query = "select * from shop";
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
out.println("<h2 align='center'>" + "搜索结果" + "</h2>");
out.println("<html>");
out.println("<head><title>商品搜索结果</title></head>");
out.println("<body>");
con = DriverManager.getConnection(url, "sa", "");
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString("id");
String t = rs.getString("name");
String f = rs.getString("price");
out.println(s + " " + t + " " + f);
}
stmt.close();
con.close();
//out.println("<P>"+ indata + "</P>");
out.println("</body></html>");
out.close();
}
catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
}
}
html文件<html>
<head>
<title>网上购物</title>
</head>
<body bgcolor="white">
<table border="10" cellpadding="10" align="CENTER">
<tr><td width="275">
<h2>商品信息查询</h2>
<br>输入你要查询的信息<br>
<form method="post" action="CounterServlet">
<input type= "text" name="DATA" size=30>
<p>
<input type="SUBMIT" value= "查询">
<input type="RESET" value= "重新输入">
</form>
</td></tr>
</table>
</body>
</html>运行结果
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Error allocating a servlet instance
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:619)
root cause java.lang.NoClassDefFoundError: test/CounterServlet (wrong name: CounterServlet)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:620)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1853)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:875)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1330)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:619)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.5.26
楼主【cschf】截止到2008-06-24 00:08:57的历史汇总数据(不包括此帖):
发帖数:2 发帖分:40
结贴数:1 结贴分:20
未结数:1 未结分:20
结贴率:50.00 % 结分率:50.00 %
楼主加油
<servlet>
<servlet-name>CounterServlet</servlet-name>//servlet名称可以自定义
<servlet-class>
CounterServlet所在的位置
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CounterServlet</servlet-name>//名称同上、二者名称相同
<url-pattern>*.do</url-pattern>
</servlet-mapping>
String url = url="jdbc:microsoft:sqlserver://localhost:1433;Da2tabaseName=chfjava";
其次楼主 你看你导入包没有 SQLSERVER驱动包
msbase.jar,msutil.jar,mssqlserver.jar
觉得
仔细核对下
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString("id");
String t = rs.getString("name");
String f = rs.getString("price");
out.println(s + " " + t + " " + f);
}
stmt.close();
con.close();
这段代码中应该还要关闭一个对象 rs.close(); 正确的应为:
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString("id");
String t = rs.getString("name");
String f = rs.getString("price");
out.println(s + " " + t + " " + f);
}
rs.close();
stmt.close();
con.close();
我写的这句没有错啊,和你们说的一样啊