2017-07-08 83 views
0

我写了一个不起作用的基本java servlet代码。 Iam使用oracle12c版本2和apache tomcat 9.0。 下面的多年平均值显示任何错误,但点击提交的HTML PAE后它加载到一个空白页Servlet不能正常工作

我的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文件解决的。它与程序中的错误无关。

+0

什么是html文件名? –

+0

home.html select.java –

回答

0

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

1

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

+0

我已将类路径添加为C:\ app \ iamka \ product \ 12.2.0 \ dbhome_1 \ jdbc \ lib \ ojdbc8.jar仍然没有用,并且iam未使用eclipse或任何标识 –

+0

你在你的日志中发布日志。 $ TOMCAT_HOME /日志/ catalina.out中。 – ManoB

+0

您很可能没有正确添加类路径。您需要添加setenv.bat文件,内容如下CLASSPATH = C:\ app \ iamka \ product \ 12.2.0 \ dbhome_1 \ jdbc \ lib \ ojdbc8.jar setenv.bat应位于TOMCAT主目录的bin文件夹中 – ManoB