我知道有類似的問題,但我仍然無法弄清楚。請幫助我。我已附加在圖像的目錄結構,其餘的代碼作爲還列出如下 Click here to see the directory structureHTTP狀態500 - 實例化servlet類錯誤com.app.RegisterServlet
的index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="reg" method="post">
Rno:<input type="number" name="rno"><br>
Name:<input type="text" name="name"><br>
Mark:<input type="number" name="mark"><br><br>
<input type="submit" value="Register">
<input type="reset" value="clear">
</form>
</body>
</html>
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>hi</servlet-name>
<servlet-class>com.app.RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hi</servlet-name>
<url-pattern>/reg</url-pattern>
</servlet-mapping>
</web-app>
RegisterServlet.java
package com.app;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class RegisterServlet extends GenericServlet{
private static final long serialVersionUID = 1L;
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
try {
int rno=Integer.parseInt(request.getParameter("rno"));
String name=request.getParameter("name");
float mark=Float.parseFloat(request.getParameter("mark"));
Class.forName("oracle.jdbc.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","fila","filimon");
PreparedStatement pstmt=con.prepareStatement("insert into register values(?,?,?)");
pstmt.setInt(1,rno);
pstmt.setString(2,name);
pstmt.setFloat(3,mark);
int count=pstmt.executeUpdate();
con.commit();
PrintWriter out=response.getWriter();
response.setContentType("text/html");
if (count>0) {
out.println("<html><body>successfully inserted</body></html>");
}else{
out.println("<html><body>nigga, try next time</body></html>");
}
pstmt.close();
con.close();
}catch (Exception e) {
System.err.println(e);
}
}//service()
}//RegisterServlet
非常感謝您的時間,ow和錯誤如下
type Exception report
message Error instantiating servlet class com.app.RegisterServlet
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error instantiating servlet class com.app.RegisterServlet
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)
root cause
java.lang.ClassNotFoundException: com.app.RegisterServlet
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)
在'service()'方法中實現這些操作是完全錯誤的@ – JimHawkins
@JimHawkins可以請您簡要解釋一下,謝謝 –
來處理HTTP GET請求,重寫'doGet()'方法。對於POST覆蓋'doPost()' – JimHawkins