Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
8dd45e1
first commit switching over to mysql 8.0.23
eloysroblesaguilar Feb 14, 2022
fe65416
created categories table, and many:many table; added UNIQUE to userna…
Julian-H-Martinez Feb 14, 2022
43d9f01
Merge pull request #1 from RegulusBlue/migration-julianMartinez
Julian-H-Martinez Feb 14, 2022
5852217
added deleting and updating functionality to the MySQLUsersDao
eloysroblesaguilar Feb 14, 2022
61313de
added to dao Categories interface; added models Category model
Julian-H-Martinez Feb 14, 2022
3d7dc56
Merge pull request #2 from RegulusBlue/models_category-julianMartinez
Julian-H-Martinez Feb 14, 2022
af8fb16
added update and delete functionality to the MySQLAdsDao
eloysroblesaguilar Feb 14, 2022
f18bca7
working on jsp for showing one ad
Julian-H-Martinez Feb 14, 2022
4dfae35
searchAdsServlet-mainNav_css-keywordsAds_jsp
nicholasdiazjr509 Feb 15, 2022
095497f
Merge pull request #5 from RegulusBlue/diaz-navbar-search
nicholasdiazjr509 Feb 15, 2022
f161380
commenting out a few lines and added a slash to the url patterns
eloysroblesaguilar Feb 15, 2022
22724ae
continuing to work on individual ad; trying to figure out how to pull…
Julian-H-Martinez Feb 15, 2022
9446781
corrected merge conflict
Julian-H-Martinez Feb 15, 2022
6b6beba
Merge pull request #6 from RegulusBlue/individualPage-julianMartinez
Julian-H-Martinez Feb 15, 2022
8e72acc
commented out method
Julian-H-Martinez Feb 15, 2022
19d6fe1
added delete servlet and corresponding jsp
eloysroblesaguilar Feb 15, 2022
ae0b7b8
stopped working on keywordAds.jsp
nicholasdiazjr509 Feb 15, 2022
316a326
Merge branch 'master' into diaz-navbar-search
nicholasdiazjr509 Feb 15, 2022
54f051f
added AdCategory n:n modal
Julian-H-Martinez Feb 15, 2022
08e6da3
models, migration, seeder are ready for review
Julian-H-Martinez Feb 15, 2022
f257bcd
Merge pull request #8 from RegulusBlue/models_category-julianMartinez
Julian-H-Martinez Feb 15, 2022
bd264d1
Merge branch 'master' of github.com:RegulusBlue/regulusblue-java-adli…
Julian-H-Martinez Feb 16, 2022
e3e790a
/profile/update lets the user update their user
eloysroblesaguilar Feb 16, 2022
78ca6d3
added comments to better understand what needs to be done
Julian-H-Martinez Feb 16, 2022
57db4e8
added findAdById(long id) method to extract single ad
Julian-H-Martinez Feb 16, 2022
34a793c
working on findAdById(long id) method; need to figure what needs to b…
Julian-H-Martinez Feb 16, 2022
37a837c
added form to GET certain ad; still need to correct
Julian-H-Martinez Feb 16, 2022
b29722b
working on dynamic navbar
nicholasdiazjr509 Feb 16, 2022
a58f099
working on dynamic navbar
nicholasdiazjr509 Feb 16, 2022
40b45fc
deleted comments
Julian-H-Martinez Feb 16, 2022
9048827
working on findOne method
Julian-H-Martinez Feb 16, 2022
3f6c220
added findOne method from MySQLAdsDao
Julian-H-Martinez Feb 16, 2022
73fa35e
commented out file until ready to delete; not needed
Julian-H-Martinez Feb 16, 2022
cf6d5ba
working on servlet to obtain ad id and show ad page
Julian-H-Martinez Feb 16, 2022
9585f2d
Merge pull request #9 from RegulusBlue/individualPage-julianMartinez
Julian-H-Martinez Feb 16, 2022
4373d09
MIGRATION file changed
nicholasdiazjr509 Feb 16, 2022
7dfa0aa
worked on index.jsp and navbar functionality
nicholasdiazjr509 Feb 17, 2022
2a2c7be
worked on index.jsp and navbar functionality
nicholasdiazjr509 Feb 17, 2022
ed73002
worked on index.jsp and navbar functionality
nicholasdiazjr509 Feb 17, 2022
06e2121
worked on index.jsp and navbar functionality
nicholasdiazjr509 Feb 17, 2022
490d001
Update migration.sql
nicholasdiazjr509 Feb 17, 2022
d944abd
draft of showing all ads
audrey-murua Feb 17, 2022
ab3ec86
Merge branch 'master' into audrey-all_ads_profile
Julian-H-Martinez Feb 17, 2022
0380bbf
Merge pull request #10 from RegulusBlue/audrey-all_ads_profile
Julian-H-Martinez Feb 17, 2022
9ed21c8
refactored findOne method to throw SQLException
Julian-H-Martinez Feb 17, 2022
cd3e968
working on findOne method; need to square away merges first
Julian-H-Martinez Feb 17, 2022
46699dd
Merge pull request #11 from RegulusBlue/individualPage-julianMartinez
Julian-H-Martinez Feb 17, 2022
fe6ba2f
Merge branch 'master' into diaz-navbar-search
eloysroblesaguilar Feb 17, 2022
009ba8c
Merge pull request #7 from RegulusBlue/diaz-navbar-search
eloysroblesaguilar Feb 17, 2022
74509ce
Merge pull request #4 from RegulusBlue/adcrud
eloysroblesaguilar Feb 17, 2022
9fd4ba2
Merge pull request #3 from RegulusBlue/usercrud
eloysroblesaguilar Feb 17, 2022
b38796a
fixed some issues with duplicate code and commented out some errors
eloysroblesaguilar Feb 17, 2022
c49a9f0
need to stop to pull from master and start from there
Julian-H-Martinez Feb 17, 2022
e794230
Merge branch 'master' into individualPage-julianMartinez
Julian-H-Martinez Feb 17, 2022
975ff07
Merge pull request #12 from RegulusBlue/individualPage-julianMartinez
Julian-H-Martinez Feb 17, 2022
ec7f5fd
commented out some redundant code; need to discuss removal with team
Julian-H-Martinez Feb 17, 2022
446e898
updated gitignore file; adjusted migration and seeder sql files
Julian-H-Martinez Feb 17, 2022
1426176
added comment to consider changing redirect to /profile since index w…
Julian-H-Martinez Feb 17, 2022
c7669a9
commented out servlet; for clarity
Julian-H-Martinez Feb 17, 2022
dc6040b
added findOne method
Julian-H-Martinez Feb 17, 2022
1d0596f
adjusted findOne method
Julian-H-Martinez Feb 17, 2022
55309ca
added comment because index page/urlPattern does not work
Julian-H-Martinez Feb 17, 2022
a774377
added controller for user to update their ad
eloysroblesaguilar Feb 17, 2022
424d7b2
fixing the all() method in MySQLAdsDao, * will select all the columns…
eloysroblesaguilar Feb 17, 2022
bfdc1da
adding servlet to pick an ad from list; list is coming from user prof…
Julian-H-Martinez Feb 17, 2022
dc837d7
still working on getting ad to pull up selected ad
Julian-H-Martinez Feb 17, 2022
1b552b5
Merge remote-tracking branch 'origin/master'
eloysroblesaguilar Feb 17, 2022
139761e
added form button to select ad; will be changing to an a tag on title…
Julian-H-Martinez Feb 17, 2022
c15d7da
refactored form to use an a tag on ad title, taking away the neeed fo…
Julian-H-Martinez Feb 17, 2022
853fb30
servlet now working as intended
eloysroblesaguilar Feb 17, 2022
6f6a3d4
no now
eloysroblesaguilar Feb 17, 2022
aaf3022
adjusted form to be able to grab selected ad's id
Julian-H-Martinez Feb 17, 2022
e4a7622
added the delete profile controller
eloysroblesaguilar Feb 17, 2022
77bef6b
delete function and c:out tags
eloysroblesaguilar Feb 17, 2022
50728ad
Merge branch 'master' into adcontrollers
eloysroblesaguilar Feb 17, 2022
1f3f885
Merge pull request #13 from RegulusBlue/adcontrollers
eloysroblesaguilar Feb 17, 2022
6e87ed0
refactoring pickad to select ad
Julian-H-Martinez Feb 17, 2022
47f5190
Merge branch 'master' of github.com:RegulusBlue/regulusblue-java-adli…
eloysroblesaguilar Feb 17, 2022
44904bb
commenting out code to rethink
Julian-H-Martinez Feb 17, 2022
ed5cf33
refactoring showAd to display info on single ad
Julian-H-Martinez Feb 17, 2022
db542b8
show ad is able to pull over ad info; need to add categories
Julian-H-Martinez Feb 17, 2022
a884ee5
added setAttribute to obtain ad id
Julian-H-Martinez Feb 18, 2022
07afa20
completed functionality to pull info on ad and adUser
Julian-H-Martinez Feb 18, 2022
5bb4453
added comments for clarity and an rs.next() that was missing
Julian-H-Martinez Feb 18, 2022
d75fc0a
added findById method to make 1:n relation with ads
Julian-H-Martinez Feb 18, 2022
a9b3e93
added findById
Julian-H-Martinez Feb 18, 2022
397099c
Merge branch 'master' into individualPage-julianMartinez
Julian-H-Martinez Feb 18, 2022
6cafd74
Merge pull request #14 from RegulusBlue/individualPage-julianMartinez
Julian-H-Martinez Feb 18, 2022
adca03c
tried to fix all the errors with not being able to merge
nicholasdiazjr509 Feb 18, 2022
3848f17
tried to fix all the errors with not being able to merge
nicholasdiazjr509 Feb 18, 2022
9e0013b
added buttons for user to be able to edit and delete ads on index and…
eloysroblesaguilar Feb 18, 2022
cb15d61
Merge branch 'master' into buttontime
eloysroblesaguilar Feb 18, 2022
f01a494
Merge pull request #15 from RegulusBlue/buttontime
Julian-H-Martinez Feb 19, 2022
bd0ecbe
removed duplicate code
Julian-H-Martinez Feb 19, 2022
c9e3e0d
styled adPage; added edit and delete buttons (functional)
Julian-H-Martinez Feb 19, 2022
f26a3b0
adding scripts file for all scripts needed
Julian-H-Martinez Feb 19, 2022
7e7915b
added jps:include to include scripts
Julian-H-Martinez Feb 19, 2022
b2ae775
Merge branch 'master' of github.com:RegulusBlue/regulusblue-java-adli…
Julian-H-Martinez Feb 19, 2022
54ea569
Merge pull request #16 from RegulusBlue/individualPage-julianMartinez
Julian-H-Martinez Feb 19, 2022
91ce3bb
having issues with a 405 error
nicholasdiazjr509 Feb 20, 2022
711695c
at stopping point
nicholasdiazjr509 Feb 20, 2022
f5cee00
Merge branch 'master' into diaz-navbar-search
nicholasdiazjr509 Feb 20, 2022
68c0ed4
at stopping point
nicholasdiazjr509 Feb 20, 2022
49d2267
at stopping point
nicholasdiazjr509 Feb 20, 2022
a278086
more fixes
nicholasdiazjr509 Feb 20, 2022
6b1bc44
Merge pull request #17 from RegulusBlue/diaz-navbar-search
nicholasdiazjr509 Feb 20, 2022
c06428b
more fixes, not sure why i keep getteing error 405
nicholasdiazjr509 Feb 20, 2022
79e41c4
Merge pull request #18 from RegulusBlue/diaz-navbar-search
nicholasdiazjr509 Feb 20, 2022
69ff034
fixing some of my mistakes
nicholasdiazjr509 Feb 21, 2022
d2d099d
Delete regulusblue-java-adlister.userlibraries
nicholasdiazjr509 Feb 21, 2022
151a787
Delete RegisterServlet.java
nicholasdiazjr509 Feb 21, 2022
7ca3cf8
Update .gitignore
nicholasdiazjr509 Feb 21, 2022
d70694f
Merge pull request #19 from RegulusBlue/diaz-navbar-search
nicholasdiazjr509 Feb 21, 2022
7a72106
had to recreate a lot of code
nicholasdiazjr509 Feb 21, 2022
c4ed6f9
Update profile.jsp
nicholasdiazjr509 Feb 21, 2022
0f2aea1
had to recreate a lot of code
nicholasdiazjr509 Feb 21, 2022
58d2fd5
Merge branch 'master' into diaz-navbar-search
nicholasdiazjr509 Feb 21, 2022
7ff9a81
had to recreate a lot of code
nicholasdiazjr509 Feb 22, 2022
de9fc9d
had to recreate a lot of code
nicholasdiazjr509 Feb 22, 2022
832f19f
had to recreate a lot of code
nicholasdiazjr509 Feb 22, 2022
a5cd7e0
had to recreate a lot of code
nicholasdiazjr509 Feb 22, 2022
6fd916f
had to recreate a lot of code
nicholasdiazjr509 Feb 22, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
62 changes: 48 additions & 14 deletions migration.sql
Original file line number Diff line number Diff line change
@@ -1,22 +1,56 @@
USE adlister_db;

