服务小程序不工作
Servlet not working
我写了一个基本的 java servlet 代码,但它不起作用。
我正在使用 oracle12c 版本 2 和 apache tomcat 9.0。
下面没有显示任何错误,但在 html pae 中单击提交后,它会加载到一个空页面
我的 html 文件是
<html>
<body>
<form method="get" action="srv" align="center">
<table>
<tr><td>
UName</td><td> <input type="text" name="nm"></td></tr>
<tr><td>
Password</td><td><input type="password" name="pd"></td></tr>
<tr><td>
<input type="submit" value="send"></td></tr></table>
</form>
</body>
</html>
我的 servlet 文件是
import java.io.*;
import javax.servlet.*;
import java.sql.*;
public class select extends GenericServlet
{
Connection con;
PreparedStatement ps;
public void init() throws ServletException
{
try
{
Class.forName("oracle.jdbc.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","C##
1","Oracle_12");
ps=con.prepareStatement("select * from emp where name=?");}
catch(Exception e)
{
e.printStackTrace();
}
}
public void service(ServletRequest req,ServletResponse res) throws
ServletException,IOException
{
try
{
String name=req.getParameter("nm");
//String pwd=req.getParameter("pd");
ps.setString(1,name);
//ps.setString(2,pwd);
ResultSet rs=ps.executeQuery();
res.setContentType("text/html");
PrintWriter pw=res.getWriter();
if(rs.next())
{
String name1=rs.getString(1);
String email1=rs.getString(2);
String pws=rs.getString(3);
pw.println("<html>"+
"<body><h1 align=center>Hello</h1><br>"+
"<table><tr><th>Name</th><th>Password</th><th>Email</th></tr>"+
"<tr><td>"+name1+"</td><td>"+pws+"</td><td>"+email1+"</td></tr>
</table></body></html>");
}
else
{
pw.println("<html><body><h1 align=center>Try again!</body>
</html>");
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void destroy()
{
try
{con.commit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
我的XML文件是
<web-app>
<servlet>
<servlet-name>s1</servlet-name>
<servlet-class>select</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>s1</servlet-name>
<url-pattern>/srv</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>home.html</welcome-file>
</welcome-file-list>
</web-app>
编辑:这是通过在 servlets 库中添加 OJDBC.jar 文件解决的 folder.It 与程序中的错误无关。
您是否在类路径中添加了 oracle jdbc 驱动程序?如果您可以提供 tomcat 日志(或 Eclipse 控制台日志,如果您是来自 Eclipse IDE 的 运行),将会很有帮助。
它在我 运行 时有效,因此代码没有问题。检查您是否已将 OJDBC 驱动程序 jar 添加到您的类路径中..
在您当前工作的 servlet 项目的 lib 文件夹中添加 ojdbc8.jar 文件。
我写了一个基本的 java servlet 代码,但它不起作用。 我正在使用 oracle12c 版本 2 和 apache tomcat 9.0。 下面没有显示任何错误,但在 html pae 中单击提交后,它会加载到一个空页面
我的 html 文件是
<html>
<body>
<form method="get" action="srv" align="center">
<table>
<tr><td>
UName</td><td> <input type="text" name="nm"></td></tr>
<tr><td>
Password</td><td><input type="password" name="pd"></td></tr>
<tr><td>
<input type="submit" value="send"></td></tr></table>
</form>
</body>
</html>
我的 servlet 文件是
import java.io.*;
import javax.servlet.*;
import java.sql.*;
public class select extends GenericServlet
{
Connection con;
PreparedStatement ps;
public void init() throws ServletException
{
try
{
Class.forName("oracle.jdbc.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","C##
1","Oracle_12");
ps=con.prepareStatement("select * from emp where name=?");}
catch(Exception e)
{
e.printStackTrace();
}
}
public void service(ServletRequest req,ServletResponse res) throws
ServletException,IOException
{
try
{
String name=req.getParameter("nm");
//String pwd=req.getParameter("pd");
ps.setString(1,name);
//ps.setString(2,pwd);
ResultSet rs=ps.executeQuery();
res.setContentType("text/html");
PrintWriter pw=res.getWriter();
if(rs.next())
{
String name1=rs.getString(1);
String email1=rs.getString(2);
String pws=rs.getString(3);
pw.println("<html>"+
"<body><h1 align=center>Hello</h1><br>"+
"<table><tr><th>Name</th><th>Password</th><th>Email</th></tr>"+
"<tr><td>"+name1+"</td><td>"+pws+"</td><td>"+email1+"</td></tr>
</table></body></html>");
}
else
{
pw.println("<html><body><h1 align=center>Try again!</body>
</html>");
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void destroy()
{
try
{con.commit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
我的XML文件是
<web-app>
<servlet>
<servlet-name>s1</servlet-name>
<servlet-class>select</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>s1</servlet-name>
<url-pattern>/srv</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>home.html</welcome-file>
</welcome-file-list>
</web-app>
编辑:这是通过在 servlets 库中添加 OJDBC.jar 文件解决的 folder.It 与程序中的错误无关。
您是否在类路径中添加了 oracle jdbc 驱动程序?如果您可以提供 tomcat 日志(或 Eclipse 控制台日志,如果您是来自 Eclipse IDE 的 运行),将会很有帮助。 它在我 运行 时有效,因此代码没有问题。检查您是否已将 OJDBC 驱动程序 jar 添加到您的类路径中..
在您当前工作的 servlet 项目的 lib 文件夹中添加 ojdbc8.jar 文件。