2017-07-08 85 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