0

I am making a simple registration page on html to store the data entered to MySQL through JDBC. The problem is that I'm not able to make a connection to the database.

This is my jsp page. It's returning null when I print con.

<%@page import="javax.servlet.jsp.tagext.TryCatchFinally"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="bean.BeanClass"%>
<%@page import="dbconnect.DatabaseConfigure"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<%
    BeanClass a = new BeanClass();
    a.setName(request.getParameter("name"));
    a.setGender(request.getParameter("gender"));
    a.setContact(request.getParameter("contact"));
    a.setCity(request.getParameter("city"));
    a.setCountry(request.getParameter("country"));
    String Skillset = "";
    String Skills[] = request.getParameterValues("skill");
    for (String i : Skills) {
        Skillset = Skillset + i + " ";
    }

    Connection con = DatabaseConfigure.dbconnect();
    out.print(con);
    PreparedStatement ps = con.prepareStatement("insert into inf values(?,?,?,?,?,?)");
    ps.setString(1, a.getName());
    ps.setString(2, a.getGender());
    ps.setString(4, a.getCity());
    ps.setString(5, Skillset);
    ps.setLong(3, Long.parseLong(a.getContact()));
    ps.setString(6, a.getCountry());
    int nora = 0;
    nora = ps.executeUpdate();
    if (nora == 1) {
        out.println("Account created Succesfully");
    } else {
        out.println("Account not created ");
    }
%>
<h3>
    Name:<%=a.getName()%></h3>
<h3>
    Gender:<%=a.getGender()%></h3>
<h3>
    Contact:<%=a.getContact()%></h3>
<h3>
    City:<%=a.getCity()%></h3>
<h3>
    Name:<%=Skillset%></h3>


<h3>
        Name:<%=a.getCountry()%></h3>
</body>
</html>

This is my code for database connection in package dbconnect. The connection is successful if I run it separately.

package dbconnect;

import java.sql.Connection;
import java.sql.DriverManager;

public class DatabaseConfigure {
    private static Connection con;
    private static final String url = "jdbc:mysql://localhost:3306/cs";
    private static final String userid = "root";
    private static final String password = "root";

    public static Connection dbconnect() {
        try {
            con = DriverManager.getConnection(url, userid, password);

        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return con;

    }
    public static void main(String[] args) {
        System.out.println(DatabaseConfigure.dbconnect());
    }
}

This is my html page:

<head>
<meta charset="ISO-8859-1">
<title>INFORMATION</title>
</head>
<body>
    <form action="SignUp.jsp" method="post">
        <input type="text" name="name" placeholder="NAME:"><br>
        <br> <input type="radio" name="gender" value="M">Male<br>
        <br> <input type="radio" name="gender" value="F">Female<br>
        <br> <input type="number" name="contact"
            placeholder="CONTACT NO:"><br>
        <br> <input type="email" name="email" placeholder="E-MAIL"><br>
        <br> <input type="text" name="city" placeholder="CITY"><br>
        <br> <label>SKILLS:</label> <input type="checkbox" name="skill"
            value="Java">Java <input type="checkbox" name="skill"
            value="Python">Python <input type="checkbox" name="skill"
            value="Javascript">Javascript<br>
        <br> <label>COUNTRY:</label><br> <select name="country">
            <option value="India">India</option>
            <option value="China">China</option>
            <option value="USA">USA</option>
        </select> <input type="submit" name="submit">
    </form>
</body>
</html>

What could be the reason for the connection being unsuccessful in the JSP? This the full stack trace:

    SEVERE: Servlet.service() for servlet [jsp] in context with path [/YourFirstJavaWebApp] threw exception [An exception occurred processing [/SignUp.jsp] at line [24]

21:         a.setCountry(request.getParameter("country"));
22:         String Skillset = "";
23:         String Skills[] = request.getParameterValues("skill");
24:         for (String i : Skills) {
25:             Skillset = Skillset + i + " ";
26:         }
27: 


Stacktrace:] with root cause
java.lang.NullPointerException
    at org.apache.jsp.SignUp_jsp._jspService(SignUp_jsp.java:147)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:458)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    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:199)
    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:668)
    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:770)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/cs
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at dbconnect.DatabaseConfigure.dbconnect(DatabaseConfigure.java:14)
    at org.apache.jsp.SignUp_jsp._jspService(SignUp_jsp.java:151)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:458)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    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:199)
    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:668)
    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:770)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
  • Using all capitals is considered shouting, and your 'urgency' is not our problem. I see that you are catching exceptions and then continue on as if nothing happened: that doesn't work. Find out what exception was thrown, fix that cause or post the full exception stacktrace in your question. In addition: don't use things like your `DatabaseConfigure` class: use a proper data source, and make sure you close connections when you're done. – Mark Rotteveel Nov 10 '18 at 09:16
  • This seems to be a duplicate of https://stackoverflow.com/questions/53236463/in-this-code-i-dont-know-why-the-function-dbconnect-is-returning-null Please don't post multiple questions for the same problem. – Mark Rotteveel Nov 10 '18 at 09:29
  • I am sorry, I will take care of that from next time. it's my first post here. I will delete the other question. – Akhil Kumar Nov 10 '18 at 09:44
  • it says no suitable driver found. I am working on eclipse ide. – Akhil Kumar Nov 10 '18 at 10:05
  • See https://stackoverflow.com/questions/1911253/the-infamous-java-sql-sqlexception-no-suitable-driver-found given you're writing a web application, you will either need to put the driver in the servers lib folder (so automatic driver loading can work), or you need to make sure it is deployed in the WEB-INF/lib folder **and** explicitly load the driver by name (or alternatively, use a data source which does this for you). – Mark Rotteveel Nov 10 '18 at 10:08
  • i have already deployed the mysql connector for java in the WEB-INF/lib folder. But still it doesn't works. – Akhil Kumar Nov 10 '18 at 10:11
  • Then you need to explicitly load the driver using `Class.forName("com.mysql.jdbc.Driver")`. Automatic driver loading only works if the driver is on the initial classpath, not on the context classpath of the web application. – Mark Rotteveel Nov 10 '18 at 10:12
  • Thanks i have added the jar file to server's libray. Now it works perfectly. – Akhil Kumar Nov 10 '18 at 10:49

0 Answers0