DROP TABLE IF EXISTS ads;
DROP TABLE IF EXISTS users;

CREATE TABLE users (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(240) NOT NULL,
email VARCHAR(240) NOT NULL,
CREATE TABLE users
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(240) NOT NULL UNIQUE,
email VARCHAR(240) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
PRIMARY KEY (id) # added these ND
# maybe only dateCreated could be added
# UNIQUE is identified in username/email above
# will comment out until okayed by team
# dateCreated VARCHAR (50) NOT NULL
# UNIQUE (username),
# UNIQUE (email)

);

CREATE TABLE ads (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
title VARCHAR(240) NOT NULL,
description TEXT NOT NULL,
DROP TABLE IF EXISTS ads;
CREATE TABLE ads
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
title VARCHAR(240) NOT NULL,
description VARCHAR(400) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users(id)
FOREIGN KEY (user_id) REFERENCES users (id)
ON DELETE CASCADE

-- # added these ND

# commenting out the below,
# don't believe is needed
# will discuss with team
# dateCreated VARCHAR (50) NOT NULL,
# categoryName VARCHAR(255) NOT NULL,
# UNIQUE (user_id, title, description)
);

DROP TABLE IF EXISTS categories;
CREATE TABLE categories
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
categoryName VARCHAR(240) NOT NULL,
PRIMARY KEY (id)
);

