【问题标题】:Servlet not working [duplicate]Servlet 不工作 [重复]
【发布时间】:2017-12-12 12:08:33
【问题描述】:

我编写了一个基本的 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 lib文件夹中添加OJDBC.jar文件来解决的。它与程序中的错误无关。

【问题讨论】:

  • html文件名是什么?
  • home.html select.java

标签: java html servlets web.xml


【解决方案1】:

您是否在类路径中添加了 oracle jdbc 驱动程序?如果您可以提供 tomcat 日志(如果您从 Eclipse IDE 运行,则提供 Eclipse 控制台日志)将会很有帮助。 它在我运行时有效,因此代码没有问题。检查您是否已将 OJDBC 驱动程序 jar 添加到您的类路径中。..

【讨论】:

  • 我已将我的类路径添加为 C:\app\iamka\product\12.2.0\dbhome_1\jdbc\lib\ojdbc8.jar 仍然没有用,而且我还没有使用 eclipse 或任何 id 跨度>
  • 你能把日志贴在你的 . $TOMCAT_HOME/logs/catalina.out.
  • 很可能您没有正确添加类路径。您需要使用以下行添加 setenv.bat 文件 CLASSPATH=C:\app\iamka\product\12.2.0\dbhome_1\jdbc\lib\ojdbc8.jar setenv.bat 应该在 TOMCAT home 的 bin 文件夹中
  • 如果我将 ojdbc8.jar 添加到我的 servlet 的 lib 文件夹中,那么它就可以工作了。不过谢谢你的回答 :)
【解决方案2】:

在当前工作的 servlet 项目的 lib 文件夹中添加 ojdbc8.jar 文件。

【讨论】:

    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 2022-01-11
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    相关资源
    最近更新 更多