Servlet无法正常工作

时间:2017-07-08 07:12:05

标签: java html servlets web.xml

我写了一个基本的java servlet代码,它无效。 我使用oracle12c release 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文件来解决的。它与程序中的错误无关。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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