Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.96 KB | None | 0 0
  1. package edu.unsw.comp9321;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.text.DateFormat;
  6. import java.text.ParseException;
  7. import java.text.SimpleDateFormat;
  8. import java.util.*;
  9.  
  10. import javax.servlet.RequestDispatcher;
  11. import javax.servlet.ServletException;
  12. import javax.servlet.http.HttpServlet;
  13. import javax.servlet.http.HttpServletRequest;
  14. import javax.servlet.http.HttpServletResponse;
  15.  
  16. /**
  17. * Servlet implementation class SetupServlet
  18. */
  19. public class SetupServlet extends HttpServlet {
  20.  
  21. // Maintains connection with database
  22. private DBHelper db = null;
  23. /**
  24. * @see HttpServlet#HttpServlet()
  25. */
  26. public SetupServlet() {
  27. super();
  28.  
  29. // Instantiate database connection
  30. this.db = new DBHelper();
  31. boolean initSuccess = this.db.init();
  32. if (!initSuccess) {
  33. System.out.println("LOL there was an error.");
  34. } else {
  35. System.out.println("Successfully connected");
  36. }
  37. }
  38.  
  39.  
  40. /**
  41. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  42. */
  43. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  44. doPost(request,response);
  45. }
  46.  
  47. private LinkedList<String> getEntryDeets(Integer pubID) {
  48. Publication pub = this.db.GetPublication(pubID);
  49. //LinkedList<String> entryDetails = pub.getPubDetails();
  50. //return entryDetails;
  51. return null;
  52. }
  53.  
  54. /**
  55. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  56. */
  57. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  58.  
  59. String req;
  60. if(request.getParameter("action") != null){
  61. req = request.getParameter("action");
  62. } else {
  63. req = "home";
  64. }
  65. String link = "home.jsp";
  66.  
  67. if(req.equals("back")){
  68. link = "index.jsp";
  69. } else if(req.equals("home")){
  70. if (this.db.dbConnStatus) {
  71. List<Publication> randPublications = new ArrayList<Publication>();
  72. List<Integer> randPubIDs = new ArrayList<Integer>();
  73.  
  74. // Obtain a unique list of random publications
  75. while (randPublications.size() < 10) {
  76. Publication pubToAdd = this.db.GetRandomPublication();
  77. while (randPubIDs.contains(pubToAdd.getId())) {
  78. pubToAdd = this.db.GetRandomPublication();
  79. }
  80. randPublications.add(pubToAdd);
  81. randPubIDs.add(pubToAdd.getId());
  82. }
  83.  
  84. System.out.println(randPublications.size());
  85.  
  86. for (Publication pub : randPublications) {
  87. pub.showDetails();
  88. }
  89.  
  90. // Set random publication list to session
  91. request.setAttribute("randomPubs", randPublications);
  92. System.out.println(request.getAttribute("randomPubs"));
  93.  
  94. } else {
  95. System.out.println("Could not get random publication. Connection doesn't exist.");
  96. }
  97.  
  98. link = "index.jsp";
  99. } else if(req.equals("search")){
  100. String query = request.getParameter("searchQuery");
  101. String type = request.getParameter("pubType");
  102. LinkedList<Publication> result = search(query, type, request);
  103. SearchPageBean SPBean = new SearchPageBean(result);
  104. request.getSession().setAttribute("searchFound",SPBean);
  105. link = "result.jsp";
  106. } else if(req.equals("aSearch")){
  107. String title = request.getParameter("searchTitle");
  108. String author = request.getParameter("searchAuthor");
  109. String editor = request.getParameter("searchEditor");
  110. String volume = request.getParameter("searchVolume");
  111. String chapter = request.getParameter("searchChapter");
  112. String pages = request.getParameter("searchPage");
  113. String publisher = request.getParameter("searchPubber");
  114. String isbn = request.getParameter("searchISBN");
  115. String year = request.getParameter("searchYear");
  116. String venues = request.getParameter("searchVenues");
  117. String seller = request.getParameter("searchSeller");
  118. String type = request.getParameter("searchPubType");
  119. LinkedList<Publication> result = aSearch(title, author, editor, volume, chapter, pages, publisher, isbn, year, venues, seller, type);
  120. SearchPageBean searchPageBean = new SearchPageBean(result);
  121. request.getSession().setAttribute("searchFound", searchPageBean);
  122. link = "result.jsp";
  123.  
  124. } else if(req.equals("remove")) {
  125. link = remove(request);
  126. } else if(req.equals("add")){
  127.  
  128. Integer id = Integer.parseInt(request.getParameter("publicationID"));
  129. ShoppingCart shoppingCart = (ShoppingCart) request.getSession().getAttribute("ShoppingCart");
  130. LinkedList<Publication> shoppingCartItems = shoppingCart.getElements();
  131. /*
  132. if (shoppingCartItems.contains(this.db.get(id))) {
  133. request.getSession().setAttribute("isAlreadySelected", true);
  134. }
  135. else {
  136. request.getSession().setAttribute("isAlreadySelected", false);
  137. shoppingCartItems.add(this.db.get(id));
  138. shoppingCart.setElements(shoppingCartItems);
  139. }
  140. */
  141. request.getSession().setAttribute("cartSize", shoppingCartItems.size());
  142. link = "cart.jsp";
  143.  
  144. } else if(req.equals("viewPreviousSearchPage")){
  145. navigateSearchPage(request);
  146. link = "result.jsp";
  147. } else if(req.equals("viewNextSearchPage")){
  148. navigateSearchPage(request);
  149. link = "result.jsp";
  150. } else if(req.equals("viewNextSearchPage")){
  151. navigateSearchPage(request);
  152. link = "result.jsp";
  153. } else if(req.equals("register")){
  154. String errorMessage = "";
  155. String firstName = request.getParameter("fname");
  156. String lastName = request.getParameter("lname");
  157. String userName = request.getParameter("uname");
  158. String email = request.getParameter("email");
  159. String password = request.getParameter("pass");
  160. String address = request.getParameter("address");
  161. String creditCard = request.getParameter("ccn");
  162. String stringDob = request.getParameter("dob");
  163. System.out.println(stringDob);
  164. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  165. if(address == null){
  166. address="";
  167. }
  168. System.out.println(firstName + " " + lastName + " " + userName+ " " + email + " " + password + " " + address + " " + creditCard + " " + stringDob);
  169. Date dob = null;
  170. String dp = "";
  171. try {
  172. dob = df.parse(stringDob);
  173. } catch (ParseException e) {
  174. e.printStackTrace();
  175. }
  176. System.out.println(dob);
  177. if (db.DoesUserExist(userName)){
  178. errorMessage = "Username already exists!";
  179. link = "register.jsp";
  180. } else {
  181. User newUser = new User();
  182. newUser = db.CreateUser(userName, password, firstName, lastName, email, address, dob, creditCard, dp);
  183. Random random = new Random();
  184. int rand = random.nextInt(99999);
  185. System.out.println("generating " + rand);
  186. request.getSession().setAttribute("confirmationNumber", rand);
  187. request.getSession().setAttribute("newUser",newUser);
  188. link = "confirmation.jsp";
  189. }
  190. } else if(req.equals("regSuccess")){
  191. String code = request.getParameter("code");
  192. String emailCode = request.getSession().getAttribute("confirmationNumber").toString();
  193. User newUser = new User();
  194. newUser = (User) request.getSession().getAttribute("newUser");
  195. System.out.println("code is" + emailCode);
  196. System.out.println(newUser.getId());
  197. if(code == null){
  198. link = "confirmation.jsp";
  199. } else {
  200. if(code.equals(emailCode)){
  201. request.getSession().setAttribute("user",newUser);
  202. link = "userAccount.jsp";
  203. } else {
  204. link = "confirmation.jsp";
  205. }
  206. }
  207.  
  208.  
  209. } else if(req.equals("login")){
  210. String errorMessage = "";
  211. String userName = request.getParameter("uname");
  212. String password = request.getParameter("pass");
  213.  
  214. boolean success = db.VerifyUser(userName, password);
  215. System.out.println(success);
  216. if(success == true){
  217. User user = db.GetUser(userName);
  218. request.getSession().setAttribute("user",user);
  219. System.out.println(user.getUsername());
  220. link = "userAccount.jsp";
  221. } else {
  222. errorMessage = "Incorrect Username or Password";
  223. link = "login.jsp";
  224. }
  225. } else if(req.equals("logout")){
  226. String errorMessage = "";
  227. request.getSession().setAttribute("eMessage",errorMessage);
  228. request.getSession().setAttribute("user",null);
  229. link = "index.jsp";
  230. } else if(req.equals("confirmPurchase")){
  231. link = "transactionSuccessful.jsp";
  232. } else if(req.equals("registerPage")){
  233. String errorMessage = "";
  234. request.getSession().setAttribute("eMessage",errorMessage);
  235. link = "register.jsp";
  236. } else if(req.equals("modified")){
  237. link = "modifyDetails.jsp";
  238. } else if(req.equals("loginPage")){
  239. String errorMessage = "";
  240. request.getSession().setAttribute("eMessage",errorMessage);
  241. link = "login.jsp";
  242. } else if(req.equals("toAccount")){
  243. link = "userAccount.jsp";
  244. } else if(req.equals("viewHist")){
  245. //View past orders
  246. link = "userSoldListings.jsp";
  247. } else if(req.equals("viewListings")){
  248. //View sales
  249. link = "userSellListings.jsp";
  250. } else if(req.equals("createListing")){
  251. //Create new listing
  252. link = "createListing.jsp";
  253. } else if(req.equals("registerItem")){
  254. String itemName = request.getParameter("itemName"); //Required
  255. String authors = request.getParameter("authors"); //Required
  256. String type = request.getParameter("pubType"); //Required
  257. String editors = request.getParameter("editors");
  258. String venues = request.getParameter("venues");
  259. String pages = request.getParameter("pages");
  260. String volume = request.getParameter("volume");
  261. String year = request.getParameter("year");
  262. String month = request.getParameter("month");
  263. String address = request.getParameter("address");
  264. String number = request.getParameter("number");
  265. String urls = request.getParameter("urls");
  266. String ees = request.getParameter("ees");
  267. String cdrom = request.getParameter("cdrom");
  268. String cities = request.getParameter("cities");
  269. String publisher = request.getParameter("publisher");
  270. String isbns = request.getParameter("isbns");
  271. String crossref = request.getParameter("crossref");
  272. String series = request.getParameter("series");
  273. String chapter = request.getParameter("chapter");
  274. String rating = request.getParameter("rating");
  275. String note = request.getParameter("note");
  276. String price = request.getParameter("price"); //Required
  277.  
  278.  
  279. }
  280.  
  281. // Case when user wants to view admin
  282. else if (req.equals("loginAdmin")) {
  283. response.sendRedirect("/DLBPlus/admin");
  284. return;
  285. }
  286.  
  287. RequestDispatcher rd = request.getRequestDispatcher("/"+link);
  288. rd.forward(request, response);
  289. }
  290. private void navigateSearchPage(HttpServletRequest request) {
  291. String action = request.getParameter("action");
  292. SearchPageBean searchPageBean = (SearchPageBean) request.getSession().getAttribute("searchFound");
  293. if (searchPageBean == null) {
  294. System.out.println("What the fck");
  295. } else {
  296. if(action.equals("viewPreviousSearchPage")){
  297. searchPageBean.currPage = searchPageBean.currPage - 1;
  298. } else if(action.equals("viewNextSearchPage")){
  299. searchPageBean.currPage = searchPageBean.currPage + 1;
  300. }
  301. request.getSession().setAttribute("searchFound", searchPageBean);
  302. }
  303. }
  304.  
  305. private String remove(HttpServletRequest request){
  306. ShoppingCart shoppingCart = (ShoppingCart) request.getSession().getAttribute("ShoppingCart");
  307. LinkedList<Publication> itemsInCart = shoppingCart.getElements();
  308.  
  309. String[] itemsToRemove = request.getParameterValues("removeFromCart");
  310. if (itemsToRemove == null) {
  311. return "cart.jsp";
  312. }
  313. for (String item : itemsToRemove) {
  314. //itemsInCart.remove(this.db.get(Integer.parseInt(item)));
  315. }
  316. request.getSession().setAttribute("cartSize", itemsInCart.size());
  317. return "cart.jsp";
  318. }
  319. private LinkedList<Publication> aSearch(String title, String author, String editor, String volume, String chapter, String pages, String publisher, String isbn, String year, String venues, String seller, String type) {
  320. LinkedList<Publication> result = new LinkedList<Publication>();
  321. boolean flag = true;
  322. String publicationType = type;
  323. // if(type.toLowerCase().equals("any")){
  324. // for (Publication p : this.db) {
  325. // flag = true;
  326. // if(title != "" && flag == true){
  327. // if(!p.getTitle().toLowerCase().contains(title.toLowerCase())){
  328. // flag = false;
  329. // }
  330. // }
  331. // if(author != "" && flag == true){
  332. // if(p.getAuthor()== null || !p.getAuthor().toLowerCase().contains(author.toLowerCase())){
  333. // flag = false;
  334. // }
  335. // }
  336. // if(editor != "" && flag == true){
  337. // if(p.getEditor()== null || !p.getEditor().toLowerCase().contains(editor.toLowerCase())){
  338. // flag = false;
  339. // }
  340. // }
  341. // if(volume != "" && flag == true){
  342. // if(p.getVolume()== null || !p.getVolume().toLowerCase().contains(volume.toLowerCase())){
  343. // flag = false;
  344. // }
  345. // }
  346. // if(publisher != null && flag == true){
  347. // if(p.getPublisher()== null || !p.getPublisher().toLowerCase().contains(publisher.toLowerCase())){
  348. // flag = false;
  349. // }
  350. // }
  351. // if(isbn != "" && flag == true){
  352. // if(p.getISBN()== null || !p.getISBN().toLowerCase().contains(isbn.toLowerCase())){
  353. // flag = false;
  354. // }
  355. // }
  356. // if(year != "" && flag == true){
  357. // if(p.getYear()== null || !p.getYear().toLowerCase().contains(year.toLowerCase())){
  358. // flag = false;
  359. // }
  360. // }
  361. // if(flag == true){
  362. // result.add(p);
  363. // }
  364. // }
  365. // }
  366. // if(type.toLowerCase().equals("article")){
  367. // advSearchHelper(title, author, editor, volume, publisher, isbn, year, result);
  368. // }
  369. //
  370. // if(type.toLowerCase().equals("inproceedings")){
  371. // advSearchHelper(title, author, editor, volume, publisher, isbn, year, result);
  372. // }
  373. //
  374. // if(type.toLowerCase().equals("proceedings")){
  375. // advSearchHelper(title, author, editor, volume, publisher, isbn, year, result);
  376. // }
  377. //
  378. // if(type.toLowerCase().equals("book")){
  379. // advSearchHelper(title, author, editor, volume, publisher, isbn, year, result);
  380. // }
  381. //
  382. // if(type.toLowerCase().equals("incollection")){
  383. // advSearchHelper(title, author, editor, volume, publisher, isbn, year, result);
  384. // }
  385. //
  386. // if(type.toLowerCase().equals("phdthesis")){
  387. // advSearchHelper(title, author, editor, volume, publisher, isbn, year, result);
  388. // }
  389. //
  390. // if(type.toLowerCase().equals("phdthesis")){
  391. // advSearchHelper(title, author, editor, volume, publisher, isbn, year, result);
  392. // }
  393. //
  394. // if(type.toLowerCase().equals("phdthesis")){
  395. // advSearchHelper(title, author, editor, volume, publisher, isbn, year, result);
  396. // }
  397. //
  398. return null;
  399. }
  400.  
  401. private LinkedList<Publication> advSearchHelper(String title, String author, String editor, String volume, String publisher, String isbn, String year, LinkedList<Publication> results) {
  402. /*
  403. for (Publication p : this.db) {
  404. boolean flag = true;
  405. if(publicationType != "" && flag == true){
  406. if(!p.getPubType().toLowerCase().equals(publicationType.toLowerCase())){
  407.  
  408. flag = false;
  409. }
  410. }
  411. if(title != "" && flag == true){
  412. System.out.print("title: " + title+ " == " + p.getTitle());
  413. if(!p.getTitle().toLowerCase().contains(title.toLowerCase())){
  414.  
  415. flag = false;
  416. }
  417. }
  418. if(author != "" && flag == true){
  419. if(p.getAuthor() == null || !p.getAuthor().toLowerCase().contains(author.toLowerCase())){
  420.  
  421. flag = false;
  422. }
  423. }
  424. if(editor != "" && flag == true){
  425. if(p.getEditor()== null || !p.getEditor().toLowerCase().contains(editor.toLowerCase())){
  426. flag = false;
  427. }
  428. }
  429. if(volume != "" && flag == true){
  430. if(p.getVolume()== null || !p.getVolume().toLowerCase().contains(volume.toLowerCase())){
  431. flag = false;
  432. }
  433. }
  434. if(publisher != null && flag == true){
  435. if(p.getPublisher()== null || !p.getPublisher().toLowerCase().contains(publisher.toLowerCase())){
  436. flag = false;
  437. }
  438. }
  439. if(isbn != "" && flag == true){
  440. if(p.getISBN() == null || !p.getISBN().toLowerCase().contains(isbn.toLowerCase())){
  441. flag = false;
  442. }
  443. }
  444. if(year != "" && flag == true){
  445. if(p.getYear()== null || !p.getYear().toLowerCase().contains(year.toLowerCase())){
  446. flag = false;
  447. }
  448. }
  449. if(flag == true){
  450. results.add(p);
  451. }
  452. }
  453. */
  454. return results;
  455. }
  456. private LinkedList<Publication> search(String searchQuery, String pubType, HttpServletRequest request){
  457. LinkedList<Publication> result = new LinkedList<Publication>();
  458.  
  459. /*
  460. if(pubType.toLowerCase().equals("any")){
  461. for (Publication p : this.db) {
  462. if (p.getTitle().toLowerCase().contains(searchQuery.toLowerCase())|| (p.getAuthor() != null && p.getAuthor().toLowerCase().contains(searchQuery.toLowerCase()))){
  463. result.add(p);
  464. }
  465. }
  466. }
  467.  
  468. if(pubType.toLowerCase().equals("article")){
  469. basicSearchHelper(searchQuery, pubType, result);
  470. }
  471.  
  472. if(pubType.toLowerCase().equals("inproceedings")){
  473. basicSearchHelper(searchQuery, pubType, result);
  474. }
  475.  
  476. if(pubType.toLowerCase().equals("proceedings")){
  477. basicSearchHelper(searchQuery, pubType, result);
  478. }
  479.  
  480. if(pubType.toLowerCase().equals("book")){
  481. basicSearchHelper(searchQuery, pubType, result);
  482. }
  483.  
  484. if(pubType.toLowerCase().equals("incollection")){
  485. basicSearchHelper(searchQuery, pubType, result);
  486. }
  487.  
  488. if(pubType.toLowerCase().equals("phdthesis")){
  489. basicSearchHelper(searchQuery, pubType, result);
  490. }
  491.  
  492. if(pubType.toLowerCase().equals("phdthesis")){
  493. basicSearchHelper(searchQuery, pubType, result);
  494. }
  495.  
  496. if(pubType.toLowerCase().equals("phdthesis")){
  497. basicSearchHelper(searchQuery, pubType, result);
  498. }
  499. */
  500. return result;
  501.  
  502. }
  503. private LinkedList<Publication> basicSearchHelper(String query, String pubType, LinkedList<Publication> results){
  504. /*
  505. for (Publication p : this.db) {
  506. if (p.getTitle().toLowerCase().contains(query.toLowerCase()) || (p.getAuthor() != null && p.getAuthor().toLowerCase().contains(query.toLowerCase()) && p.getPubType().toLowerCase().equals(pubType))){
  507. System.out.println(p.getAuthor());
  508. results.add(p);
  509. }
  510. }
  511. */
  512. return results;
  513. }
  514.  
  515. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement