");
- if(bName == null || bName.isBlank()) {
- //render the add book form;
+
+ if (bName == null || bName.trim().isEmpty()) { // Use trim() for better handling of blank spaces
showAddBookForm(pw);
return;
- } //else process the add book
-
-
+ }
+
try {
String uniqueID = UUID.randomUUID().toString();
String bCode = uniqueID;
String bAuthor = req.getParameter(BooksDBConstants.COLUMN_AUTHOR);
- double bPrice = Integer.parseInt(req.getParameter(BooksDBConstants.COLUMN_PRICE));
+ double bPrice = Double.parseDouble(req.getParameter(BooksDBConstants.COLUMN_PRICE));
int bQty = Integer.parseInt(req.getParameter(BooksDBConstants.COLUMN_QUANTITY));
Book book = new Book(bCode, bName, bAuthor, bPrice, bQty);
String message = bookService.addBook(book);
+
if ("SUCCESS".equalsIgnoreCase(message)) {
- pw.println(
- "
Book Detail Updated Successfully! Add More Books
");
+ pw.println("
Book Detail Updated Successfully! Add More Books
");
} else {
- pw.println("
Failed to Add Books! Fill up CareFully
");
- //rd.include(req, res);
+ pw.println("
Failed to Add Books! Fill up Carefully
");
}
+ } catch (NumberFormatException e) {
+ pw.println("
Invalid number format. Please check your input.
");
} catch (Exception e) {
- e.printStackTrace();
- pw.println("
Failed to Add Books! Fill up CareFully
");
+ e.printStackTrace(); // Optionally log this to a logging framework
+ pw.println("
Failed to Add Books! Please try again later.
");
}
}
-
+
private static void showAddBookForm(PrintWriter pw) {
String form = "
\r\n"
+ " \r\n"
+ " \r\n"
+ " \r\n"
+ " \r\n"
- + " \r\n"
- + " \r\n"
+ + " \r\n"
+ "
";
pw.println(form);
}
diff --git a/src/main/java/servlets/CustomerLoginServlet.java b/src/main/java/servlets/CustomerLoginServlet.java
index 9fc293d8..f4459515 100644
--- a/src/main/java/servlets/CustomerLoginServlet.java
+++ b/src/main/java/servlets/CustomerLoginServlet.java
@@ -17,40 +17,55 @@
import com.bittercode.service.impl.UserServiceImpl;
public class CustomerLoginServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
UserService authService = new UserServiceImpl();
- public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
+ res.setContentType(BookStoreConstants.CONTENT_TYPE_TEXT_HTML + "; charset=UTF-8");
PrintWriter pw = res.getWriter();
- res.setContentType(BookStoreConstants.CONTENT_TYPE_TEXT_HTML);
+
String uName = req.getParameter(UsersDBConstants.COLUMN_USERNAME);
String pWord = req.getParameter(UsersDBConstants.COLUMN_PASSWORD);
- User user = authService.login(UserRole.CUSTOMER, uName, pWord, req.getSession());
+ User user = null;
try {
+ user = authService.login(UserRole.CUSTOMER, uName, pWord, req.getSession());
if (user != null) {
-
RequestDispatcher rd = req.getRequestDispatcher("CustomerHome.html");
rd.include(req, res);
- pw.println("
Welcome to Online Book Store \r\n"
- + "
\r\n"
- + "
\r\n"
- + " \r\n"
- + " Welcome "+user.getFirstName()+", Happy Learning !!
\r\n"
- + " \r\n"
- + "
");
-
+ pw.println("
Welcome to Online Book Store \r\n"
+ + "
\r\n"
+ + "
\r\n"
+ + "\r\n"
+ + "Welcome " + escapeHtml(user.getFirstName()) + ", Happy Learning !!
\r\n"
+ + " \r\n"
+ + "
");
} else {
-
- RequestDispatcher rd = req.getRequestDispatcher("CustomerLogin.html");
- rd.include(req, res);
- pw.println("
Incorrect UserName or PassWord
");
+ handleLoginFailure(req, res, pw);
}
-
} catch (Exception e) {
- e.printStackTrace();
+ e.printStackTrace(); // Log this to a logging framework
+ pw.println("
Something went wrong. Please try again later.
");
}
}
-}
\ No newline at end of file
+ private void handleLoginFailure(HttpServletRequest req, HttpServletResponse res, PrintWriter pw) throws ServletException, IOException {
+ RequestDispatcher rd = req.getRequestDispatcher("CustomerLogin.html");
+ rd.include(req, res);
+ pw.println("
Incorrect Username or Password
");
+ }
+
+ private String escapeHtml(String input) {
+ if (input == null) {
+ return "";
+ }
+ return input.replace("&", "&")
+ .replace("<", "<")
+ .replace(">", ">")
+ .replace("\"", """)
+ .replace("'", "'");
+ }
+}
diff --git a/src/main/java/servlets/RemoveBookServlet.java b/src/main/java/servlets/RemoveBookServlet.java
index a063fae8..b9ba5972 100644
--- a/src/main/java/servlets/RemoveBookServlet.java
+++ b/src/main/java/servlets/RemoveBookServlet.java
@@ -16,12 +16,32 @@
import com.bittercode.util.StoreUtil;
public class RemoveBookServlet extends HttpServlet {
-
+ private static final long serialVersionUID = 1L;
BookService bookService = new BookServiceImpl();
- public void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
+ // Show the remove book form for GET requests
PrintWriter pw = res.getWriter();
- res.setContentType("text/html");
+ res.setContentType("text/html; charset=UTF-8");
+
+ if (!StoreUtil.isLoggedIn(UserRole.SELLER, req.getSession())) {
+ RequestDispatcher rd = req.getRequestDispatcher("SellerLogin.html");
+ rd.include(req, res);
+ pw.println("
Please Login First to Continue!!
");
+ return;
+ }
+
+ pw.println("
");
+ showRemoveBookForm(pw);
+ pw.println("
");
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
+ PrintWriter pw = res.getWriter();
+ res.setContentType("text/html; charset=UTF-8");
+
if (!StoreUtil.isLoggedIn(UserRole.SELLER, req.getSession())) {
RequestDispatcher rd = req.getRequestDispatcher("SellerLogin.html");
rd.include(req, res);
@@ -35,26 +55,23 @@ public void service(HttpServletRequest req, HttpServletResponse res) throws IOEx
rd.include(req, res);
StoreUtil.setActiveTab(pw, "removebook");
pw.println("
");
- if (bookId == null || bookId.isBlank()) {
- // render the remove book form;
+
+ if (bookId == null || bookId.trim().isEmpty()) {
+ // Render the remove book form again if no bookId is provided
showRemoveBookForm(pw);
return;
- } // else continue
+ }
String responseCode = bookService.deleteBookById(bookId.trim());
if (ResponseCode.SUCCESS.name().equalsIgnoreCase(responseCode)) {
pw.println("
Book Removed Successfully
");
- pw.println(
- "
");
-
} else {
pw.println("
Book Not Available In The Store
");
- pw.println(
- "
");
}
+ pw.println("
");
pw.println("
");
} catch (Exception e) {
- e.printStackTrace();
+ e.printStackTrace(); // Optionally log this to a logging framework
pw.println("
Failed to Remove Books! Try Again
");
}
}
@@ -69,10 +86,8 @@ private static void showRemoveBookForm(PrintWriter pw) {
+ "
\r\n"
+ " \r\n"
+ " \r\n"
- + "\r\n"
+ " \r\n"
+ " ";
pw.println(form);
}
-
}