DROP TABLE IF EXISTS ad_category;
CREATE TABLE ad_category
(
category_id INT UNSIGNED NOT NULL,
ad_id INT UNSIGNED NOT NULL,
FOREIGN KEY (ad_id) REFERENCES ads (id)
ON DELETE CASCADE,
FOREIGN KEY (category_id) REFERENCES categories (id)
);
7 changes: 4 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,23 @@
<dependency>
<groupId>org.mindrot</groupId>
<artifactId>jbcrypt</artifactId>
<version>0.3m</version>
<version>0.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.5</version>
<version>8.0.23</version>
</dependency>
</dependencies>

Expand Down
13 changes: 13 additions & 0 deletions seeder.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
USE adlister_db;

-- # TRUNCATE categories;

INSERT INTO categories (categoryName)
VALUES ('For Sale'),
('Auto'),
('Housing'),
('Jobs'),
('Community');

SELECT * FROM categories;

Binary file added src/.DS_Store
Binary file not shown.
15 changes: 15 additions & 0 deletions src/main/java/com/codeup/adlister/controllers/AdsIndexServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,21 @@
public class AdsIndexServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("ads", DaoFactory.getAdsDao().all());

// if (request.getSession().getAttribute("vp") != null) {
// request.getSession().removeAttribute("vp");
// }
// request.getSession().setAttribute("vi", "hi");
request.getRequestDispatcher("/WEB-INF/ads/index.jsp").forward(request, response);

}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

}
}

