I have a dynamic web project in java and i am trying to get the search key from jsp form and search the database to display results to the user. i am getting an error regarding no suitable jdbc driver found
I have referred to similar questions on here and tried to add the jar file to my project but it doesnt work Added the jar file by Right click on DataSearch->Build Path-> Build configurtions-> Libraries-> Add external Jars->ojdbc06.jar then apply The jar file shows in my referenced libraries folder but it still doesn't work.
Here is my jsp form
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Search</title>
</head>
<body>
<form action="ServeData" method="post">
<table style="background-color:skyblue; margin-left:20px; margin-right=20px;margin-top=20px">
<tr style="color:white;text-align:center">
<td>Search Page</td>
</tr>
<tr>
<td>Enter Item:</td>
<td><input type="text" name="key"></td>
</tr>
<tr>
<td><input type="submit" name="search" value="Search"></td>
<td>${message}</td>
</tr>
</table>
</form>
</body>
</html>
Class to create the connection:
package com.database;
import java.sql.*;
public class DatabaseConn
{
public static Connection initializeDB() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException
{
String dbUrl = "jdbc:oracle:thin:shivam/shivam@localhost:1521:XE";
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Connection conn = DriverManager.getConnection(dbUrl);
if(conn != null)
System.out.println("Connected");
return conn;
/*
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("select userid from users");
while(rs.next())
{
String name = rs.getString("userid");
System.out.println(name);
}
conn.close();
System.out.println("Connection closed");*/
}
}
Servlet code:
package com.database;
import java.sql.*;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServeData")
public class ServeData extends HttpServlet {
private static final long serialVersionUID = 1L;
public ServeData() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
Connection conn = DatabaseConn.initializeDB();
String key = request.getParameter("key");
Statement st = conn.createStatement();
String sql = "select * from product where name="+key;
ResultSet rs = st.executeQuery(sql);
if(!rs.next())
{
request.setAttribute("message", "Product not found!");
request.getRequestDispatcher("Search.jsp").forward(request, response);
}
else
{
while(rs.next())
{
/*request.setAttribute("message", rs.getString("brand"));
request.getRequestDispatcher("Product.jsp").forward(request, response);*/
PrintWriter out = response.getWriter();
out.println("<html><body><b>"+rs.getString("brand")
+ "</b></body></html>");
}
}
/*
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("select userid from users");
while(rs.next())
{
String name = rs.getString("userid");
System.out.println(name);
}
conn.close();
System.out.println("Connection closed");*/
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
error i am getting
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.database.DatabaseConn.initializeDB(DatabaseConn.java:8)
at com.database.ServeData.doPost(ServeData.java:27)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)