1
package jdbc;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import static java.lang.System.out;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Registration extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        try {
            String name = request.getParameter("name");
            String email = request.getParameter("email");
            String pass = request.getParameter("password");
            String sql="insert into regis(name,email,password) values(?,?,?)";

            Class.forName("com.java.mysql.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","3839");
            PreparedStatement ps= con.prepareStatement(sql);
            ps.setString(1,name);
            ps.setString(2, email);
            ps.setString(3, pass);

            ps.executeUpdate();
            PrintWriter out= response.getWriter();
            out.println("Registration Done !!");
        } catch (IOException | ClassNotFoundException | SQLException ex) {
            out.println(ex);
        }    
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }
}

I am a beginner in this, so what i have done first i have created 2 jsp for login & register and one servlet (as code above), i did mapping in web.xml and also had connected to Mysql server (connector and jdbc Driver Too ). But still when i enter data in register page and submit it just show (//localhost:8084/WebApplication5/Registration) Nothing only a Blank page, didnt show any Exception also.

web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <display-name>Registration </display-name>
    <servlet>
        <servlet-name>Reg</servlet-name>
        <servlet-class>jdbc.Registration</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Reg</servlet-name>
        <url-pattern>/Registration</url-pattern>
    </servlet-mapping>
</web-app>
tima
  • 1,498
  • 4
  • 20
  • 28
Toxy.x3
  • 31
  • 8

1 Answers1

1

You're setting the content type of the response to "text/html;charset=UTF-8", but the content you're writing is text/plain.

Besides, I highly recommend you to use a DataSource that you define in the configuration of your servlet container.

UPDATE:

try this:

    response.setContentType("text/plain;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        try {
            String name = request.getParameter("name");
            String email = request.getParameter("email");
            String pass = request.getParameter("password");
            String sql = "insert into regis(name,email,password) values(?,?,?)";

            Class.forName("com.java.mysql.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "3839");
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1, name);
            ps.setString(2, email);
            ps.setString(3, pass);

            ps.executeUpdate();
            out.println("Registration Done !!");

        } catch (IOException | ClassNotFoundException | SQLException ex) {
            out.println(ex);
        }
    }

UPDATE 2:

My mistake: the writer doesn't need to be closed:

    response.setContentType("text/plain;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        String name = request.getParameter("name");
        String email = request.getParameter("email");
        String pass = request.getParameter("password");
        String sql = "insert into regis(name,email,password) values(?,?,?)";

        Class.forName("com.java.mysql.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "3839");
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setString(1, name);
        ps.setString(2, email);
        ps.setString(3, pass);

        ps.executeUpdate();
        out.println("Registration Done !!");

    } catch (IOException | ClassNotFoundException | SQLException ex) {
        out.println(ex);
    }
Maurice Perry
  • 9,261
  • 2
  • 12
  • 24