// urlPattern does not work; get a 500 error code stating
// Error retrieving all ads
// Root Cause: Unknown database 'ads'
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
request.getParameter("description")
);
DaoFactory.getAdsDao().insert(ad);
// consider changing redirect to /profile until adIndex is setup
response.sendRedirect("/ads");
}
}
42 changes: 42 additions & 0 deletions src/main/java/com/codeup/adlister/controllers/DeleteAdServlet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.codeup.adlister.controllers;

import com.codeup.adlister.dao.DaoFactory;
import com.codeup.adlister.models.Ad;
import com.codeup.adlister.models.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/ads/delete")
public class DeleteAdServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// String idQuery = req.getParameter("id");
// Ad ad = DaoFactory.getAdsDao().findByStringId(idQuery);
// User user = (User) req.getSession().getAttribute("user");
// if (ad.getUserId() != user.getId()) {
// resp.sendRedirect("/profile");
// } else {
// req.getSession().setAttribute("ad", ad);
// }
req.getRequestDispatcher("/WEB-INF/ads/delete.jsp").forward(req, resp);
}


@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Long id = Long.parseLong(req.getParameter("ad_id"));
Ad ad = DaoFactory.getAdsDao().findById(id);
DaoFactory.getAdsDao().delete(ad);
if (req.getSession().getAttribute("vp") == null){
resp.sendRedirect("/ads");
} else {
resp.sendRedirect("/profile");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.codeup.adlister.controllers;


import com.codeup.adlister.dao.DaoFactory;
import com.codeup.adlister.models.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/profile/delete")
public class DeleteProfileServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (req.getSession().getAttribute("user") == null) {
resp.sendRedirect("/login");
return;
}
req.getRequestDispatcher("/WEB-INF/profile/delete.jsp").forward(req,resp);
}


