Thursday, 21 July 2016

Modified CRUD in Servlets

A CRUD application is very important in any project developemt.
C- Create database
R- Read database
U- Update database
D- Delete database
It is an modified form because In this we are using the concept of cookies also.As cookies are saved in browser in one browser only one user can access it.To access application you have to login again.
Anyone can view record in table but if he wants to update,delete or insert data in database he has to first login.
step-1:
create database with table login,student with the following fields.
login-username,password
Student-name,age,company,uniqueid

step-2:
index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
              <title>index page</title>
</head>
<body>
             <form action="Register" method="post">
             <input type="submit" value="showalldata" name="i"/>
             <input type="submit" value="login" name="i"/>
             </form>
             <form action="operation.html" method="post">
             <input type="submit" value="access" name="i"/>
             </form>
</body>

</html>

login.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
          <title>MyHtml.html</title>
</head>
<body>
          <form action="Login" method="post">
          Enter UserName:<input type="text"  name="i1"/>
          <br/>
          <br/>
          Enter PassWord:<input type="password"  name="i2"/>
          <br/>
          <br/>
         <input type="submit" value ="submit"/>
 </form>
</body>
</html>

operation.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
          <title>MyHtml.html</title>
</head>
<body>
          <form action="Register" method="post">
          <table>
    <tr>
          <td>Name:</td>
          <td><input type="text" name="name"/></td>
   </tr>
    <tr>
           <td>Age:</td>
           <td><input type="text" name="age"/></td>
   </tr>
   <tr>
           <td>CompanyName:</td>
          <td><input type="text" name="companyname"/></td>
  </tr>
  <tr>
            <td>UniqueNo:</td>
            <td><input type="text" name="sid"/></td>
   </tr>
   </table>
   <br>
   <br/>
           <input type="submit" value="insert" name="i"/>
           <input type="submit" value="update" name="i"/>
           <input type="submit" value="delete" name="i"/>
           <input type="submit" value="showalldata" name="i"/>
</form>
</body>

</html>

step-3:

Login.java

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
//import java.sql.DriverManager;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Login extends HttpServlet {

/**
*
*/
private static final long serialVersionUID = 5211745231183573478L;

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
{
try
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String username=request.getParameter("i1");
String password=request.getParameter("i2");
PreparedStatement ps=Register.con.prepareStatement("select * from login where UserName=? and PassWord=?");
ps.setString(1,username);
ps.setString(2,password);
ResultSet rst=ps.executeQuery();

if(rst.next())
{

Cookie ck=new Cookie("Uname",username);
response.addCookie(ck);
RequestDispatcher rd=request.getRequestDispatcher("operation.html");
rd.forward(request,response);
//Register.access=true;
}
else
{
out.print("<h3>wrong username or password</h3>");
RequestDispatcher rd=request.getRequestDispatcher("login.html");
rd.include(request,response);
}

out.close();

}
catch(Exception e)
{
System.out.println("Error Occured : " + e.getMessage());
}

}


}

Register.java

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Register
 */
public class Register extends HttpServlet {
private static final long serialVersionUID = 1L;
//public static boolean access = false;

/**
* @see HttpServlet#HttpServlet()
*/
public Register() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
*      response)
*/
public static Connection con;
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
String age = request.getParameter("age");
String company = request.getParameter("companyname");
String uniqueid = request.getParameter("sid");
String buttonPressed = request.getParameter("i");
//System.out.println("value of button : " + buttonPressed);
Cookie ck[]=request.getCookies();
try {

// loading drivers for mysql
Class.forName("com.mysql.jdbc.Driver");

// creating connection with the database
   con = DriverManager.getConnection("jdbc:mysql://localhost:3306/school", "root", "root");
if (buttonPressed.equals("insert")) {
if (ck==null)
{
//System.out.println("my name is khan");
out.print("<h3>please login first:</h3>");
RequestDispatcher rd=request.getRequestDispatcher("index.html");
rd.include(request,response);
//response.sendRedirect("index.html");
//JOptionPane.showMessageDialog(this,,1);
//JOptionPane.showMessageDialog(null, "please login first : ", null, 0);
//request.setAttribute("errorMessage", "Please submit an amount of at least 1");
//response.sendRedirect("http://localhost:8080/LoginLogout/index.html");
}
else {
//request.getSession().removeAttribute("errorMessage");
PreparedStatement ps = con.prepareStatement("insert into Student values(?,?,?,?)");
ps.setString(1, name);
ps.setString(2, age);
ps.setString(3, company);
ps.setString(4, uniqueid);
int i = ps.executeUpdate();

if (i > 0) {
out.println("You are sucessfully inserted");
}
}
} else if (buttonPressed.equals("update"))
{
// String query = "update student set name= '"+name+"'";
if (ck==null)
{
//out.print("please login first:");
//JOptionPane.showMessageDialog(null, "please login first : ", null, 0);
//request.setAttribute("errorMessage", "Please submit an amount of at least 1");
out.print("<h3>please login first:</h3>");
RequestDispatcher rd=request.getRequestDispatcher("index.html");
rd.include(request,response);

//response.sendRedirect("http://localhost:8080/LoginLogout/index.html");
}
else
{
System.out.println("i am updated:");
PreparedStatement ps = con.prepareStatement("update student set name=?,age=?,company=? where sid=?");
ps.setString(1, name);
ps.setString(2, age);
ps.setString(3, company);
ps.setString(4, uniqueid);
int i = ps.executeUpdate();

if (i > 0) {
out.println("You are sucessfully updated");
}
}
}
else if (buttonPressed.equals("delete"))
{
//System.out.println("access value is :"+access);
if (ck==null)
{
out.print("<h3>please login first:</h3>");
RequestDispatcher rd=request.getRequestDispatcher("index.html");
rd.include(request,response);

//System.out.println("i am in delete button:");
//out.print("please login first:");
//JOptionPane.showMessageDialog(null, "please login first : ", null, 0);
//response.sendRedirect("http://localhost:8080/LoginLogout/index.html");
}
else {
String query = "DELETE FROM student WHERE sid = '"
+ uniqueid + "'";
Statement st = con.createStatement();
int i=st.executeUpdate(query);
if(i>0)
out.print("you have successfully deleted");
}

}
else if (buttonPressed.equals("showalldata")) {

// PreparedStatement ps=con.prepareStatement("");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from student");
out.print("<table border=1>");
out.print("<tr>");
out.print("<td>Name: </td>");
out.print("<td>Age: </td>");
out.print("<td>Company: </td>");
out.print("<td>Unique Id: </td>");
out.print("</tr>");

while (rs.next()) {
// Retrieve by column name
name = rs.getString(1);
age = rs.getString(2);
company = rs.getString(3);
uniqueid = rs.getString(4);

// Display values
out.print("<tr>");
out.print("<td>"+name+"</td>");
out.print("<td>"+age+"</td>");
out.print("<td>"+company+"</td>");
out.print("<td>"+uniqueid+"</td>");
out.print("</tr>");
out.print("<tr>");





}
out.print("</table>");
}
else if(buttonPressed.equals("login"))
{
//response.sendRedirect("http://localhost:8080/LoginLogout/MyHtml.html");
//response.sendRedirect("http://localhost:8080/LoginLogout/MyHtml.html");

RequestDispatcher rd=request.getRequestDispatcher("login.html");
rd.forward(request,response);
}
}
catch (Exception se) {
System.out.println("Error Occurred : " + se.getMessage());
}

}


}