2017-07-08 1 views
0

J'ai écrit un code de servlet java de base qui ne fonctionne pas. Iam utilisant oracle12c version 2 et apache tomcat 9.0. Le dessous doesnot montre toute erreur, mais après avoir cliqué sur soumettre en html pae il charge dans une page videServlet ne fonctionnant pas

mon fichier html est

<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>

MON fichier servlet est

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(); 
    } 
} 
} 

Mon Le fichier XML est

<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> 

EDIT: Cela est résolu en ajoutant le fichier OJDBC.jar dans le dossier servlets lib.Il n'a rien à voir avec les erreurs dans le programme.

+0

Quel est le nom du fichier html? –

+0

home.html select.java –

Répondre

0

Ajoutez le fichier ojdbc8.jar dans le dossier lib votre projet de servlet de travail actuel.

1

Avez-vous ajouté le pilote oracle jdbc dans le classpath? Il serait utile que vous puissiez fournir des logs tomcat (ou des logs de la console Eclipse si vous utilisez Eclipse IDE). Cela fonctionne quand j'ai couru, donc pas de problèmes avec le code. Vérifiez si vous avez ajouté le fichier jar du pilote OJDBC à votre chemin de classe.

+0

J'ai ajouté mon classpath en tant que C: \ app \ iamka \ produit \ 12.2.0 \ dbhome_1 \ jdbc \ lib \ ojdbc8.jar toujours pas d'utilisation et iam n'utilisant pas encore d'eclipse ou d'identifiant –

+0

vous publiez les journaux dans votre. $ TOMCAT_HOME/logs/catalina.out. – ManoB

+0

Très probablement, vous n'avez pas correctement ajouté le chemin de classe. Vous devez ajouter le fichier setenv.bat avec la ligne ci-dessous CLASSPATH = C: \ app \ iamka \ produit \ 12.2.0 \ dbhome_1 \ jdbc \ lib \ ojdbc8.jar setenv.bat devrait être dans le dossier bin de TOMCAT – ManoB