@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
User user = (User) req.getSession().getAttribute("user");
DaoFactory.getUsersDao().delete(user.getUsername());
req.getSession().removeAttribute("user");
req.getSession().invalidate();
resp.sendRedirect("/login");


}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.codeup.adlister.controllers;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "controllers.HelloWorldServlet", urlPatterns = "/")
public class HelloWorldServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.getWriter().println("<h1>Hello, World!</h1>");
}
}
//package com.codeup.adlister.controllers;
//
//import javax.servlet.annotation.WebServlet;
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//
//@WebServlet(name = "controllers.HelloWorldServlet", urlPatterns = "/")
//public class HelloWorldServlet extends HttpServlet {
// protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// response.getWriter().println("<h1>Hello, World!</h1>");
// }
//}
22 changes: 22 additions & 0 deletions src/main/java/com/codeup/adlister/controllers/PickAdServlet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.codeup.adlister.controllers;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/pickad")
public class PickAdServlet extends HttpServlet {

protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/profile/profile.jsp").forward(req, res);
}

protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String selectAd = req.getParameter("id");
req.setAttribute("ad", selectAd);
res.sendRedirect("/ad?id=" + selectAd);
}
}
52 changes: 45 additions & 7 deletions src/main/java/com/codeup/adlister/controllers/RegisterServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,13 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;

@WebServlet(name = "controllers.RegisterServlet", urlPatterns = "/register")
@WebServlet(name = "RegisterServlet", urlPatterns = "/register")
public class RegisterServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String errorMessage = request.getParameter("errorMessage");
request.setAttribute("errorMessage", errorMessage);
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);
}

Expand All @@ -24,9 +27,9 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)

// validate input
boolean inputHasErrors = username.isEmpty()
|| email.isEmpty()
|| password.isEmpty()
|| (! password.equals(passwordConfirmation));
|| email.isEmpty()
|| password.isEmpty()
|| (!password.equals(passwordConfirmation));

if (inputHasErrors) {
response.sendRedirect("/register");
Expand All @@ -35,7 +38,42 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)

// create and save a new user
User user = new User(username, email, password);
DaoFactory.getUsersDao().insert(user);
response.sendRedirect("/login");

try {
boolean usernameAndEmailNotValid = DaoFactory.getUsersDao().validateUsername(username) &&
DaoFactory.getUsersDao().validateEmail(email);
boolean usernameNotValid = DaoFactory.getUsersDao().validateUsername(username);
boolean userEmailNotValid = DaoFactory.getUsersDao().validateEmail(email);

if (usernameAndEmailNotValid) {
request.setAttribute("bothTaken", true);
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);
} else if (usernameNotValid) {
request.setAttribute("usernameTaken", true);
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);
} else if (userEmailNotValid) {
request.setAttribute("emailTRaken", true);
request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ServletException e) {
e.printStackTrace();
}
try {
user = new User(username, email, password);
request.getSession().setAttribute("user", user);
DaoFactory.getUsersDao().insert(user);
response.sendRedirect("/profile");
// } catch (SQLException e) {
// e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

// request.getSession().setAttribute("username", null);
// request.getSession().setAttribute("email", null);
// DaoFactory.getUsersDao().insert(user);
// response.sendRedirect("/login");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.codeup.adlister.controllers;


import com.codeup.adlister.dao.DaoFactory;
import com.codeup.adlister.models.Ad;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

@WebServlet(name="controllers.SearchAdsServlet", urlPatterns="/searchAds")
public class SearchAdsServlet extends HttpServlet {
// public void doGet(HttpServletRequest request, HttpServletResponse response)
// throws IOException{
//
// }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String keyword = request.getParameter("keyword");
if(keyword.isEmpty()) {
response.sendRedirect("/ads");
return;
}
try{
List<Ad> keywordAds = DaoFactory.getAdsDao().findAdByKeyword(keyword);
request.setAttribute("ads", keywordAds);
request.getRequestDispatcher("/WEB-INF/ads/keywordAds.jsp").forward(request, response);
if (keywordAds.size() == 0) {
request.setAttribute("zeroResults", true);
} else {
request.setAttribute("zeroResults", false);
}
request.setAttribute("keyword", keyword.toLowerCase());
request.setAttribute("ads", keywordAds);
request.getRequestDispatcher("/WEB-INF/ads/showAd.jsp").forward(request, response);
for (Ad ad : keywordAds) {
System.out.println(ad.getTitle());
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
Loading