<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>JspServletJstlCrud</display-name>
<servlet>
<servlet-name>UserController</servlet-name>
<servlet-class>com.ramsiscode.controller.UserController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserController</servlet-name>
<url-pattern>/UserController</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ramsiscode.dao.UserDao;
import com.ramsiscode.model.User;
public class UserController extends HttpServlet {
private static final long serialVersionUID = 1L;
private static String INSERT_OR_EDIT = "/user.jsp";
private static String LIST_USER = "/listuser.jsp";
private UserDao dao;
public UserController() {
super();
dao = new UserDao();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String forward="";
String action = request.getParameter("action");
if (action.equalsIgnoreCase("delete")){
String userId = request.getParameter("userId");
dao.deleteUser(userId);
forward = LIST_USER;
request.setAttribute("users", dao.getAllUsers());
} else if (action.equalsIgnoreCase("edit")){
forward = INSERT_OR_EDIT;
String userId = request.getParameter("userId");
User user = dao.getUserById(userId);
request.setAttribute("user", user);
} else if (action.equalsIgnoreCase("listUser")){
forward = LIST_USER;
request.setAttribute("users", dao.getAllUsers());
} else {
forward = INSERT_OR_EDIT;
}
RequestDispatcher view = request.getRequestDispatcher(forward);
view.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User user = new User();
user.setUname(request.getParameter("uname"));
user.setPassword(request.getParameter("pass"));
try {
Date reg = new SimpleDateFormat("yyyy/MM/dd").parse(request.getParameter("dob"));
System.out.println("Date >>> "+ reg);
user.setRegisteredon(reg);
} catch (ParseException e) {
e.printStackTrace();
}
user.setEmail(request.getParameter("email"));
String userid = request.getParameter("uname");
// if(userid == null || userid.isEmpty())
// {
// dao.addUser(user);
// }
// else
// {
user.setUname(userid);
dao.checkUser(user);
// }
RequestDispatcher view = request.getRequestDispatcher(LIST_USER);
request.setAttribute("users", dao.getAllUsers());
view.forward(request, response);
}
}
import java.sql.*;
import java.util.*;
import com.ramsiscode.model.User;
import com.ramsiscode.util.Database;
public class UserDao {
private Connection connection;
public UserDao() {
connection = Database.getConnection();
}
public void checkUser(User user) {
try {
PreparedStatement ps = connection.prepareStatement("select uname from users where uname = ?");
ps.setString(1, user.getUname());
ResultSet rs = ps.executeQuery();
if (rs.next()) // found
{
updateUser(user);
} else {
addUser(user);
}
} catch (Exception ex) {
System.out.println("Error in check() -->" + ex.getMessage());
}
}
public void addUser(User user) {
try {
PreparedStatement preparedStatement = connection.prepareStatement("insert into users(uname, password, email, registeredon) values (?, ?, ?, ? )");
// Parameters start with 1
preparedStatement.setString(1, user.getUname());
preparedStatement.setString(2, user.getPassword());
preparedStatement.setString(3, user.getEmail());
preparedStatement.setDate(4, new java.sql.Date(user.getRegisteredon().getTime()));
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void deleteUser(String userId) {
try {
PreparedStatement preparedStatement = connection.prepareStatement("delete from users where uname=?");
// Parameters start with 1
preparedStatement.setString(1, userId);
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateUser(User user) {
try {
PreparedStatement preparedStatement = connection.prepareStatement("update users set password=?, email=?, registeredon=?"
+ "where uname=?");
// Parameters start with 1
System.out.println(new java.sql.Date(user.getRegisteredon().getTime()));
preparedStatement.setString(1, user.getPassword());
preparedStatement.setString(2, user.getEmail());
preparedStatement.setDate(3, new java.sql.Date(user.getRegisteredon().getTime()));
preparedStatement.setString(4, user.getUname());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<User> getAllUsers() {
List<User> users = new ArrayList<User>();
try {
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("select * from users");
while (rs.next()) {
User user = new User();
user.setUname(rs.getString("uname"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setRegisteredon(rs.getDate("registeredon"));
users.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}
public User getUserById(String userId) {
User user = new User();
try {
PreparedStatement preparedStatement = connection.prepareStatement("select * from users where uname=?");
preparedStatement.setString(1, userId);
ResultSet rs = preparedStatement.executeQuery();
if (rs.next()) {
user.setUname(rs.getString("uname"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setRegisteredon(rs.getDate("registeredon"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
}
import java.util.Date;
public class User {
String uname, password, email;
Date registeredon;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getRegisteredon() {
return registeredon;
}
public void setRegisteredon(Date registeredon) {
this.registeredon = registeredon;
}
}
import java.sql.Connection;
import java.sql.DriverManager;
public class Database {
public static Connection getConnection() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection
("jdbc:mysql://localhost:3306/test?characterEncoding=utf8",
"root","admin123");
return con;
}
catch(Exception ex) {
System.out.println("Database.getConnection() Error -->" + ex.getMessage());
return null;
}
}
public static void close(Connection con) {
try {
con.close();
}
catch(Exception ex) {
}
}
}
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Show All Users</title>
</head>
<body>
<table border=1>
<thead>
<tr>
<th>User Name</th>
<th>Email</th>
<th>Registration Date</th>
<th colspan=2>Action</th>
</tr>
</thead>
<tbody>
<c:forEach items="${users}" var="user">
<tr>
<td><c:out value="${user.uname}" /></td>
<td><c:out value="${user.email}" /></td>
<td><fmt:formatDate pattern="dd MMM,yyyy" value="${user.registeredon}" /></td>
<td><a href="UserController?action=edit&userId=<c:out value="${user.uname}"/>">Update</a></td>
<td><a href="UserController?action=delete&userId=<c:out value="${user.uname}"/>">Delete</a></td>
</tr>
</c:forEach>
</tbody>
</table>
<p><a href="UserController?action=insert">Add User</a></p>
</body>
</html>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Add new user</title>
</head>
<body>
<form method="POST" action='UserController' name="frmAddUser">
<Table border="0px;">
<% String action = request.getParameter("action");
System.out.println(action);
%>
<tr>
<% if (action.equalsIgnoreCase("edit")) {%>
<td>
User Name : </td><td><input type="text" name="uname"
value="<c:out value="${user.uname}" />" readonly="readonly"/> (You Can't Change this)</td>
<%} else {%>
<td> User Name :</td><td> <input type="text" name="uname"
value="<c:out value="${user.uname}" />" /> </td>
<%}%>
</tr>
<tr>
<td> Password :</td><td> <input
type="password" name="pass"
value="<c:out value="${user.password}" />" /> </td>
</tr>
<tr>
<td>
Email : </td><td><input
type="text" name="email"
value="<c:out value="${user.email}" />" /> </td>
</tr>
<% if (action.equalsIgnoreCase("edit")) {%>
<tr>
<td> Registration : </td><td><input
type="text" name="dob"
value="<fmt:formatDate pattern="yyyy/MM/dd" value="${user.registeredon}" />" readonly="readonly"/>(You Can't Change this)
</td>
<%} else {%>
<td> Registration : </td><td><input
type="text" name="dob"
value="<fmt:formatDate pattern="yyyy/MM/dd" value="${user.registeredon}" />" />(yyyy/MM/dd) </td>
<%}%>
</tr>
<br/>
<tr>
<td> <input type="submit" value="Submit" /></td><td><input type="Reset" value="Reset" /></td>
</tr>
</Table>
</form>
</body>
</html>