From 5110aeee54e89ba5daaaa43e739ba3857997dca2 Mon Sep 17 00:00:00 2001 From: Asep Saepudin Date: Sun, 23 Nov 2014 19:40:31 +0700 Subject: [PATCH 01/10] Back-end code for User Management feature is done. --- IF3110-02-Simple-Blog-Java/build.xml | 71 + .../nbproject/ant-deploy.xml | 111 ++ .../nbproject/build-impl.xml | 1444 +++++++++++++++++ .../nbproject/genfiles.properties | 8 + .../nbproject/licenseheader.txt | 0 .../nbproject/project.properties | 93 ++ .../nbproject/project.xml | 23 + .../src/conf/MANIFEST.MF | 2 + .../java/wbd/tubesII/AddNewPostServlet.java | 83 + .../java/wbd/tubesII/ConnectionManager.java | 35 + .../src/java/wbd/tubesII/CookieManager.java | 43 + .../tubesII/CustomHttpSessionListener.java | 34 + .../tubesII/CustomServletContextListener.java | 26 + .../java/wbd/tubesII/DeleteUserServlet.java | 100 ++ .../src/java/wbd/tubesII/LoginServlet.java | 155 ++ .../src/java/wbd/tubesII/LogoutServlet.java | 94 ++ .../src/java/wbd/tubesII/Post.java | 46 + .../src/java/wbd/tubesII/RegisterServlet.java | 104 ++ .../java/wbd/tubesII/UpdateUserServlet.java | 115 ++ .../src/java/wbd/tubesII/User.java | 64 + .../src/java/wbd/tubesII/UserDAO.java | 319 ++++ .../wbd/tubesII/UserManagementServlet.java | 96 ++ IF3110-02-Simple-Blog-Java/web/AdminOnly.jsp | 26 + IF3110-02-Simple-Blog-Java/web/Blog.jsp | 38 + .../web/DeletionFailed.jsp | 26 + IF3110-02-Simple-Blog-Java/web/EditUser.jsp | 50 + IF3110-02-Simple-Blog-Java/web/Index.jsp | 17 + .../web/InvalidLogin.jsp | 20 + IF3110-02-Simple-Blog-Java/web/Login.jsp | 31 + IF3110-02-Simple-Blog-Java/web/Logout.jsp | 17 + IF3110-02-Simple-Blog-Java/web/Register.jsp | 44 + .../web/RegisterFailed.jsp | 27 + .../web/SuccessfullyAdded.jsp | 25 + .../web/SuccessfullyDeleted.jsp | 25 + .../web/SuccessfullyUpdated.jsp | 25 + .../web/UpdateFailed.jsp | 33 + IF3110-02-Simple-Blog-Java/web/UserLogged.jsp | 34 + .../web/UserManagement.jsp | 57 + .../web/WEB-INF/web.xml | 35 + IF3110-02-Simple-Blog-Java/web/welcomeJSF.jsp | 22 + 40 files changed, 3618 insertions(+) create mode 100644 IF3110-02-Simple-Blog-Java/build.xml create mode 100644 IF3110-02-Simple-Blog-Java/nbproject/ant-deploy.xml create mode 100644 IF3110-02-Simple-Blog-Java/nbproject/build-impl.xml create mode 100644 IF3110-02-Simple-Blog-Java/nbproject/genfiles.properties create mode 100644 IF3110-02-Simple-Blog-Java/nbproject/licenseheader.txt create mode 100644 IF3110-02-Simple-Blog-Java/nbproject/project.properties create mode 100644 IF3110-02-Simple-Blog-Java/nbproject/project.xml create mode 100644 IF3110-02-Simple-Blog-Java/src/conf/MANIFEST.MF create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ConnectionManager.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CookieManager.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomHttpSessionListener.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomServletContextListener.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/User.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserDAO.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/web/AdminOnly.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/Blog.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/EditUser.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/Index.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/Login.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/Logout.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/Register.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/UserLogged.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/UserManagement.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml create mode 100644 IF3110-02-Simple-Blog-Java/web/welcomeJSF.jsp diff --git a/IF3110-02-Simple-Blog-Java/build.xml b/IF3110-02-Simple-Blog-Java/build.xml new file mode 100644 index 00000000..ec29b4ea --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + Builds, tests, and runs the project IF3110-02-Simple-Blog-Java. + + + diff --git a/IF3110-02-Simple-Blog-Java/nbproject/ant-deploy.xml b/IF3110-02-Simple-Blog-Java/nbproject/ant-deploy.xml new file mode 100644 index 00000000..2d5f8778 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/nbproject/ant-deploy.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/IF3110-02-Simple-Blog-Java/nbproject/build-impl.xml b/IF3110-02-Simple-Blog-Java/nbproject/build-impl.xml new file mode 100644 index 00000000..b3b847c9 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/nbproject/build-impl.xml @@ -0,0 +1,1444 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set build.web.dir + Must set build.generated.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.war + + + + + + + + + +The Java EE server classpath is not correctly set up - server home directory is missing. +Either open the project in the IDE and assign the server or setup the server classpath manually. +For example like this: + ant -Dj2ee.server.home=<app_server_installation_directory> + + +The Java EE server classpath is not correctly set up. Your active server type is ${j2ee.server.type}. +Either open the project in the IDE and assign the server or setup the server classpath manually. +For example like this: + ant -Duser.properties.file=<path_to_property_file> (where you put the property "j2ee.platform.classpath" in a .properties file) +or ant -Dj2ee.platform.classpath=<server_classpath> (where no properties file is used) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The libs.CopyLibs.classpath property is not set up. +This property must point to +org-netbeans-modules-java-j2seproject-copylibstask.jar file which is part +of NetBeans IDE installation and is usually located at +<netbeans_installation>/java<version>/ant/extra folder. +Either open the project in the IDE and make sure CopyLibs library +exists or setup the property manually. For example like this: + ant -Dlibs.CopyLibs.classpath=a/path/to/org-netbeans-modules-java-j2seproject-copylibstask.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.jsp.includes + + + + + + + + + + + + + + + + + + + + + + + + + + Must select a file in the IDE or set jsp.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Browser not found, cannot launch the deployed application. Try to set the BROWSER environment variable. + + + Launching ${browse.url} + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/IF3110-02-Simple-Blog-Java/nbproject/genfiles.properties b/IF3110-02-Simple-Blog-Java/nbproject/genfiles.properties new file mode 100644 index 00000000..0e387884 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=74ac68de +build.xml.script.CRC32=a9410f96 +build.xml.stylesheet.CRC32=651128d4@1.68.1.1 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=74ac68de +nbproject/build-impl.xml.script.CRC32=9106d273 +nbproject/build-impl.xml.stylesheet.CRC32=99ea4b56@1.68.1.1 diff --git a/IF3110-02-Simple-Blog-Java/nbproject/licenseheader.txt b/IF3110-02-Simple-Blog-Java/nbproject/licenseheader.txt new file mode 100644 index 00000000..e69de29b diff --git a/IF3110-02-Simple-Blog-Java/nbproject/project.properties b/IF3110-02-Simple-Blog-Java/nbproject/project.properties new file mode 100644 index 00000000..c301af60 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/nbproject/project.properties @@ -0,0 +1,93 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=true +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +auxiliary.org-netbeans-modules-projectapi.jsf_2e_language=JSP +auxiliary.org-netbeans-modules-web-clientproject-api.js_2e_libs_2e_folder=js/libs +build.classes.dir=${build.web.dir}/WEB-INF/classes +build.classes.excludes=**/*.java,**/*.form +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +build.web.dir=${build.dir}/web +build.web.excludes=${build.classes.excludes} +client.urlPart= +compile.jsps=false +conf.dir=${source.root}/conf +debug.classpath=${build.classes.dir}:${javac.classpath} +debug.test.classpath=\ + ${run.test.classpath} +display.browser=true +# Files to be excluded from distribution war +dist.archive.excludes= +dist.dir=dist +dist.ear.war=${dist.dir}/${war.ear.name} +dist.javadoc.dir=${dist.dir}/javadoc +dist.war=${dist.dir}/${war.name} +endorsed.classpath=\ + ${libs.javaee-endorsed-api-6.0.classpath} +excludes= +includes=** +j2ee.compile.on.save=true +j2ee.copy.static.files.on.save=true +j2ee.deploy.on.save=true +j2ee.platform=1.7-web +j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar +j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar +j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar +j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar +j2ee.platform.wsimport.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar +j2ee.platform.wsit.classpath= +j2ee.server.type=gfv3ee6 +jar.compress=false +javac.classpath=\ + ${libs.MySQLDriver.classpath} +# Space-separated list of extra javac options +javac.compilerargs= +javac.debug=true +javac.deprecation=false +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.preview=true +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +lib.dir=${web.docbase.dir}/WEB-INF/lib +persistence.xml.dir=${conf.dir} +platform.active=default_platform +project.license=default +project.licensePath=./nbproject/licenseheader.txt +resource.dir=setup +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +# Space-separated list of JVM arguments used when running a class with a main method or a unit test +# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value): +runmain.jvmargs= +source.encoding=UTF-8 +source.root=src +src.dir=${source.root}/java +test.src.dir=test +war.content.additional= +war.ear.name=${war.name} +war.name=IF3110-02-Simple-Blog-Java.war +web.docbase.dir=web +webinf.dir=web/WEB-INF diff --git a/IF3110-02-Simple-Blog-Java/nbproject/project.xml b/IF3110-02-Simple-Blog-Java/nbproject/project.xml new file mode 100644 index 00000000..170c78dd --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/nbproject/project.xml @@ -0,0 +1,23 @@ + + + org.netbeans.modules.web.project + + + IF3110-02-Simple-Blog-Java + 1.6.5 + + + ${libs.MySQLDriver.classpath} + WEB-INF/lib + + + + + + + + + + + + diff --git a/IF3110-02-Simple-Blog-Java/src/conf/MANIFEST.MF b/IF3110-02-Simple-Blog-Java/src/conf/MANIFEST.MF new file mode 100644 index 00000000..59499bce --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/conf/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java new file mode 100644 index 00000000..2e16d405 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java @@ -0,0 +1,83 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +@WebServlet(name = "AddNewPost", urlPatterns = {"/AddNewPost"}) +public class AddNewPostServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet AddNewPostServlet"); + out.println(""); + out.println(""); + out.println("

Servlet AddNewPostServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ConnectionManager.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ConnectionManager.java new file mode 100644 index 00000000..8aa4be30 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ConnectionManager.java @@ -0,0 +1,35 @@ +package wbd.tubesII; + +/** + * + * @author Asus + */ + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class ConnectionManager { + private static Connection con; + private static final String USERNAME = "root"; + private static final String PASSWORD = ""; + private static final String M_CONN_STRING = "jdbc:mysql://localhost:3306/wbdhebat"; + + public static Connection getConnection() throws ClassNotFoundException { + try { + Class.forName("com.mysql.jdbc.Driver"); + con = DriverManager.getConnection(M_CONN_STRING, USERNAME, PASSWORD); + } catch (SQLException e) { + processException(e); + return null; + } + return con; + } + + public static void processException(SQLException e) { + System.err.println("Error message: " + e.getMessage()); + System.err.println("Error code: " + e.getErrorCode()); + System.err.println("SQL state: " + e.getSQLState()); + } + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CookieManager.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CookieManager.java new file mode 100644 index 00000000..2173e994 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CookieManager.java @@ -0,0 +1,43 @@ +package wbd.tubesII; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +public class CookieManager { + public static String getCookieValue(HttpServletRequest request, String name) { + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if (name.equals(cookie.getName())) { + return cookie.getValue(); + } + } + } + return null; + } + + /** + * + * @author BalusC + */ + public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) { + Cookie cookie = new Cookie(name, value); + cookie.setPath("/"); + cookie.setMaxAge(maxAge); + response.addCookie(cookie); + } + + /** + * + * @author BalusC + */ + public static void removeCookie(HttpServletResponse response, String name) { + addCookie(response, name, null, 0); + } + +} \ No newline at end of file diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomHttpSessionListener.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomHttpSessionListener.java new file mode 100644 index 00000000..2a3f40d5 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomHttpSessionListener.java @@ -0,0 +1,34 @@ +package wbd.tubesII; + +import java.util.HashMap; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpSessionEvent; +import javax.servlet.http.HttpSessionListener; + +/** + * + * @author Asus + */ +public class CustomHttpSessionListener implements HttpSessionListener { + + @Override + public void sessionCreated(HttpSessionEvent se) { + HttpSession session = se.getSession(); + ServletContext context = session.getServletContext(); + HashMap activeUsers = (HashMap) context.getAttribute("activeUsers"); + + activeUsers.put(session.getId(), session); + context.setAttribute("activeUsers", activeUsers); + } + + @Override + public void sessionDestroyed(HttpSessionEvent se) { + HttpSession session = se.getSession(); + ServletContext context = session.getServletContext(); + HashMap activeUsers = (HashMap) context.getAttribute("activeUsers"); + + activeUsers.remove(session.getId()); + } + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomServletContextListener.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomServletContextListener.java new file mode 100644 index 00000000..5ea59ed9 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomServletContextListener.java @@ -0,0 +1,26 @@ +package wbd.tubesII; + +import java.util.HashMap; +import javax.servlet.ServletContext; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +/** + * + * @author Asus + */ +public class CustomServletContextListener implements ServletContextListener { + + @Override + public void contextInitialized(ServletContextEvent sce) { + ServletContext context = sce.getServletContext(); + HashMap activeUsers = new HashMap(); + context.setAttribute("activeUsers", activeUsers); + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java new file mode 100644 index 00000000..eafe24f2 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java @@ -0,0 +1,100 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLDecoder; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +@WebServlet(name = "DeleteUser", urlPatterns = {"/DeleteUser"}) +public class DeleteUserServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet DeleteUser"); + out.println(""); + out.println(""); + out.println("

Servlet DeleteUser at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String email = URLDecoder.decode(request.getParameter("email"), "UTF-8"); + + if (request.getSession().getAttribute("currentUser") == null || + !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin") || + email.equals("") || email == null) { + response.sendRedirect("Login.jsp"); + } else { + if (!UserDAO.delete(email)) { + request.getSession().setAttribute("deleteUser", "User dengan email " + email + " tidak ditemukan"); + response.sendRedirect("DeletionFailed.jsp"); + } else { + request.getSession().setAttribute("deleteUser", "User dengan email " + email + " berhasil dihapus"); + response.sendRedirect("SuccessfullyDeleted.jsp"); + } + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java new file mode 100644 index 00000000..c6db92df --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java @@ -0,0 +1,155 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLDecoder; +import java.util.HashMap; +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 javax.servlet.http.HttpSession; +import javax.servlet.http.Cookie; + +/** + * + * @author Asus + */ +@WebServlet(name = "LoginServlet", urlPatterns = {"/Login"}) +public class LoginServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet LoginServlet"); + out.println(""); + out.println(""); + out.println("

Servlet LoginServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + try { + HttpSession session = null; + String sessionCookie = CookieManager.getCookieValue(request, "JSESSIONID"); + String persistentCookie = CookieManager.getCookieValue(request, "wbdahey"); + + if (sessionCookie != null) { + if (persistentCookie == null) { + CookieManager.addCookie(response, "wbdahey", sessionCookie, 3600*24*365*1000); + } + } + + if (persistentCookie != null) { + HashMap activeUsers = (HashMap) request.getServletContext().getAttribute("activeUsers"); + session = activeUsers.get(persistentCookie); + } + + if (session == null) { + session = request.getSession(); + } + + User user = (User)session.getAttribute("currentUser"); + if (user == null) { + response.sendRedirect("Login.jsp"); + } else { + session.setAttribute("currentUser", user); + response.sendRedirect("UserLogged.jsp"); + } + +// String emailUser = ""; +// Cookie[] cookies = request.getCookies(); +// for (Cookie cookie : cookies) { +// if (cookie.getName().equals("wbdahey")) { +// emailUser = cookie.getValue(); +// break; +// } +// } + +// if (!emailUser.equals("")) { +// request.getSession().setAttribute("currentUser", user); +// response.sendRedirect("UserLogged.jsp"); +// } else { +// response.sendRedirect("Login.jsp"); +// } + processRequest(request, response); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + try { + User user = new User(); + user.setEmail(URLDecoder.decode(request.getParameter("email"), "UTF-8")); + user.setPassword(request.getParameter("password")); + + user = UserDAO.login(user); + + if (user.getValid()) { + Cookie wbdCookie = new Cookie("wbdahey", user.getEmail()); + wbdCookie.setMaxAge(3600*24*365*1000); + response.addCookie(wbdCookie); + + request.getSession().setAttribute("currentUser", user); +// this.getServletConfig().getServletContext().setAttribute("currentUser", user); + + response.sendRedirect("UserLogged.jsp"); + } else if (!user.getValid()) { + response.sendRedirect("InvalidLogin.jsp"); + } + processRequest(request, response); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java new file mode 100644 index 00000000..7bbca338 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java @@ -0,0 +1,94 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + + +/** + * + * @author Asus + */ +@WebServlet(name = "LogoutServlet", urlPatterns = {"/Logout"}) +public class LogoutServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet LogoutServlet"); + out.println(""); + out.println(""); + out.println("

Servlet LogoutServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + CookieManager.removeCookie(response, "JSESSIONID"); + CookieManager.removeCookie(response, "wbdahey"); + + request.getSession().setAttribute("currentUser", null); + + response.sendRedirect("Login.jsp"); + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java new file mode 100644 index 00000000..d22a158e --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java @@ -0,0 +1,46 @@ +package wbd.tubesII; + +import java.sql.Date; + +/** + * + * @author Asus + */ +public class Post { + private int id; + private String judul; + private Date tanggal; + private String konten; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getJudul() { + return judul; + } + + public void setJudul(String judul) { + this.judul = judul; + } + + public Date getTanggal() { + return tanggal; + } + + public void setTanggal(Date tanggal) { + this.tanggal = tanggal; + } + + public String getKonten() { + return konten; + } + + public void setKonten(String konten) { + this.konten = konten; + } +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java new file mode 100644 index 00000000..1477789f --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java @@ -0,0 +1,104 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +@WebServlet(name = "RegisterServlet", urlPatterns = {"/Register"}) +public class RegisterServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet RegisterServlet"); + out.println(""); + out.println(""); + out.println("

Servlet RegisterServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + if (request.getSession().getAttribute("currentUser") == null || + !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.sendRedirect("Login.jsp"); + } else { + response.sendRedirect("Register.jsp"); + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + User user = new User(); + user.setEmail(request.getParameter("email")); + user.setPassword(request.getParameter("password")); + user.setName(request.getParameter("name")); + user.setRole(request.getParameter("role")); + + if (UserDAO.register(user)) { + request.getSession().setAttribute("registerUser", "User dengan email " + request.getParameter("email") + " berhasil ditambahkan"); + response.sendRedirect("SuccessfullyAdded.jsp"); + } else { + request.getSession().setAttribute("registerUser", "Email telah digunakan"); + response.sendRedirect("RegisterFailed.jsp"); + } + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java new file mode 100644 index 00000000..83476eeb --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java @@ -0,0 +1,115 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLDecoder; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +@WebServlet(name = "UpdateUser", urlPatterns = {"/UpdateUser"}) +public class UpdateUserServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet UpdateUserServlet"); + out.println(""); + out.println(""); + out.println("

Servlet UpdateUserServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String email = URLDecoder.decode(request.getParameter("email"), "UTF-8"); + + if (request.getSession().getAttribute("currentUser") == null || + !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin") || + email.equals("") || email == null) { + response.sendRedirect("Login.jsp"); + } else { + User editedUser = UserDAO.getUser(email); + if (editedUser != null) { + request.getSession().setAttribute("editedUser", editedUser); + response.sendRedirect("EditUser.jsp"); + } else { + response.sendRedirect("Login.jsp"); + } + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + User user = new User(); + user.setId(Integer.parseInt(request.getParameter("id"))); + user.setEmail(request.getParameter("email")); + user.setPassword(request.getParameter("password")); + user.setName(request.getParameter("name")); + user.setRole(request.getParameter("role")); + + if (UserDAO.update(user)) { + request.getSession().setAttribute("updateUser", "User dengan id " + request.getParameter("id") + " berhasil di-update"); + response.sendRedirect("SuccessfullyUpdated.jsp"); + } else { + request.getSession().setAttribute("updateUser", "Gagal meng-update user dengan id " + request.getParameter("id")); + response.sendRedirect("UpdateFailed.jsp"); + } + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/User.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/User.java new file mode 100644 index 00000000..9f22925b --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/User.java @@ -0,0 +1,64 @@ +package wbd.tubesII; + +import java.io.Serializable; + +/** + * + * @author Asus + */ +public class User { + private int id; + private String email; + private String password; + private String name; + private String role; + private boolean valid; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public boolean getValid() { + return this.valid; + } + + public void setValid(boolean valid) { + this.valid = valid; + } +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserDAO.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserDAO.java new file mode 100644 index 00000000..b6f62932 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserDAO.java @@ -0,0 +1,319 @@ +package wbd.tubesII; + +/** + * + * @author Asus + */ + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Statement; +import java.util.ArrayList; + +public class UserDAO { + private static Connection currentCon = null; + private static ResultSet rs = null; + + public static User login(User user) { + Statement statement = null; + + String email = user.getEmail(); + String password = user.getPassword(); + + String searchQuery = "SELECT * FROM `user` WHERE `email` = '" + email + "'" + + " AND `password` = '" + password + "'"; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.createStatement(); + + rs = statement.executeQuery(searchQuery); + if (!rs.next()) { + System.err.println("Invalid email/password"); + user.setValid(false); + } else { + String name = rs.getString("name"); + String role = rs.getString("role"); + + user.setName(name); + user.setRole(role); + user.setValid(true); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + rs = null; + } + } + + if (statement != null) { + try { + statement.close(); + } catch (Exception e) { + statement = null; + } + } + + if (currentCon != null) { + try { + currentCon.close(); + } catch (Exception e) { + + } + currentCon = null; + } + } + return user; + } + + public static boolean register(User user) { + Statement statement = null; + + String email = user.getEmail(); + String password = user.getPassword(); + String name = user.getName(); + String role = user.getRole(); + + String searchQuery = "SELECT * FROM `user` WHERE `email` = '" + email + "'"; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.createStatement(); + + rs = statement.executeQuery(searchQuery); + if (rs.next()) { + System.err.println("Email has been used"); + return false; + } else { + searchQuery = "INSERT INTO `user` (`email`, `password`, `name`, `role`) VALUES ('" + + email + "', '" + password + "', '" + name + "', '" + role + "')"; + statement.executeUpdate(searchQuery); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + rs = null; + } + } + + if (statement != null) { + try { + statement.close(); + } catch (Exception e) { + statement = null; + } + } + + if (currentCon != null) { + try { + currentCon.close(); + } catch (Exception e) { + + } + currentCon = null; + } + } + return true; + } + + public static ArrayList getAllUsers() { + ArrayList users = new ArrayList(); + Statement statement = null; + String searchQuery = "SELECT * FROM `user`"; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.createStatement(); + + rs = statement.executeQuery(searchQuery); + while (rs.next()) { + User user = new User(); + user.setId(rs.getInt("id")); + user.setEmail(rs.getString("email")); + user.setPassword(rs.getString("password")); + user.setName(rs.getString("name")); + user.setRole(rs.getString("role")); + user.setValid(true); + users.add(user); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + rs = null; + } + } + + if (statement != null) { + try { + statement.close(); + } catch (Exception e) { + statement = null; + } + } + + if (currentCon != null) { + try { + currentCon.close(); + } catch (Exception e) { + + } + currentCon = null; + } + } + return users; + } + + public static boolean delete(String email) { + Statement statement = null; + + String searchQuery = "SELECT * FROM `user` WHERE `email` = '" + email + "'"; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.createStatement(); + + rs = statement.executeQuery(searchQuery); + if (!rs.next()) { + System.err.println("User doesn't exist"); + return false; + } else { + searchQuery = "DELETE FROM `user` where `email`='" + + email + "'"; + statement.executeUpdate(searchQuery); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + rs = null; + } + } + + if (statement != null) { + try { + statement.close(); + } catch (Exception e) { + statement = null; + } + } + + if (currentCon != null) { + try { + currentCon.close(); + } catch (Exception e) { + + } + currentCon = null; + } + } + return true; + } + + public static User getUser(String email) { + Statement statement = null; + String searchQuery = "SELECT * FROM `user` WHERE `email`='" + email +"'"; + User user = new User(); + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.createStatement(); + + rs = statement.executeQuery(searchQuery); + if (rs.next()) { + user.setId(rs.getInt("id")); + user.setEmail(rs.getString("email")); + user.setPassword(rs.getString("password")); + user.setName(rs.getString("name")); + user.setRole(rs.getString("role")); + user.setValid(true); + } else { + return null; + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + rs = null; + } + } + + if (statement != null) { + try { + statement.close(); + } catch (Exception e) { + statement = null; + } + } + + if (currentCon != null) { + try { + currentCon.close(); + } catch (Exception e) { + + } + currentCon = null; + } + } + return user; + } + + public static boolean update(User user) { + Statement statement = null; + + int id = user.getId(); + String email = user.getEmail(); + String password = user.getPassword(); + String name = user.getName(); + String role = user.getRole(); + + String searchQuery = "UPDATE `user` SET `email`='" + email + "', `password`='" + password + + "', name='" + name + "', `role`='" + role + "' WHERE `id` = " + id; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.createStatement(); + + statement.executeUpdate(searchQuery); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + rs = null; + } + } + + if (statement != null) { + try { + statement.close(); + } catch (Exception e) { + statement = null; + } + } + + if (currentCon != null) { + try { + currentCon.close(); + } catch (Exception e) { + + } + currentCon = null; + } + } + return true; + } +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java new file mode 100644 index 00000000..894ad419 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java @@ -0,0 +1,96 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +@WebServlet(name = "UserManagement", urlPatterns = {"/UserManagement"}) +public class UserManagementServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet UserManagement"); + out.println(""); + out.println(""); + out.println("

Servlet UserManagement at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + if (request.getSession().getAttribute("currentUser") == null || + !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.sendRedirect("Login.jsp"); + } else { + ArrayList users = UserDAO.getAllUsers(); + request.getSession().setAttribute("allUsers", users); + response.sendRedirect("UserManagement.jsp"); + } + + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + processRequest(request, response); + + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/web/AdminOnly.jsp b/IF3110-02-Simple-Blog-Java/web/AdminOnly.jsp new file mode 100644 index 00000000..7f45d8d4 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/AdminOnly.jsp @@ -0,0 +1,26 @@ +<%-- + Document : AdminOnly + Created on : Nov 23, 2014, 5:10:08 PM + Author : Asus +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> + +

+ Error: <%= (String)request.getSession().getAttribute("adminOnly") %> +

+ + diff --git a/IF3110-02-Simple-Blog-Java/web/Blog.jsp b/IF3110-02-Simple-Blog-Java/web/Blog.jsp new file mode 100644 index 00000000..e8007a50 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/Blog.jsp @@ -0,0 +1,38 @@ +<%-- + Document : Blog.jsp + Created on : Nov 23, 2014, 7:21:51 PM + Author : Asus +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + +
+ <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + + User currentUser = (User)request.getSession().getAttribute("currentUser"); + %> + + <% if (currentUser.getRole().equals("Admin")) { %> +
User Management + <% } %> + <% if (currentUser.getRole().equals("Admin") || currentUser.getRole().equals("Owner")) { %> +
Add New Post + <% } %> +
View Published Posts + <% if (currentUser.getRole().equals("Admin") || currentUser.getRole().equals("Editor")) { %> +
View Unpublished Posts + <% } %> +
+ + diff --git a/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp b/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp new file mode 100644 index 00000000..7082d4cf --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp @@ -0,0 +1,26 @@ +<%-- + Document : DeletionFailed + Created on : Nov 23, 2014, 6:23:16 PM + Author : Asus +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> + +

Error: <%= (String)request.getSession().getAttribute("deleteUser") %>

+
+ view + + diff --git a/IF3110-02-Simple-Blog-Java/web/EditUser.jsp b/IF3110-02-Simple-Blog-Java/web/EditUser.jsp new file mode 100644 index 00000000..bc359234 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/EditUser.jsp @@ -0,0 +1,50 @@ +<%-- + Document : EditUser + Created on : Nov 23, 2014, 6:41:33 PM + Author : Asus +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + if (!currentUser.getRole().equals("Admin")) { + request.getSession().setAttribute("adminOnly", "Psst! Halaman khusus Admin"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "AdminOnly.jsp"); + } + User editedUser = (User)request.getSession().getAttribute("editedUser"); + if (editedUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "UserManagement.jsp"); + } + %> + +
+
+ Email +
+ Password +
+ Name +
+ Role: + + +
+ + diff --git a/IF3110-02-Simple-Blog-Java/web/Index.jsp b/IF3110-02-Simple-Blog-Java/web/Index.jsp new file mode 100644 index 00000000..da33250e --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/Index.jsp @@ -0,0 +1,17 @@ +<%-- + Document : index + Created on : Nov 20, 2014, 11:37:46 PM + Author : Asus +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + login + + diff --git a/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp b/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp new file mode 100644 index 00000000..f18b7b07 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp @@ -0,0 +1,20 @@ +<%-- + Document : invalidLogin + Created on : Nov 20, 2014, 8:34:48 PM + Author : Asus +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + +
+ Sorry, you are not a registered user! Please sign up first +
+ + diff --git a/IF3110-02-Simple-Blog-Java/web/Login.jsp b/IF3110-02-Simple-Blog-Java/web/Login.jsp new file mode 100644 index 00000000..8815646c --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/Login.jsp @@ -0,0 +1,31 @@ +<%-- + Document : LoginPage + Created on : Nov 20, 2014, 8:30:01 PM + Author : Asus +--%> + +<%@page import="org.apache.jasper.tagplugins.jstl.ForEach"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% if (request.getSession().getAttribute("currentUser") == null) { %> +
+ Email +
+ Password + + +
+ <% } else { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "UserLogged.jsp"); + } + %> + + diff --git a/IF3110-02-Simple-Blog-Java/web/Logout.jsp b/IF3110-02-Simple-Blog-Java/web/Logout.jsp new file mode 100644 index 00000000..257159b1 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/Logout.jsp @@ -0,0 +1,17 @@ +<%-- + Document : logout + Created on : Nov 20, 2014, 11:14:08 PM + Author : Asus +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + logout + + diff --git a/IF3110-02-Simple-Blog-Java/web/Register.jsp b/IF3110-02-Simple-Blog-Java/web/Register.jsp new file mode 100644 index 00000000..b94b7e05 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/Register.jsp @@ -0,0 +1,44 @@ +<%-- + Document : register + Created on : Nov 20, 2014, 10:35:52 PM + Author : Asus +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + if (!currentUser.getRole().equals("Admin")) { + request.getSession().setAttribute("adminOnly", "Psst! Halaman khusus Admin"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "AdminOnly.jsp"); + } + %> + +
+ Email +
+ Password +
+ Name +
+ Role: + + +
+ + diff --git a/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp b/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp new file mode 100644 index 00000000..5fa7783f --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp @@ -0,0 +1,27 @@ +<%-- + Document : registerfailed + Created on : Nov 20, 2014, 10:52:29 PM + Author : Asus +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> + +

Register failed

+ Error: <%= (String)request.getSession().getAttribute("registerUser") %> +
+ view + + diff --git a/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp b/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp new file mode 100644 index 00000000..e2e0faf0 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp @@ -0,0 +1,25 @@ +<%-- + Document : successfullyadded + Created on : Nov 20, 2014, 10:51:57 PM + Author : Asus +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> +

Success: <%= (String)request.getSession().getAttribute("registerUser") %>

+
+ view + + diff --git a/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp b/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp new file mode 100644 index 00000000..3c4669fe --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp @@ -0,0 +1,25 @@ +<%-- + Document : SuccessfullyDeleted + Created on : Nov 23, 2014, 6:22:36 PM + Author : Asus +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> +

Success: <%= (String)request.getSession().getAttribute("deleteUser") %>

+
+ view + + diff --git a/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp b/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp new file mode 100644 index 00000000..85e68cea --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp @@ -0,0 +1,25 @@ +<%-- + Document : SuccessfullyUpdated + Created on : Nov 23, 2014, 7:04:52 PM + Author : Asus +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> +

Success: <%= (String)request.getSession().getAttribute("updateUser") %>

+
+ view + + diff --git a/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp b/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp new file mode 100644 index 00000000..c322f14d --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp @@ -0,0 +1,33 @@ +<%-- + Document : UpdateFailed + Created on : Nov 23, 2014, 7:05:28 PM + Author : Asus +--%> + +<%-- + Document : registerfailed + Created on : Nov 20, 2014, 10:52:29 PM + Author : Asus +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> + +

Update failed

+ Error: <%= (String)request.getSession().getAttribute("updateUser") %> +
+ view + + diff --git a/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp b/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp new file mode 100644 index 00000000..fbf5dc14 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp @@ -0,0 +1,34 @@ +<%-- + Document : userLogged + Created on : Nov 20, 2014, 8:31:36 PM + Author : Asus +--%> +<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%> +<%@page import="wbd.tubesII.User"%> + + + + + JSP Page + + +
+ <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + + User currentUser = (User)request.getSession().getAttribute("currentUser"); + %> + Welcome <%= currentUser.getName() + " -- " + currentUser.getEmail() %> + || You are an + <%= currentUser.getRole() %> + + <% if (currentUser.getRole().equals("Admin")) { %> +
User Management + <% } %> +
Logout +
+ + diff --git a/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp b/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp new file mode 100644 index 00000000..a919e989 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp @@ -0,0 +1,57 @@ +<%-- + Document : UserManagement + Created on : Nov 23, 2014, 5:12:43 PM + Author : Asus +--%> + +<%@page import="wbd.tubesII.UserDAO"%> +<%@page import="org.apache.jasper.tagplugins.jstl.ForEach"%> +<%@page import="java.util.ArrayList"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + if (!currentUser.getRole().equals("Admin")) { + request.getSession().setAttribute("adminOnly", "Psst! Halaman khusus Admin"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "AdminOnly.jsp"); + } + %> + + + + + + + + + + <% ArrayList users = (ArrayList)request.getSession().getAttribute("allUsers"); + if (users == null) { + users = UserDAO.getAllUsers(); + } + for (int i=0; i + + + + + + + + <% } %> +
NameEmailRoleEditHapus
<%= users.get(i).getName() %><%= users.get(i).getEmail() %><%= users.get(i).getRole() %>vx
+ Add New User + + diff --git a/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml b/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml new file mode 100644 index 00000000..c3b7c644 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml @@ -0,0 +1,35 @@ + + + + javax.faces.PROJECT_STAGE + Development + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/index.jsp + + + + wbd.tubesII.CustomServletContextListener + + + + + + wbd.tubesII.CustomHttpSessionListener + + + diff --git a/IF3110-02-Simple-Blog-Java/web/welcomeJSF.jsp b/IF3110-02-Simple-Blog-Java/web/welcomeJSF.jsp new file mode 100644 index 00000000..a9dc4124 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/welcomeJSF.jsp @@ -0,0 +1,22 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> + +<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> +<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> + + + +<%-- + This file is an entry point for JavaServer Faces application. +--%> + + + + + JSP Page + + +

+ + +
From 0f37ae52ca06cafd70f852d84c3b2a86c3d6104f Mon Sep 17 00:00:00 2001 From: Asep Saepudin Date: Sun, 23 Nov 2014 23:12:25 +0700 Subject: [PATCH 02/10] Back-end code for Post Management feature is done. --- .../java/wbd/tubesII/AddNewPostServlet.java | 36 ++- .../java/wbd/tubesII/ConnectionManager.java | 2 +- .../src/java/wbd/tubesII/CookieManager.java | 2 +- .../tubesII/CustomHttpSessionListener.java | 2 +- .../tubesII/CustomServletContextListener.java | 2 +- .../java/wbd/tubesII/DeletePostServlet.java | 96 ++++++++ .../java/wbd/tubesII/DeleteUserServlet.java | 2 +- .../src/java/wbd/tubesII/LoginServlet.java | 2 +- .../src/java/wbd/tubesII/LogoutServlet.java | 2 +- .../src/java/wbd/tubesII/Post.java | 13 +- .../src/java/wbd/tubesII/PostDAO.java | 205 ++++++++++++++++++ .../java/wbd/tubesII/PublishPostServlet.java | 98 +++++++++ .../wbd/tubesII/PublishedPostsServlet.java | 93 ++++++++ .../src/java/wbd/tubesII/RegisterServlet.java | 2 +- .../wbd/tubesII/UnpublishedPostsServlet.java | 93 ++++++++ .../java/wbd/tubesII/UpdatePostServlet.java | 120 ++++++++++ .../java/wbd/tubesII/UpdateUserServlet.java | 2 +- .../src/java/wbd/tubesII/User.java | 2 +- .../src/java/wbd/tubesII/UserDAO.java | 4 +- .../wbd/tubesII/UserManagementServlet.java | 2 +- IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp | 43 ++++ .../web/AddNewPostStatus.jsp | 33 +++ IF3110-02-Simple-Blog-Java/web/Blog.jsp | 2 +- .../web/DeletePostStatus.jsp | 35 +++ .../web/DeletionFailed.jsp | 2 +- IF3110-02-Simple-Blog-Java/web/EditPost.jsp | 50 +++++ IF3110-02-Simple-Blog-Java/web/EditUser.jsp | 2 +- IF3110-02-Simple-Blog-Java/web/Index.jsp | 2 +- .../web/InvalidLogin.jsp | 2 +- IF3110-02-Simple-Blog-Java/web/Login.jsp | 2 +- IF3110-02-Simple-Blog-Java/web/Logout.jsp | 2 +- .../web/PublishPostStatus.jsp | 33 +++ .../web/PublishedPost.jsp | 54 +++++ IF3110-02-Simple-Blog-Java/web/Register.jsp | 2 +- .../web/RegisterFailed.jsp | 2 +- .../web/SuccessfullyAdded.jsp | 2 +- .../web/SuccessfullyDeleted.jsp | 2 +- .../web/SuccessfullyUpdated.jsp | 2 +- .../web/UnpublishedPost.jsp | 56 +++++ .../web/UpdateFailed.jsp | 4 +- .../web/UpdatePostStatus.jsp | 29 +++ IF3110-02-Simple-Blog-Java/web/UserLogged.jsp | 12 +- .../web/UserManagement.jsp | 6 +- .../web/{AdminOnly.jsp => Uuuppssss.jsp} | 4 +- .../web/WEB-INF/web.xml | 2 +- .../web/assets/js/myjs.js | 156 +++++++++++++ 46 files changed, 1281 insertions(+), 40 deletions(-) create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeletePostServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishPostServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UnpublishedPostsServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdatePostServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/AddNewPostStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/DeletePostStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/EditPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/PublishPostStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/UpdatePostStatus.jsp rename IF3110-02-Simple-Blog-Java/web/{AdminOnly.jsp => Uuuppssss.jsp} (84%) create mode 100644 IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java index 2e16d405..7dcfc385 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java @@ -2,6 +2,12 @@ import java.io.IOException; import java.io.PrintWriter; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @@ -10,7 +16,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "AddNewPost", urlPatterns = {"/AddNewPost"}) public class AddNewPostServlet extends HttpServlet { @@ -53,7 +59,14 @@ protected void processRequest(HttpServletRequest request, HttpServletResponse re @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - processRequest(request, response); + + if (request.getSession().getAttribute("currentUser") == null || + ((User)request.getSession().getAttribute("currentUser")).getRole().equals("Editor")) { + response.sendRedirect("UserLogged.jsp"); + } else { + response.sendRedirect("AddNewPost.jsp"); + } + processRequest(request, response); } /** @@ -67,7 +80,24 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - processRequest(request, response); + + try { + Post post = new Post(); + post.setJudul(request.getParameter("judul")); + post.setTanggal(new SimpleDateFormat("MM/dd/yyyy").parse(request.getParameter("tanggal"))); + post.setKonten(request.getParameter("konten")); + post.setStatus("Unpublished"); + + if (!PostDAO.add(post)) { + request.getSession().setAttribute("AddNewPostStatus", "Post dengan judul \"" + request.getParameter("judul") + "\" gagal disimpan"); + } else { + request.getSession().setAttribute("AddNewPostStatus", "Post dengan judul \"" + request.getParameter("judul") + "\" berhasil disimpan"); + } + response.sendRedirect("AddNewPostStatus.jsp"); + processRequest(request, response); + } catch (ParseException ex) { + Logger.getLogger(AddNewPostServlet.class.getName()).log(Level.SEVERE, null, ex); + } } /** diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ConnectionManager.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ConnectionManager.java index 8aa4be30..b95bf5fc 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ConnectionManager.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ConnectionManager.java @@ -2,7 +2,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ import java.sql.Connection; diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CookieManager.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CookieManager.java index 2173e994..b451a15a 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CookieManager.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CookieManager.java @@ -6,7 +6,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ public class CookieManager { public static String getCookieValue(HttpServletRequest request, String name) { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomHttpSessionListener.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomHttpSessionListener.java index 2a3f40d5..13bce2d8 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomHttpSessionListener.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomHttpSessionListener.java @@ -8,7 +8,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ public class CustomHttpSessionListener implements HttpSessionListener { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomServletContextListener.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomServletContextListener.java index 5ea59ed9..2e2d1897 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomServletContextListener.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CustomServletContextListener.java @@ -7,7 +7,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ public class CustomServletContextListener implements ServletContextListener { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeletePostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeletePostServlet.java new file mode 100644 index 00000000..85b78793 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeletePostServlet.java @@ -0,0 +1,96 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asep Saepudin + */ +@WebServlet(name = "DeletePost", urlPatterns = {"/DeletePost"}) +public class DeletePostServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet DeletePostServlet"); + out.println(""); + out.println(""); + out.println("

Servlet DeletePostServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + String id = request.getParameter("id"); + + if (request.getSession().getAttribute("currentUser") == null) { + response.sendRedirect("Login.jsp"); + } else { + if (!PostDAO.delete(Integer.valueOf(id))) { + request.getSession().setAttribute("DeletePostStatus", "Post dengan id " + id + " gagal dihapus"); + response.sendRedirect("DeletePostStatus.jsp"); + } else { + request.getSession().setAttribute("DeletePostStatus", "Post dengan id" + id + " berhasil dihapus"); + response.sendRedirect("DeletePostStatus.jsp"); + } + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java index eafe24f2..98c9737d 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java @@ -11,7 +11,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "DeleteUser", urlPatterns = {"/DeleteUser"}) public class DeleteUserServlet extends HttpServlet { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java index c6db92df..ef015fc8 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java @@ -14,7 +14,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "LoginServlet", urlPatterns = {"/Login"}) public class LoginServlet extends HttpServlet { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java index 7bbca338..e16a2d9d 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java @@ -14,7 +14,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "LogoutServlet", urlPatterns = {"/Logout"}) public class LogoutServlet extends HttpServlet { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java index d22a158e..94ac3372 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java @@ -1,16 +1,17 @@ package wbd.tubesII; -import java.sql.Date; +import java.util.Date; /** * - * @author Asus + * @author Asep Saepudin */ public class Post { private int id; private String judul; private Date tanggal; private String konten; + private String status; public int getId() { return id; @@ -43,4 +44,12 @@ public String getKonten() { public void setKonten(String konten) { this.konten = konten; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java new file mode 100644 index 00000000..03fc5561 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java @@ -0,0 +1,205 @@ +package wbd.tubesII; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * + * @author Asep Saepudin + */ +public class PostDAO { + private static Connection currentCon = null; + private static ResultSet rs = null; + + public static boolean add(Post post) { + PreparedStatement statement = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("INSERT INTO `post` " + + "(`judul`, `tanggal`, `konten`, `status`) VALUES " + + "(?, ?, ?, ?)"); + statement.setString(1, post.getJudul()); + statement.setString(2, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(post.getTanggal())); + statement.setString(3, post.getKonten()); + statement.setString(4, post.getStatus()); + statement.executeUpdate(); + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return false; + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return false; + } + return true; + } + + public static boolean update(Post post) { + PreparedStatement statement = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("UPDATE `post` " + + "SET `judul`=?, `tanggal`=?, `konten`=?, `status`=? " + + "WHERE `id`=? "); + statement.setString(1, post.getJudul()); + statement.setString(2, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(post.getTanggal())); + statement.setString(3, post.getKonten()); + statement.setString(4, post.getStatus()); + statement.setString(5, String.valueOf(post.getId())); + + statement.executeUpdate(); + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return false; + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return false; + } + return true; + } + + public static boolean delete(int id) { + PreparedStatement statement = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("DELETE FROM `post` WHERE `id`=" + id); + statement.executeUpdate(); + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return false; + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return false; + } + return true; + } + + public static Post getPost(int id) { + PreparedStatement statement = null; + ResultSet rs = null; + Post post = new Post(); + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("SELECT * FROM `post` WHERE `id`=" + id); + rs = statement.executeQuery(); + + if (!rs.next()) { + return null; + } else { + post.setId(Integer.valueOf(rs.getString("id"))); + post.setJudul(rs.getString("judul")); + post.setTanggal(rs.getDate("tanggal")); +// post.setTanggal(new SimpleDateFormat("MM/dd/yyyy").parse(rs.getString("tanggal"))); + post.setKonten(rs.getString("konten")); + post.setStatus(rs.getString("status")); + } + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return null; + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return null; + } +// } catch (ParseException ex) { +// Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); +// } + return post; + } + + public static ArrayList getAllPosts() { + ArrayList posts = new ArrayList(); + PreparedStatement statement = null; + ResultSet rs = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("SELECT * FROM `post`"); + rs = statement.executeQuery(); + while (rs.next()) { + posts.add(getPost(rs.getInt("id"))); + } + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + } + return posts; + } + + public static ArrayList getAllPublishedPosts() { + ArrayList posts = new ArrayList(); + PreparedStatement statement = null; + ResultSet rs = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("SELECT * FROM `post` where `status`='Published'"); + rs = statement.executeQuery(); + while (rs.next()) { + posts.add(getPost(rs.getInt("id"))); + } + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + } + return posts; + } + + public static ArrayList getAllUnpublishedPosts() { + ArrayList posts = new ArrayList(); + PreparedStatement statement = null; + ResultSet rs = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("SELECT * FROM `post` where `status`='Unpublished'"); + rs = statement.executeQuery(); + while (rs.next()) { + posts.add(getPost(rs.getInt("id"))); + } + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + } + return posts; + } + + public static ArrayList getAllDeletedPosts() { + ArrayList posts = new ArrayList(); + PreparedStatement statement = null; + ResultSet rs = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("SELECT * FROM `post` where `status`='Deleted'"); + rs = statement.executeQuery(); + while (rs.next()) { + posts.add(getPost(rs.getInt("id"))); + } + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + } + return posts; + } + + public static boolean publish (int id) { + PreparedStatement statement = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("UPDATE `post` SET `status`='Published' WHERE id=" + id); + statement.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishPostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishPostServlet.java new file mode 100644 index 00000000..cd65ef5e --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishPostServlet.java @@ -0,0 +1,98 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLDecoder; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asep Saepudin + */ +@WebServlet(name = "PublishPost", urlPatterns = {"/PublishPost"}) +public class PublishPostServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet PublishPostServlet"); + out.println(""); + out.println(""); + out.println("

Servlet PublishPostServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + String id = request.getParameter("id"); + + if (request.getSession().getAttribute("currentUser") == null || + ((User)request.getSession().getAttribute("currentUser")).getRole().equals("Owner")) { + response.sendRedirect("Login.jsp"); + } else { + if (!PostDAO.publish(Integer.valueOf(id))) { + request.getSession().setAttribute("PublishPostStatus", "Post dengan id " + id + " gagal di-publish"); + response.sendRedirect("PublishPostStatus.jsp"); + } else { + request.getSession().setAttribute("PublishPostStatus", "Post dengan id" + id + " berhasil di-publis"); + response.sendRedirect("PublishPostStatus.jsp"); + } + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java new file mode 100644 index 00000000..4693830e --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java @@ -0,0 +1,93 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asep Saepudin + */ +@WebServlet(name = "PublishedPosts", urlPatterns = {"/PublishedPosts"}) +public class PublishedPostsServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet PublishedPostsServlet"); + out.println(""); + out.println(""); + out.println("

Servlet PublishedPostsServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + if (request.getSession().getAttribute("currentUser") == null) { + response.sendRedirect("Login.jsp"); + } else { + ArrayList publishedPosts = PostDAO.getAllPublishedPosts(); + request.getSession().setAttribute("allPublishedPosts", publishedPosts); + response.sendRedirect("PublishedPost.jsp"); + } + + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java index 1477789f..4590f3dc 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java @@ -10,7 +10,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "RegisterServlet", urlPatterns = {"/Register"}) public class RegisterServlet extends HttpServlet { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UnpublishedPostsServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UnpublishedPostsServlet.java new file mode 100644 index 00000000..3dbb9f6a --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UnpublishedPostsServlet.java @@ -0,0 +1,93 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asep Saepudin + */ +@WebServlet(name = "UnpublishedPosts", urlPatterns = {"/UnpublishedPosts"}) +public class UnpublishedPostsServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet UnpublishedPostServlet"); + out.println(""); + out.println(""); + out.println("

Servlet UnpublishedPostServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + if (request.getSession().getAttribute("currentUser") == null || + ((User)request.getSession().getAttribute("currentUser")).getPassword().equals("Owner")) { + response.sendRedirect("Login.jsp"); + } else { + ArrayList unpublishedPosts = PostDAO.getAllUnpublishedPosts(); + request.getSession().setAttribute("allUnpublishedPosts", unpublishedPosts); + response.sendRedirect("UnpublishedPost.jsp"); + } + + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdatePostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdatePostServlet.java new file mode 100644 index 00000000..412abe16 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdatePostServlet.java @@ -0,0 +1,120 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLDecoder; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asep Saepudin + */ +@WebServlet(name = "UpdatePost", urlPatterns = {"/UpdatePost"}) +public class UpdatePostServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet UpdatePostServlet"); + out.println(""); + out.println(""); + out.println("

Servlet UpdatePostServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String id = request.getParameter("id"); + + if (request.getSession().getAttribute("currentUser") == null) { + response.sendRedirect("Login.jsp"); + } else { + Post editedPost = PostDAO.getPost(Integer.valueOf(id)); + if (editedPost != null) { + request.getSession().setAttribute("editedPost", editedPost); + response.sendRedirect("EditPost.jsp"); + } else { + response.sendRedirect("Login.jsp"); + } + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + try { + Post post = new Post(); + post.setId(Integer.valueOf(request.getParameter("id"))); + post.setJudul(request.getParameter("judul")); + post.setTanggal(new SimpleDateFormat("MM/dd/yyyy").parse(request.getParameter("tanggal"))); + post.setKonten(request.getParameter("konten")); + post.setStatus(request.getParameter("status")); + + if (!PostDAO.update(post)) { + request.getSession().setAttribute("UpdatePostStatus", "Post dengan judul \"" + request.getParameter("judul") + "\" gagal di-update"); + } else { + request.getSession().setAttribute("UpdatePostStatus", "Post dengan judul \"" + request.getParameter("judul") + "\" berhasil di-update"); + } + response.sendRedirect("UpdatePostStatus.jsp"); + processRequest(request, response); + } catch (ParseException ex) { + Logger.getLogger(AddNewPostServlet.class.getName()).log(Level.SEVERE, null, ex); + } + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java index 83476eeb..f9b7e457 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java @@ -11,7 +11,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "UpdateUser", urlPatterns = {"/UpdateUser"}) public class UpdateUserServlet extends HttpServlet { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/User.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/User.java index 9f22925b..5331dc2d 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/User.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/User.java @@ -4,7 +4,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ public class User { private int id; diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserDAO.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserDAO.java index b6f62932..62dae3f4 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserDAO.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserDAO.java @@ -2,7 +2,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ import java.sql.Connection; @@ -315,5 +315,5 @@ public static boolean update(User user) { } } return true; - } + } } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java index 894ad419..64a56c66 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java @@ -11,7 +11,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "UserManagement", urlPatterns = {"/UserManagement"}) public class UserManagementServlet extends HttpServlet { diff --git a/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp b/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp new file mode 100644 index 00000000..6119d5ff --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp @@ -0,0 +1,43 @@ +<%-- + Document : AddNewPost + Created on : Nov 23, 2014, 7:41:49 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + <% + if (request.getSession().getAttribute("currentUser") == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + if (currentUser.getRole().equals("Editor")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "UserLogged.jsp"); + } + %> + +
+ Judul +
+ Tanggal +
+ Konten + + +
+ + + diff --git a/IF3110-02-Simple-Blog-Java/web/AddNewPostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/AddNewPostStatus.jsp new file mode 100644 index 00000000..fde2a39f --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/AddNewPostStatus.jsp @@ -0,0 +1,33 @@ +<%-- + Document : AddNewPostStatus + Created on : Nov 23, 2014, 8:41:53 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + if (currentUser.getRole().equals("Editor")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "UserLogged.jsp"); + } + %> + +

Status: <%= (String)request.getSession().getAttribute("AddNewPostStatus") %>

+
+ view + + + diff --git a/IF3110-02-Simple-Blog-Java/web/Blog.jsp b/IF3110-02-Simple-Blog-Java/web/Blog.jsp index e8007a50..cf2bec1d 100644 --- a/IF3110-02-Simple-Blog-Java/web/Blog.jsp +++ b/IF3110-02-Simple-Blog-Java/web/Blog.jsp @@ -1,7 +1,7 @@ <%-- Document : Blog.jsp Created on : Nov 23, 2014, 7:21:51 PM - Author : Asus + Author : Asep Saepudin --%> <%@page import="wbd.tubesII.User"%> diff --git a/IF3110-02-Simple-Blog-Java/web/DeletePostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/DeletePostStatus.jsp new file mode 100644 index 00000000..e5a28c06 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/DeletePostStatus.jsp @@ -0,0 +1,35 @@ +<%-- + Document : DeletePostStatus + Created on : Nov 23, 2014, 10:08:40 PM + Author : Asep Saepudin +--%> + +<%-- + Document : AddNewPostStatus + Created on : Nov 23, 2014, 8:41:53 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> + +

Status: <%= (String)request.getSession().getAttribute("DeletePostStatus") %>

+
+ view + + + diff --git a/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp b/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp index 7082d4cf..2d8b1f47 100644 --- a/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp +++ b/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp @@ -1,7 +1,7 @@ <%-- Document : DeletionFailed Created on : Nov 23, 2014, 6:23:16 PM - Author : Asus + Author : Asep Saepudin --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> diff --git a/IF3110-02-Simple-Blog-Java/web/EditPost.jsp b/IF3110-02-Simple-Blog-Java/web/EditPost.jsp new file mode 100644 index 00000000..7e79e7f4 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/EditPost.jsp @@ -0,0 +1,50 @@ +<%-- + Document : EditPost + Created on : Nov 23, 2014, 10:12:56 PM + Author : Asep Saepudin +--%> + +<%@page import="java.text.Format"%> +<%@page import="java.text.SimpleDateFormat"%> +<%@page import="java.util.Date"%> +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + + Post editedPost = (Post)request.getSession().getAttribute("editedPost"); + if (editedPost == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "UserLogged.jsp"); + } + %> +
+ Judul +
+ Tanggal + <% + Date date = editedPost.getTanggal(); + Format formatter = new SimpleDateFormat("MM/dd/yyyy"); + %> +
+ Konten + + + + +
+ + + diff --git a/IF3110-02-Simple-Blog-Java/web/EditUser.jsp b/IF3110-02-Simple-Blog-Java/web/EditUser.jsp index bc359234..1bf653b2 100644 --- a/IF3110-02-Simple-Blog-Java/web/EditUser.jsp +++ b/IF3110-02-Simple-Blog-Java/web/EditUser.jsp @@ -1,7 +1,7 @@ <%-- Document : EditUser Created on : Nov 23, 2014, 6:41:33 PM - Author : Asus + Author : Asep Saepudin --%> <%@page import="wbd.tubesII.User"%> diff --git a/IF3110-02-Simple-Blog-Java/web/Index.jsp b/IF3110-02-Simple-Blog-Java/web/Index.jsp index da33250e..697729fe 100644 --- a/IF3110-02-Simple-Blog-Java/web/Index.jsp +++ b/IF3110-02-Simple-Blog-Java/web/Index.jsp @@ -1,7 +1,7 @@ <%-- Document : index Created on : Nov 20, 2014, 11:37:46 PM - Author : Asus + Author : Asep Saepudin --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> diff --git a/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp b/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp index f18b7b07..b3d2eb5c 100644 --- a/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp +++ b/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp @@ -1,7 +1,7 @@ <%-- Document : invalidLogin Created on : Nov 20, 2014, 8:34:48 PM - Author : Asus + Author : Asep Saepudin --%> <%@page import="wbd.tubesII.User"%> diff --git a/IF3110-02-Simple-Blog-Java/web/Login.jsp b/IF3110-02-Simple-Blog-Java/web/Login.jsp index 8815646c..6e0f2d41 100644 --- a/IF3110-02-Simple-Blog-Java/web/Login.jsp +++ b/IF3110-02-Simple-Blog-Java/web/Login.jsp @@ -1,7 +1,7 @@ <%-- Document : LoginPage Created on : Nov 20, 2014, 8:30:01 PM - Author : Asus + Author : Asep Saepudin --%> <%@page import="org.apache.jasper.tagplugins.jstl.ForEach"%> diff --git a/IF3110-02-Simple-Blog-Java/web/Logout.jsp b/IF3110-02-Simple-Blog-Java/web/Logout.jsp index 257159b1..214cd1cd 100644 --- a/IF3110-02-Simple-Blog-Java/web/Logout.jsp +++ b/IF3110-02-Simple-Blog-Java/web/Logout.jsp @@ -1,7 +1,7 @@ <%-- Document : logout Created on : Nov 20, 2014, 11:14:08 PM - Author : Asus + Author : Asep Saepudin --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> diff --git a/IF3110-02-Simple-Blog-Java/web/PublishPostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/PublishPostStatus.jsp new file mode 100644 index 00000000..c2740ff4 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/PublishPostStatus.jsp @@ -0,0 +1,33 @@ +<%-- + Document : PublishPostStatus + Created on : Nov 23, 2014, 9:44:46 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + if (currentUser.getRole().equals("Owner")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "UserLogged.jsp"); + } + %> + +

Status: <%= (String)request.getSession().getAttribute("PublishPostStatus") %>

+
+ view + + + diff --git a/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp new file mode 100644 index 00000000..937a865a --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp @@ -0,0 +1,54 @@ +<%-- + Document : PublishedPost + Created on : Nov 23, 2014, 9:38:08 PM + Author : Asep Saepudin +--%> + +<%@page import="java.util.ArrayList"%> +<%@page import="wbd.tubesII.PostDAO"%> +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> + + + + + + + + + + <% ArrayList publishedPosts = (ArrayList)request.getSession().getAttribute("allPublishedPosts"); + if (publishedPosts == null) { + publishedPosts = PostDAO.getAllPublishedPosts(); + } + for (int i=0; i + + + + + + + + + <% } %> +
JudulTanggalKontenEditHapus
<%= publishedPosts.get(i).getJudul()%><%= publishedPosts.get(i).getTanggal().toString() %><%= publishedPosts.get(i).getKonten() %>vx
+ + + diff --git a/IF3110-02-Simple-Blog-Java/web/Register.jsp b/IF3110-02-Simple-Blog-Java/web/Register.jsp index b94b7e05..dee03a45 100644 --- a/IF3110-02-Simple-Blog-Java/web/Register.jsp +++ b/IF3110-02-Simple-Blog-Java/web/Register.jsp @@ -1,7 +1,7 @@ <%-- Document : register Created on : Nov 20, 2014, 10:35:52 PM - Author : Asus + Author : Asep Saepudin --%> <%@page import="wbd.tubesII.User"%> diff --git a/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp b/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp index 5fa7783f..e787029e 100644 --- a/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp +++ b/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp @@ -1,7 +1,7 @@ <%-- Document : registerfailed Created on : Nov 20, 2014, 10:52:29 PM - Author : Asus + Author : Asep Saepudin --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> diff --git a/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp b/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp index e2e0faf0..1d571488 100644 --- a/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp +++ b/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp @@ -1,7 +1,7 @@ <%-- Document : successfullyadded Created on : Nov 20, 2014, 10:51:57 PM - Author : Asus + Author : Asep Saepudin --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> diff --git a/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp b/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp index 3c4669fe..02fe3800 100644 --- a/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp +++ b/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp @@ -1,7 +1,7 @@ <%-- Document : SuccessfullyDeleted Created on : Nov 23, 2014, 6:22:36 PM - Author : Asus + Author : Asep Saepudin --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> diff --git a/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp b/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp index 85e68cea..51c7de53 100644 --- a/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp +++ b/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp @@ -1,7 +1,7 @@ <%-- Document : SuccessfullyUpdated Created on : Nov 23, 2014, 7:04:52 PM - Author : Asus + Author : Asep Saepudin --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> diff --git a/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp b/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp new file mode 100644 index 00000000..3a4b9bd0 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp @@ -0,0 +1,56 @@ +<%-- + Document : UnpublishedPost + Created on : Nov 23, 2014, 9:27:46 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.PostDAO"%> +<%@page import="java.util.ArrayList"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + if (currentUser.getRole().equals("Owner")) { + request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin Editor"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Uuuppssss.jsp"); + } + %> + + + + + + + + + + <% ArrayList unpublishedPosts = (ArrayList)request.getSession().getAttribute("allUnpublishedPosts"); + if (unpublishedPosts == null) { + unpublishedPosts = PostDAO.getAllUnpublishedPosts(); + } + for (int i=0; i + + + + + + + + <% } %> +
JudulTanggalKontenEditPublish
<%= unpublishedPosts.get(i).getJudul()%><%= unpublishedPosts.get(i).getTanggal().toString() %><%= unpublishedPosts.get(i).getKonten() %>vx
+ + diff --git a/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp b/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp index c322f14d..c2ff42db 100644 --- a/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp +++ b/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp @@ -1,13 +1,13 @@ <%-- Document : UpdateFailed Created on : Nov 23, 2014, 7:05:28 PM - Author : Asus + Author : Asep Saepudin --%> <%-- Document : registerfailed Created on : Nov 20, 2014, 10:52:29 PM - Author : Asus + Author : Asep Saepudin --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> diff --git a/IF3110-02-Simple-Blog-Java/web/UpdatePostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/UpdatePostStatus.jsp new file mode 100644 index 00000000..6df32337 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/UpdatePostStatus.jsp @@ -0,0 +1,29 @@ +<%-- + Document : UpdatePostStatus + Created on : Nov 23, 2014, 10:25:28 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "Login.jsp"); + } + %> + +

Status: <%= (String)request.getSession().getAttribute("UpdatePostStatus") %>

+
+ view + + + diff --git a/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp b/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp index fbf5dc14..4ae299d9 100644 --- a/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp +++ b/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp @@ -1,7 +1,7 @@ <%-- Document : userLogged Created on : Nov 20, 2014, 8:31:36 PM - Author : Asus + Author : Asep Saepudin --%> <%@page language="java" contentType="text/html" pageEncoding="UTF-8"%> <%@page import="wbd.tubesII.User"%> @@ -25,10 +25,18 @@ || You are an <%= currentUser.getRole() %> + <% if (currentUser.getRole().equals("Admin")) { %>
User Management <% } %> -
Logout + <% if (currentUser.getRole().equals("Admin") || currentUser.getRole().equals("Owner")) { %> +
Add New Post + <% } %> +
View Published Posts + <% if (currentUser.getRole().equals("Admin") || currentUser.getRole().equals("Editor")) { %> +
View Unpublished Posts + <% } %> +
Logout diff --git a/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp b/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp index a919e989..781d29fa 100644 --- a/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp +++ b/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp @@ -1,7 +1,7 @@ <%-- Document : UserManagement Created on : Nov 23, 2014, 5:12:43 PM - Author : Asus + Author : Asep Saepudin --%> <%@page import="wbd.tubesII.UserDAO"%> @@ -23,9 +23,9 @@ response.setHeader("Location", "Login.jsp"); } if (!currentUser.getRole().equals("Admin")) { - request.getSession().setAttribute("adminOnly", "Psst! Halaman khusus Admin"); + request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin"); response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "AdminOnly.jsp"); + response.setHeader("Location", "Uuuppssss.jsp"); } %> diff --git a/IF3110-02-Simple-Blog-Java/web/AdminOnly.jsp b/IF3110-02-Simple-Blog-Java/web/Uuuppssss.jsp similarity index 84% rename from IF3110-02-Simple-Blog-Java/web/AdminOnly.jsp rename to IF3110-02-Simple-Blog-Java/web/Uuuppssss.jsp index 7f45d8d4..dd938817 100644 --- a/IF3110-02-Simple-Blog-Java/web/AdminOnly.jsp +++ b/IF3110-02-Simple-Blog-Java/web/Uuuppssss.jsp @@ -1,7 +1,7 @@ <%-- Document : AdminOnly Created on : Nov 23, 2014, 5:10:08 PM - Author : Asus + Author : Asep Saepudin --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> @@ -20,7 +20,7 @@ %>

- Error: <%= (String)request.getSession().getAttribute("adminOnly") %> + Uupppss: <%= (String)request.getSession().getAttribute("forbidden") %>

diff --git a/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml b/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml index c3b7c644..8ad18f08 100644 --- a/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml +++ b/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml @@ -19,7 +19,7 @@ - faces/index.jsp + faces/Login diff --git a/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js b/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js new file mode 100644 index 00000000..56fb4d34 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js @@ -0,0 +1,156 @@ +function validateEmail() { + var email = document.getElementById("email").value; + var pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + var result = pattern.test(email); + + if (!result) { + document.getElementById("email").style["background-color"] = "#ffaaaa"; + document.getElementById("submitKomentar").disabled = true; + } else { + document.getElementById("email").style["background-color"] = "#aaffaa"; + document.getElementById("submitKomentar").disabled = false; + } + return result; +} + +function sendComment() { + var idPost = encodeURIComponent(document.getElementById("id").value); + var nama = encodeURIComponent(document.getElementById("nama").value); + var email = encodeURIComponent(document.getElementById("email").value); + var komentar = encodeURIComponent(document.getElementById("komentar").value); + + if (!validateKomentar(nama, email, komentar)) { + return false; + } + + var xmlhttp; + if (window.XMLHttpRequest) { + xmlhttp = new XMLHttpRequest(); + } else { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + xmlhttp.onreadystatechange = function() { + if (xmlhttp.readyState==4 && xmlhttp.status==200) { + existingComment = document.getElementById("komentar-placeholder").innerHTML; + document.getElementById("komentar-placeholder").innerHTML = xmlhttp.responseText + existingComment; + + document.getElementById("nama").value = ''; + document.getElementById("email").value = ''; + document.getElementById("komentar").value = ''; + } + } + + var parameters = "idpost=" + idPost + "&nama=" + nama + "&email=" + email + "&komentar=" + komentar; + xmlhttp.open("POST", "send_comment.php", true); + xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + xmlhttp.send(parameters); +} + +window.onload = loadComment(); + +function loadComment() { + var idPost = encodeURIComponent(document.getElementById("id").value); + + var xmlhttp; + if (window.XMLHttpRequest) { + xmlhttp = new XMLHttpRequest(); + } else { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + xmlhttp.onreadystatechange = function() { + if (xmlhttp.readyState==4 && xmlhttp.status==200) { + document.getElementById("komentar-placeholder").innerHTML = xmlhttp.responseText; + } + } + + var parameters = "idpost=" + idPost; + xmlhttp.open("GET", "load_comment.php?" + parameters, true); + xmlhttp.send(null); +} + +function validateKomentar(nama, email, komentar) { + if (isEmpty(nama)) { + alert('Kolom nama tidak boleh kosong'); + return false; + } + if (isEmpty(email)) { + alert('Kolom email tidak boleh kosong'); + return false; + } + if (isEmpty(komentar)) { + alert('Kolom komentar tidak boleh kosong'); + return false; + } + if (!validateEmail()) { + alert('Email tidak valid'); + return false; + } + + return true; +} + +function confirmDeletion(postId) { + var confirm = window.confirm("Apakah Anda yakin menghapus post ini?"); + if (confirm == true) { + window.location = "DeletePost?id=" + postId; + } else { + return false; + } +} + +function validate() { + var judul = document.getElementById("judul").value; + var content = document.getElementById("konten").value; + var validDateFormat = true; + var rawDate, tanggal; + try { + rawDate = document.getElementById("tanggal").value.split("/"); + if (rawDate[2] < 1990 || rawDate[2] > 2099 || rawDate[0] < 0 || rawDate[0] > 12 || rawDate[1] < 0 || rawDate[1] > 31) { + validDateFormat = false; + } else { + tanggal = new Date(rawDate[2], rawDate[0] - 1, rawDate[1]); + } + } catch(exception) { + validDateFormat = false; + } + var today = new Date(); + + if (isEmpty(judul)) { + alert("Judul tidak boleh kosong"); + return false; + } + if (validDateFormat) { + if (!compareDate(tanggal, today)) { + alert("Format tanggal tidak valid"); + return false; + } + } else { + alert("Format tanggal tidak valid"); + return false; + } + if (isEmpty(content)) { + alert("Konten tidak boleh kosong"); + return false; + } + + return true; +} + +function compareDate(tanggal, today) { + if (tanggal.getFullYear() > today.getFullYear()) + return true; + if (tanggal.getFullYear() < today.getFullYear()) + return false; + if (tanggal.getMonth() > today.getMonth()) + return true; + if (tanggal.getMonth() < today.getMonth()) + return false; + if (tanggal.getDate() >= today.getDate()) + return true; + if (tanggal.getDate() < today.getDate()) + return false; +} + +function isEmpty(val){ + return (val === undefined || val == null || val.length <= 0) ? true : false; +} \ No newline at end of file From ed310096dd414cffcce4f550cdd51d52d19e2845 Mon Sep 17 00:00:00 2001 From: Asep Saepudin Date: Sun, 23 Nov 2014 23:42:53 +0700 Subject: [PATCH 03/10] Back-end code for Post Management feature is done. --- .../wbd/tubesII/PublishedPostsServlet.java | 11 +-- .../src/java/wbd/tubesII/ViewPostServlet.java | 97 +++++++++++++++++++ .../web/PublishedPost.jsp | 12 +-- IF3110-02-Simple-Blog-Java/web/ViewPost.jsp | 33 +++++++ 4 files changed, 136 insertions(+), 17 deletions(-) create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ViewPostServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/web/ViewPost.jsp diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java index 4693830e..6de18464 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java @@ -55,13 +55,10 @@ protected void processRequest(HttpServletRequest request, HttpServletResponse re protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (request.getSession().getAttribute("currentUser") == null) { - response.sendRedirect("Login.jsp"); - } else { - ArrayList publishedPosts = PostDAO.getAllPublishedPosts(); - request.getSession().setAttribute("allPublishedPosts", publishedPosts); - response.sendRedirect("PublishedPost.jsp"); - } + + ArrayList publishedPosts = PostDAO.getAllPublishedPosts(); + request.getSession().setAttribute("allPublishedPosts", publishedPosts); + response.sendRedirect("PublishedPost.jsp"); processRequest(request, response); } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ViewPostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ViewPostServlet.java new file mode 100644 index 00000000..746cd92b --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ViewPostServlet.java @@ -0,0 +1,97 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +@WebServlet(name = "ViewPost", urlPatterns = {"/ViewPost"}) +public class ViewPostServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet ViewPostServlet"); + out.println(""); + out.println(""); + out.println("

Servlet ViewPostServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String id = request.getParameter("id"); + + if (id == null || id.equals("")) { + response.sendRedirect("PublishedPosts"); + } else { + Post post = PostDAO.getPost(Integer.valueOf(id)); + if (post != null) { + request.getSession().setAttribute("post", post); + response.sendRedirect("ViewPost.jsp"); + } else { + response.sendRedirect("PublishedPosts"); + } + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp index 937a865a..2dd32d51 100644 --- a/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp @@ -16,15 +16,7 @@ JSP Page - - <% - User currentUser = (User)request.getSession().getAttribute("currentUser"); - if (currentUser == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - %> - + @@ -40,7 +32,7 @@ for (int i=0; i - + diff --git a/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp new file mode 100644 index 00000000..727992e7 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp @@ -0,0 +1,33 @@ +<%-- + Document : ViewPost + Created on : Nov 23, 2014, 11:27:55 PM + Author : Asus +--%> + +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + JSP Page + + <% + Post post = (Post)request.getSession().getAttribute("post"); + if (post == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + + Judul :
+ <%= post.getJudul() %>

+ Tanggal :
+ <%= post.getTanggal().toString() %>

+ Konten
+ <%= post.getKonten() %>

+ + + From 4f28c62f1e2060742499ef5580d5580ca7517716 Mon Sep 17 00:00:00 2001 From: Asep Saepudin Date: Mon, 24 Nov 2014 01:15:42 +0700 Subject: [PATCH 04/10] Back-end code for Comment Management feature is done. --- .../src/java/wbd/tubesII/Comment.java | 55 ++++++++ .../src/java/wbd/tubesII/CommentDAO.java | 69 +++++++++++ .../java/wbd/tubesII/LoadCommentServlet.java | 88 +++++++++++++ .../java/wbd/tubesII/SaveCommentServlet.java | 117 ++++++++++++++++++ IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp | 7 +- IF3110-02-Simple-Blog-Java/web/ViewPost.jsp | 45 +++++-- .../web/assets/js/myjs.js | 16 +-- 7 files changed, 376 insertions(+), 21 deletions(-) create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Comment.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CommentDAO.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Comment.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Comment.java new file mode 100644 index 00000000..9a57ec77 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Comment.java @@ -0,0 +1,55 @@ +package wbd.tubesII; + +import java.util.Date; + +/** + * + * @author Asus + */ +public class Comment { + private int id; + private String name; + private String email; + private Date tanggal; + private String komentar; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Date getTanggal() { + return tanggal; + } + + public void setTanggal(Date tanggal) { + this.tanggal = tanggal; + } + + public String getKomentar() { + return komentar; + } + + public void setKomentar(String komentar) { + this.komentar = komentar; + } +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CommentDAO.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CommentDAO.java new file mode 100644 index 00000000..e0a1e75d --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CommentDAO.java @@ -0,0 +1,69 @@ +package wbd.tubesII; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * + * @author Asus + */ +public class CommentDAO { + private static Connection currentCon = null; + private static ResultSet rs = null; + + public static boolean save(Comment comment) { + PreparedStatement statement = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("INSERT INTO `komentar` " + + "(`name`, `email`, `tanggal`, `komentar`, `post_id`) VALUES " + + "(?, ?, ?, ?, ?)"); + statement.setString(1, comment.getName()); + statement.setString(2, comment.getEmail()); + statement.setString(3, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(comment.getTanggal())); + statement.setString(4, comment.getKomentar()); + statement.setString(5, String.valueOf(comment.getId())); + statement.executeUpdate(); + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return false; + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return false; + } + return true; + } + + public static ArrayList get(int id) { + ArrayList comments = new ArrayList(); + PreparedStatement statement = null; + ResultSet rs = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("SELECT * FROM `komentar` WHERE `post_id`=" + id); + rs = statement.executeQuery(); + while (rs.next()) { + Comment comment = new Comment(); + comment.setEmail(rs.getString("email")); + comment.setName(rs.getString("name")); + comment.setId(Integer.valueOf(rs.getString("post_id"))); + comment.setKomentar(rs.getString("komentar")); + comment.setTanggal(rs.getDate("tanggal")); + comments.add(comment); + } + } catch (SQLException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return null; + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + return comments; + } +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java new file mode 100644 index 00000000..01be2ded --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java @@ -0,0 +1,88 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +@WebServlet(name = "LoadComment", urlPatterns = {"/LoadComment"}) +public class LoadCommentServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + ArrayList comments = CommentDAO.get(Integer.valueOf(request.getParameter("idpost"))); + StringBuffer sb = new StringBuffer(); + for (Comment komentar : comments) { + String name = komentar.getName(); + String date = komentar.getTanggal().toString(); + String isiKomentar = komentar.getKomentar(); + sb.append("Nama: " + name + "
"); + sb.append("Tanggal: " + date + "
"); + sb.append("Komentar: " + isiKomentar + "

"); + } + response.setContentType("text/html"); + response.setCharacterEncoding("UTF-8"); + response.getWriter().write(sb.toString()); + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }//
+ +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java new file mode 100644 index 00000000..65748384 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java @@ -0,0 +1,117 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +@WebServlet(name = "SaveComment", urlPatterns = {"/SaveComment"}) +public class SaveCommentServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ +// out.println(""); +// out.println(""); +// out.println(""); +// out.println("Servlet SaveCommentServlet"); +// out.println(""); +// out.println(""); +// out.println("

Servlet SaveCommentServlet at " + request.getContextPath() + "

"); +// out.println(""); +// out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + Comment comment = new Comment(); + comment.setEmail(request.getParameter("email")); + comment.setName(request.getParameter("nama")); + comment.setTanggal(new Date()); + comment.setKomentar(request.getParameter("komentar")); + comment.setId(Integer.valueOf(request.getParameter("idpost"))); + System.out.println(CommentDAO.save(comment)); +// if (!CommentDAO.save(comment)) { +// request.getSession().setAttribute("AddNewPostStatus", "Post dengan judul \"" + request.getParameter("judul") + "\" gagal disimpan"); +// } else { +// request.getSession().setAttribute("AddNewPostStatus", "Post dengan judul \"" + request.getParameter("judul") + "\" berhasil disimpan"); +// } +// response.sendRedirect("AddNewPostStatus.jsp"); +// processRequest(request, response); + ArrayList comments = CommentDAO.get(Integer.valueOf(request.getParameter("idpost"))); + StringBuffer sb = new StringBuffer(); + for (Comment komentar : comments) { + String name = komentar.getName(); + String date = komentar.getTanggal().toString(); + String isiKomentar = komentar.getKomentar(); + sb.append("Nama: " + name + "
"); + sb.append("Tanggal: " + date + "
"); + sb.append("Komentar: " + isiKomentar + "

"); + } + response.setContentType("text/html"); + response.setCharacterEncoding("UTF-8"); + response.getWriter().write(sb.toString()); + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }//
+ +} diff --git a/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp b/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp index 6119d5ff..d0adcd7c 100644 --- a/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp @@ -12,12 +12,7 @@ JSP Page - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - + <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); diff --git a/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp index 727992e7..afb6c7ea 100644 --- a/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp @@ -20,14 +20,43 @@ response.setHeader("Location", "PublishedPosts"); } %> - - - Judul :
- <%= post.getJudul() %>

- Tanggal :
- <%= post.getTanggal().toString() %>

- Konten
- <%= post.getKonten() %>

+ + Judul :
+ <%= post.getJudul() %>

+ Tanggal :
+ <%= post.getTanggal().toString() %>

+ Konten
+ <%= post.getKonten() %>


+ + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + %> +
+ + + <% if (currentUser == null) { %> + + <% } else {%> + + <% }%> +
+ + <% if (currentUser == null) { %> + + <% } else {%> + + <% }%> +
+
+ + + + +
+
+
+ +
diff --git a/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js b/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js index 56fb4d34..0893c04d 100644 --- a/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js +++ b/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js @@ -4,10 +4,10 @@ function validateEmail() { var result = pattern.test(email); if (!result) { - document.getElementById("email").style["background-color"] = "#ffaaaa"; + document.getElementById("email").style.backgroundColor = "#ffaaaa"; document.getElementById("submitKomentar").disabled = true; } else { - document.getElementById("email").style["background-color"] = "#aaffaa"; + document.getElementById("email").style.backgroundColor = "#aaffaa"; document.getElementById("submitKomentar").disabled = false; } return result; @@ -32,16 +32,18 @@ function sendComment() { xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { existingComment = document.getElementById("komentar-placeholder").innerHTML; - document.getElementById("komentar-placeholder").innerHTML = xmlhttp.responseText + existingComment; + document.getElementById("komentar-placeholder").innerHTML = xmlhttp.responseText; - document.getElementById("nama").value = ''; - document.getElementById("email").value = ''; + if (!document.getElementById("nama").disabled) + document.getElementById("nama").value = ''; + if (!document.getElementById("email").disabled) + document.getElementById("email").value = ''; document.getElementById("komentar").value = ''; } } var parameters = "idpost=" + idPost + "&nama=" + nama + "&email=" + email + "&komentar=" + komentar; - xmlhttp.open("POST", "send_comment.php", true); + xmlhttp.open("POST", "SaveComment", true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send(parameters); } @@ -64,7 +66,7 @@ function loadComment() { } var parameters = "idpost=" + idPost; - xmlhttp.open("GET", "load_comment.php?" + parameters, true); + xmlhttp.open("GET", "LoadComment?" + parameters, true); xmlhttp.send(null); } From d6c4eb2978339abf70318226209555f5797a3511 Mon Sep 17 00:00:00 2001 From: Asep Saepudin Date: Mon, 24 Nov 2014 01:18:53 +0700 Subject: [PATCH 05/10] Back-end code for Comment Management feature is done. --- IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Comment.java | 2 +- IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CommentDAO.java | 2 +- .../src/java/wbd/tubesII/LoadCommentServlet.java | 2 +- .../src/java/wbd/tubesII/SaveCommentServlet.java | 2 +- .../src/java/wbd/tubesII/ViewPostServlet.java | 2 +- IF3110-02-Simple-Blog-Java/web/ViewPost.jsp | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Comment.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Comment.java index 9a57ec77..f5265ac3 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Comment.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Comment.java @@ -4,7 +4,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ public class Comment { private int id; diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CommentDAO.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CommentDAO.java index e0a1e75d..f5f2dea5 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CommentDAO.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/CommentDAO.java @@ -11,7 +11,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ public class CommentDAO { private static Connection currentCon = null; diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java index 01be2ded..745ded6e 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java @@ -11,7 +11,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "LoadComment", urlPatterns = {"/LoadComment"}) public class LoadCommentServlet extends HttpServlet { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java index 65748384..6bb9e160 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java @@ -16,7 +16,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "SaveComment", urlPatterns = {"/SaveComment"}) public class SaveCommentServlet extends HttpServlet { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ViewPostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ViewPostServlet.java index 746cd92b..c35ae6df 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ViewPostServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/ViewPostServlet.java @@ -10,7 +10,7 @@ /** * - * @author Asus + * @author Asep Saepudin */ @WebServlet(name = "ViewPost", urlPatterns = {"/ViewPost"}) public class ViewPostServlet extends HttpServlet { diff --git a/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp index afb6c7ea..5a7bae7c 100644 --- a/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp @@ -1,7 +1,7 @@ <%-- Document : ViewPost Created on : Nov 23, 2014, 11:27:55 PM - Author : Asus + Author : Asep Saepudin --%> <%@page import="wbd.tubesII.Post"%> From 49a0b0388dac45688dac9f4547f1257f1cee11dd Mon Sep 17 00:00:00 2001 From: Asep Saepudin Date: Mon, 24 Nov 2014 06:25:07 +0700 Subject: [PATCH 06/10] Integrate back-end code and UI --- .../java/wbd/tubesII/AddNewPostServlet.java | 2 +- .../java/wbd/tubesII/DeletePostServlet.java | 6 +- .../java/wbd/tubesII/DeleteUserServlet.java | 6 +- .../java/wbd/tubesII/LoadCommentServlet.java | 7 +- .../src/java/wbd/tubesII/LoginServlet.java | 25 +- .../src/java/wbd/tubesII/LogoutServlet.java | 2 +- .../java/wbd/tubesII/PublishPostServlet.java | 6 +- .../wbd/tubesII/PublishedPostsServlet.java | 3 +- .../src/java/wbd/tubesII/RegisterServlet.java | 8 +- .../java/wbd/tubesII/SaveCommentServlet.java | 7 +- .../wbd/tubesII/UnpublishedPostsServlet.java | 2 +- .../java/wbd/tubesII/UpdatePostServlet.java | 4 +- .../java/wbd/tubesII/UpdateUserServlet.java | 12 +- .../wbd/tubesII/UserManagementServlet.java | 2 +- IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp | 76 +- .../web/AddNewPostStatus.jsp | 62 +- IF3110-02-Simple-Blog-Java/web/Blog.jsp | 38 - .../web/DeletePostStatus.jsp | 57 +- .../web/DeletionFailed.jsp | 26 - .../web/DeletionStatus.jsp | 69 ++ IF3110-02-Simple-Blog-Java/web/EditPost.jsp | 93 +- IF3110-02-Simple-Blog-Java/web/EditUser.jsp | 96 +- IF3110-02-Simple-Blog-Java/web/Index.jsp | 17 - .../web/InvalidLogin.jsp | 20 - IF3110-02-Simple-Blog-Java/web/Login.jsp | 76 +- IF3110-02-Simple-Blog-Java/web/Logout.jsp | 17 - .../web/PublishPostStatus.jsp | 57 +- .../web/PublishedPost.jsp | 95 +- IF3110-02-Simple-Blog-Java/web/Register.jsp | 91 +- .../web/RegisterFailed.jsp | 27 - .../web/RegistrationStatus.jsp | 68 ++ .../web/SuccessfullyAdded.jsp | 25 - .../web/SuccessfullyDeleted.jsp | 25 - .../web/SuccessfullyUpdated.jsp | 25 - .../web/UnpublishedPost.jsp | 99 +- .../web/UpdateFailed.jsp | 33 - .../web/UpdatePostStatus.jsp | 58 +- .../web/UpdateUserStatus.jsp | 68 ++ IF3110-02-Simple-Blog-Java/web/UserLogged.jsp | 42 - .../web/UserManagement.jsp | 92 +- IF3110-02-Simple-Blog-Java/web/Uuuppssss.jsp | 60 +- IF3110-02-Simple-Blog-Java/web/ViewPost.jsp | 123 ++- .../web/WEB-INF/web.xml | 2 +- .../web/assets/css/screen.css | 862 ++++++++++++++++++ .../web/assets/img/favicon.ico | Bin 0 -> 799 bytes .../web/assets/img/pre.png | Bin 0 -> 78 bytes IF3110-02-Simple-Blog-Java/web/welcomeJSF.jsp | 22 - 47 files changed, 1989 insertions(+), 624 deletions(-) delete mode 100644 IF3110-02-Simple-Blog-Java/web/Blog.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/DeletionStatus.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/Index.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/Logout.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/RegistrationStatus.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/UpdateUserStatus.jsp delete mode 100644 IF3110-02-Simple-Blog-Java/web/UserLogged.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/assets/css/screen.css create mode 100644 IF3110-02-Simple-Blog-Java/web/assets/img/favicon.ico create mode 100644 IF3110-02-Simple-Blog-Java/web/assets/img/pre.png delete mode 100644 IF3110-02-Simple-Blog-Java/web/welcomeJSF.jsp diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java index 7dcfc385..c30df0b4 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java @@ -62,7 +62,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) if (request.getSession().getAttribute("currentUser") == null || ((User)request.getSession().getAttribute("currentUser")).getRole().equals("Editor")) { - response.sendRedirect("UserLogged.jsp"); + response.sendRedirect("PublishedPosts"); } else { response.sendRedirect("AddNewPost.jsp"); } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeletePostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeletePostServlet.java index 85b78793..b7a88f3d 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeletePostServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeletePostServlet.java @@ -56,13 +56,13 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) String id = request.getParameter("id"); if (request.getSession().getAttribute("currentUser") == null) { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } else { if (!PostDAO.delete(Integer.valueOf(id))) { - request.getSession().setAttribute("DeletePostStatus", "Post dengan id " + id + " gagal dihapus"); + request.getSession().setAttribute("DeletePostStatus", "Post (id = " + id + ") tidak berhasil dihapus"); response.sendRedirect("DeletePostStatus.jsp"); } else { - request.getSession().setAttribute("DeletePostStatus", "Post dengan id" + id + " berhasil dihapus"); + request.getSession().setAttribute("DeletePostStatus", "Post (id = " + id + ") berhasil dihapus"); response.sendRedirect("DeletePostStatus.jsp"); } } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java index 98c9737d..44423377 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeleteUserServlet.java @@ -60,14 +60,14 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) if (request.getSession().getAttribute("currentUser") == null || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin") || email.equals("") || email == null) { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } else { if (!UserDAO.delete(email)) { request.getSession().setAttribute("deleteUser", "User dengan email " + email + " tidak ditemukan"); - response.sendRedirect("DeletionFailed.jsp"); + response.sendRedirect("DeletionStatus.jsp"); } else { request.getSession().setAttribute("deleteUser", "User dengan email " + email + " berhasil dihapus"); - response.sendRedirect("SuccessfullyDeleted.jsp"); + response.sendRedirect("DeletionStatus.jsp"); } } processRequest(request, response); diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java index 745ded6e..90cffcce 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoadCommentServlet.java @@ -51,9 +51,10 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) String name = komentar.getName(); String date = komentar.getTanggal().toString(); String isiKomentar = komentar.getKomentar(); - sb.append("Nama: " + name + "
"); - sb.append("Tanggal: " + date + "
"); - sb.append("Komentar: " + isiKomentar + "

"); +// sb.append("Nama: " + name + "
"); +// sb.append("Tanggal: " + date + "
"); +// sb.append("Komentar: " + isiKomentar + "

"); + sb.append("
  • "+name+"

    "+date+"

    "+isiKomentar+"

  • "); } response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java index ef015fc8..6a953c6a 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LoginServlet.java @@ -82,24 +82,9 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) response.sendRedirect("Login.jsp"); } else { session.setAttribute("currentUser", user); - response.sendRedirect("UserLogged.jsp"); + response.sendRedirect("PublishedPosts"); } - -// String emailUser = ""; -// Cookie[] cookies = request.getCookies(); -// for (Cookie cookie : cookies) { -// if (cookie.getName().equals("wbdahey")) { -// emailUser = cookie.getValue(); -// break; -// } -// } - -// if (!emailUser.equals("")) { -// request.getSession().setAttribute("currentUser", user); -// response.sendRedirect("UserLogged.jsp"); -// } else { -// response.sendRedirect("Login.jsp"); -// } + processRequest(request, response); } catch (Exception e) { e.printStackTrace(); @@ -132,9 +117,11 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) request.getSession().setAttribute("currentUser", user); // this.getServletConfig().getServletContext().setAttribute("currentUser", user); - response.sendRedirect("UserLogged.jsp"); + response.sendRedirect("PublishedPosts"); } else if (!user.getValid()) { - response.sendRedirect("InvalidLogin.jsp"); + request.getSession().setAttribute("forbidden", "Username/Password tidak valid"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.sendRedirect("Uuuppssss.jsp"); } processRequest(request, response); } catch (Exception e) { diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java index e16a2d9d..f1316079 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/LogoutServlet.java @@ -63,7 +63,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) request.getSession().setAttribute("currentUser", null); - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); processRequest(request, response); } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishPostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishPostServlet.java index cd65ef5e..4b36f145 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishPostServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishPostServlet.java @@ -58,13 +58,13 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) if (request.getSession().getAttribute("currentUser") == null || ((User)request.getSession().getAttribute("currentUser")).getRole().equals("Owner")) { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } else { if (!PostDAO.publish(Integer.valueOf(id))) { - request.getSession().setAttribute("PublishPostStatus", "Post dengan id " + id + " gagal di-publish"); + request.getSession().setAttribute("PublishPostStatus", "Post (id = " + id + ") tidak berhasil di-publish"); response.sendRedirect("PublishPostStatus.jsp"); } else { - request.getSession().setAttribute("PublishPostStatus", "Post dengan id" + id + " berhasil di-publis"); + request.getSession().setAttribute("PublishPostStatus", "Post (id = " + id + ") berhasil di-publish"); response.sendRedirect("PublishPostStatus.jsp"); } } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java index 6de18464..f8ccacd6 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PublishedPostsServlet.java @@ -54,8 +54,7 @@ protected void processRequest(HttpServletRequest request, HttpServletResponse re @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - + ArrayList publishedPosts = PostDAO.getAllPublishedPosts(); request.getSession().setAttribute("allPublishedPosts", publishedPosts); response.sendRedirect("PublishedPost.jsp"); diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java index 4590f3dc..dc0d57c4 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RegisterServlet.java @@ -56,7 +56,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) if (request.getSession().getAttribute("currentUser") == null || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } else { response.sendRedirect("Register.jsp"); } @@ -83,10 +83,10 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) if (UserDAO.register(user)) { request.getSession().setAttribute("registerUser", "User dengan email " + request.getParameter("email") + " berhasil ditambahkan"); - response.sendRedirect("SuccessfullyAdded.jsp"); + response.sendRedirect("RegistrationStatus.jsp"); } else { - request.getSession().setAttribute("registerUser", "Email telah digunakan"); - response.sendRedirect("RegisterFailed.jsp"); + request.getSession().setAttribute("registerUser", "Email " + request.getParameter("email") + " telah digunakan"); + response.sendRedirect("RegistrationStatus.jsp"); } processRequest(request, response); } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java index 6bb9e160..bf453d63 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SaveCommentServlet.java @@ -94,9 +94,10 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) String name = komentar.getName(); String date = komentar.getTanggal().toString(); String isiKomentar = komentar.getKomentar(); - sb.append("Nama: " + name + "
    "); - sb.append("Tanggal: " + date + "
    "); - sb.append("Komentar: " + isiKomentar + "

    "); +// sb.append("Nama: " + name + "
    "); +// sb.append("Tanggal: " + date + "
    "); +// sb.append("Komentar: " + isiKomentar + "

    "); + sb.append("
  • "+name+"

    "+date+"

    "+isiKomentar+"

  • "); } response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UnpublishedPostsServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UnpublishedPostsServlet.java index 3dbb9f6a..50dab234 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UnpublishedPostsServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UnpublishedPostsServlet.java @@ -56,7 +56,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getSession().getAttribute("currentUser") == null || ((User)request.getSession().getAttribute("currentUser")).getPassword().equals("Owner")) { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } else { ArrayList unpublishedPosts = PostDAO.getAllUnpublishedPosts(); request.getSession().setAttribute("allUnpublishedPosts", unpublishedPosts); diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdatePostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdatePostServlet.java index 412abe16..e5a8630f 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdatePostServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdatePostServlet.java @@ -62,14 +62,14 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) String id = request.getParameter("id"); if (request.getSession().getAttribute("currentUser") == null) { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } else { Post editedPost = PostDAO.getPost(Integer.valueOf(id)); if (editedPost != null) { request.getSession().setAttribute("editedPost", editedPost); response.sendRedirect("EditPost.jsp"); } else { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } } processRequest(request, response); diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java index f9b7e457..8bb39582 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UpdateUserServlet.java @@ -60,14 +60,14 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) if (request.getSession().getAttribute("currentUser") == null || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin") || email.equals("") || email == null) { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } else { User editedUser = UserDAO.getUser(email); if (editedUser != null) { request.getSession().setAttribute("editedUser", editedUser); response.sendRedirect("EditUser.jsp"); } else { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } } processRequest(request, response); @@ -93,11 +93,11 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) user.setRole(request.getParameter("role")); if (UserDAO.update(user)) { - request.getSession().setAttribute("updateUser", "User dengan id " + request.getParameter("id") + " berhasil di-update"); - response.sendRedirect("SuccessfullyUpdated.jsp"); + request.getSession().setAttribute("updateUser", "User (id = " + request.getParameter("id") + ") berhasil di-update"); + response.sendRedirect("UpdateUserStatus.jsp"); } else { - request.getSession().setAttribute("updateUser", "Gagal meng-update user dengan id " + request.getParameter("id")); - response.sendRedirect("UpdateFailed.jsp"); + request.getSession().setAttribute("updateUser", "User (id = " + request.getParameter("id") + ") tidak berhasil di-update"); + response.sendRedirect("UpdateUserStatus.jsp"); } processRequest(request, response); } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java index 64a56c66..dfd79019 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UserManagementServlet.java @@ -57,7 +57,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) if (request.getSession().getAttribute("currentUser") == null || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { - response.sendRedirect("Login.jsp"); + response.sendRedirect("PublishedPosts"); } else { ArrayList users = UserDAO.getAllUsers(); request.getSession().setAttribute("allUsers", users); diff --git a/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp b/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp index d0adcd7c..4dc1b654 100644 --- a/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/AddNewPost.jsp @@ -10,29 +10,75 @@ - JSP Page + + + Simple Blog | Add New Post <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPosts"); } if (currentUser.getRole().equals("Editor")) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "UserLogged.jsp"); + response.setHeader("Location", "PublishedPosts"); } %> - -
    - Judul -
    - Tanggal -
    - Konten - - - - - + +
    + + + +
    +

    -

    + +
    +
    +

    Add New Post

    + +
    +
    + + + + + + +
    + + + + +
    +
    +
    +
    + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/web/AddNewPostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/AddNewPostStatus.jsp index fde2a39f..83c5129b 100644 --- a/IF3110-02-Simple-Blog-Java/web/AddNewPostStatus.jsp +++ b/IF3110-02-Simple-Blog-Java/web/AddNewPostStatus.jsp @@ -10,24 +10,66 @@ - JSP Page - - + + + Simple Blog | Add New Post + <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPosts"); } if (currentUser.getRole().equals("Editor")) { +// request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin dan Owner"); response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "UserLogged.jsp"); + response.setHeader("Location", "PublishedPosts"); } - %> - -

    Status: <%= (String)request.getSession().getAttribute("AddNewPostStatus") %>

    + %> + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("AddNewPostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + diff --git a/IF3110-02-Simple-Blog-Java/web/Blog.jsp b/IF3110-02-Simple-Blog-Java/web/Blog.jsp deleted file mode 100644 index cf2bec1d..00000000 --- a/IF3110-02-Simple-Blog-Java/web/Blog.jsp +++ /dev/null @@ -1,38 +0,0 @@ -<%-- - Document : Blog.jsp - Created on : Nov 23, 2014, 7:21:51 PM - Author : Asep Saepudin ---%> - -<%@page import="wbd.tubesII.User"%> -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - -
    - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - - User currentUser = (User)request.getSession().getAttribute("currentUser"); - %> - - <% if (currentUser.getRole().equals("Admin")) { %> -
    User Management - <% } %> - <% if (currentUser.getRole().equals("Admin") || currentUser.getRole().equals("Owner")) { %> -
    Add New Post - <% } %> -
    View Published Posts - <% if (currentUser.getRole().equals("Admin") || currentUser.getRole().equals("Editor")) { %> -
    View Unpublished Posts - <% } %> -
    - - diff --git a/IF3110-02-Simple-Blog-Java/web/DeletePostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/DeletePostStatus.jsp index e5a28c06..05fd22de 100644 --- a/IF3110-02-Simple-Blog-Java/web/DeletePostStatus.jsp +++ b/IF3110-02-Simple-Blog-Java/web/DeletePostStatus.jsp @@ -16,20 +16,61 @@ - JSP Page + + + Simple Blog | Delete Post - + <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPosts"); } - %> - -

    Status: <%= (String)request.getSession().getAttribute("DeletePostStatus") %>

    + %> + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("DeletePostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + diff --git a/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp b/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp deleted file mode 100644 index 2d8b1f47..00000000 --- a/IF3110-02-Simple-Blog-Java/web/DeletionFailed.jsp +++ /dev/null @@ -1,26 +0,0 @@ -<%-- - Document : DeletionFailed - Created on : Nov 23, 2014, 6:23:16 PM - Author : Asep Saepudin ---%> - -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - %> - -

    Error: <%= (String)request.getSession().getAttribute("deleteUser") %>

    -
    - view - - diff --git a/IF3110-02-Simple-Blog-Java/web/DeletionStatus.jsp b/IF3110-02-Simple-Blog-Java/web/DeletionStatus.jsp new file mode 100644 index 00000000..7cc60c28 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/DeletionStatus.jsp @@ -0,0 +1,69 @@ +<%-- + Document : DeletionFailed + Created on : Nov 23, 2014, 6:23:16 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Delete User + + <% + if (request.getSession().getAttribute("currentUser") == null + || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("deleteUser") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/web/EditPost.jsp b/IF3110-02-Simple-Blog-Java/web/EditPost.jsp index 7e79e7f4..46148d96 100644 --- a/IF3110-02-Simple-Blog-Java/web/EditPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/EditPost.jsp @@ -14,37 +14,84 @@ - JSP Page - - + + + Simple Blog | Edit Post + <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPosts"); } Post editedPost = (Post)request.getSession().getAttribute("editedPost"); if (editedPost == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "UserLogged.jsp"); + response.setHeader("Location", "PublishedPosts"); } - %> -
    - Judul -
    - Tanggal - <% - Date date = editedPost.getTanggal(); - Format formatter = new SimpleDateFormat("MM/dd/yyyy"); - %> -
    - Konten - - - - - - - + %> + +
    + + + +
    +

    -

    + +
    +
    +

    Edit Post

    + +
    +
    + + + + + + + <% + Date date = editedPost.getTanggal(); + Format formatter = new SimpleDateFormat("MM/dd/yyyy"); + %> + + + +
    + + + + +
    +
    +
    +
    + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/web/EditUser.jsp b/IF3110-02-Simple-Blog-Java/web/EditUser.jsp index 1bf653b2..3ad3b321 100644 --- a/IF3110-02-Simple-Blog-Java/web/EditUser.jsp +++ b/IF3110-02-Simple-Blog-Java/web/EditUser.jsp @@ -10,13 +10,15 @@ - JSP Page + + + Simple Blog | Edit User <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPosts"); } if (!currentUser.getRole().equals("Admin")) { request.getSession().setAttribute("adminOnly", "Psst! Halaman khusus Admin"); @@ -26,25 +28,77 @@ User editedUser = (User)request.getSession().getAttribute("editedUser"); if (editedUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "UserManagement.jsp"); + response.setHeader("Location", "UserManagement"); } %> - -
    -
    - Email -
    - Password -
    - Name -
    - Role: - - - - + + +
    + + + +
    + + +

    -

    + +
    +
    +

    Edit User

    + +
    +
    +
    + + + + + + + + + + + + +
    + + +
    +
    +
    + +
    + + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/web/Index.jsp b/IF3110-02-Simple-Blog-Java/web/Index.jsp deleted file mode 100644 index 697729fe..00000000 --- a/IF3110-02-Simple-Blog-Java/web/Index.jsp +++ /dev/null @@ -1,17 +0,0 @@ -<%-- - Document : index - Created on : Nov 20, 2014, 11:37:46 PM - Author : Asep Saepudin ---%> - -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - - login - - diff --git a/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp b/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp deleted file mode 100644 index b3d2eb5c..00000000 --- a/IF3110-02-Simple-Blog-Java/web/InvalidLogin.jsp +++ /dev/null @@ -1,20 +0,0 @@ -<%-- - Document : invalidLogin - Created on : Nov 20, 2014, 8:34:48 PM - Author : Asep Saepudin ---%> - -<%@page import="wbd.tubesII.User"%> -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - -
    - Sorry, you are not a registered user! Please sign up first -
    - - diff --git a/IF3110-02-Simple-Blog-Java/web/Login.jsp b/IF3110-02-Simple-Blog-Java/web/Login.jsp index 6e0f2d41..d0d98197 100644 --- a/IF3110-02-Simple-Blog-Java/web/Login.jsp +++ b/IF3110-02-Simple-Blog-Java/web/Login.jsp @@ -11,21 +11,63 @@ - JSP Page - - - <% if (request.getSession().getAttribute("currentUser") == null) { %> -
    - Email -
    - Password - - - - <% } else { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "UserLogged.jsp"); - } - %> - + + + Simple Blog | Login + + <% if (request.getSession().getAttribute("currentUser") != null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    +

    -

    + +
    +
    +

    Login

    + +
    +
    + + + + + + + + +
    +
    +
    +
    + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/web/Logout.jsp b/IF3110-02-Simple-Blog-Java/web/Logout.jsp deleted file mode 100644 index 214cd1cd..00000000 --- a/IF3110-02-Simple-Blog-Java/web/Logout.jsp +++ /dev/null @@ -1,17 +0,0 @@ -<%-- - Document : logout - Created on : Nov 20, 2014, 11:14:08 PM - Author : Asep Saepudin ---%> - -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - - logout - - diff --git a/IF3110-02-Simple-Blog-Java/web/PublishPostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/PublishPostStatus.jsp index c2740ff4..57cfa881 100644 --- a/IF3110-02-Simple-Blog-Java/web/PublishPostStatus.jsp +++ b/IF3110-02-Simple-Blog-Java/web/PublishPostStatus.jsp @@ -10,24 +10,65 @@ - JSP Page + + + Simple Blog | Publish Post - <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPosts"); } if (currentUser.getRole().equals("Owner")) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "UserLogged.jsp"); + response.setHeader("Location", "PublishedPosts"); } %> - -

    Status: <%= (String)request.getSession().getAttribute("PublishPostStatus") %>

    + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("PublishPostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + diff --git a/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp index 2dd32d51..bb192535 100644 --- a/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp @@ -14,33 +14,80 @@ - JSP Page + + + Simple Blog | Published Posts - -
    Judul
    <%= publishedPosts.get(i).getJudul()%><%= publishedPosts.get(i).getJudul()%> <%= publishedPosts.get(i).getTanggal().toString() %> <%= publishedPosts.get(i).getKonten() %> v
    - - - - - - - - <% ArrayList publishedPosts = (ArrayList)request.getSession().getAttribute("allPublishedPosts"); + <% User currentUser = (User)request.getSession().getAttribute("currentUser"); %> + +
    + + + +
    +
    +
    - - - - - - - - <% } %> -
    JudulTanggalKontenEditHapus
    <%= publishedPosts.get(i).getJudul()%><%= publishedPosts.get(i).getTanggal().toString() %><%= publishedPosts.get(i).getKonten() %>vx
    - + %> +
  • +
    +

    <%= publishedPosts.get(i).getJudul()%>

    +
    <%= publishedPosts.get(i).getTanggal() %>
    +
    Featured
    +
    +

    <%= publishedPosts.get(i).getKonten() %> …

    +

    <% if (currentUser != null) { %> + Edit | Delete + <% } %> +

    +
  • + <% } %> + + + + + + + + + + diff --git a/IF3110-02-Simple-Blog-Java/web/Register.jsp b/IF3110-02-Simple-Blog-Java/web/Register.jsp index dee03a45..c7952841 100644 --- a/IF3110-02-Simple-Blog-Java/web/Register.jsp +++ b/IF3110-02-Simple-Blog-Java/web/Register.jsp @@ -10,13 +10,15 @@ - JSP Page + + + Simple Blog | Add New User <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPosts"); } if (!currentUser.getRole().equals("Admin")) { request.getSession().setAttribute("adminOnly", "Psst! Halaman khusus Admin"); @@ -24,21 +26,72 @@ response.setHeader("Location", "AdminOnly.jsp"); } %> - -
    - Email -
    - Password -
    - Name -
    - Role: - - -
    - + + +
    + + + +
    + + +

    -

    + +
    +
    +

    Add New User

    + +
    +
    + + + + + + + + + + + +
    + +
    +
    +
    +
    + +
    + + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp b/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp deleted file mode 100644 index e787029e..00000000 --- a/IF3110-02-Simple-Blog-Java/web/RegisterFailed.jsp +++ /dev/null @@ -1,27 +0,0 @@ -<%-- - Document : registerfailed - Created on : Nov 20, 2014, 10:52:29 PM - Author : Asep Saepudin ---%> - -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - %> - -

    Register failed

    - Error: <%= (String)request.getSession().getAttribute("registerUser") %> -
    - view - - diff --git a/IF3110-02-Simple-Blog-Java/web/RegistrationStatus.jsp b/IF3110-02-Simple-Blog-Java/web/RegistrationStatus.jsp new file mode 100644 index 00000000..ecdd4c66 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/RegistrationStatus.jsp @@ -0,0 +1,68 @@ +<%-- + Document : registerfailed + Created on : Nov 20, 2014, 10:52:29 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | User Management + + <% + if (request.getSession().getAttribute("currentUser") == null + || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("registerUser") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp b/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp deleted file mode 100644 index 1d571488..00000000 --- a/IF3110-02-Simple-Blog-Java/web/SuccessfullyAdded.jsp +++ /dev/null @@ -1,25 +0,0 @@ -<%-- - Document : successfullyadded - Created on : Nov 20, 2014, 10:51:57 PM - Author : Asep Saepudin ---%> - -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - %> -

    Success: <%= (String)request.getSession().getAttribute("registerUser") %>

    -
    - view - - diff --git a/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp b/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp deleted file mode 100644 index 02fe3800..00000000 --- a/IF3110-02-Simple-Blog-Java/web/SuccessfullyDeleted.jsp +++ /dev/null @@ -1,25 +0,0 @@ -<%-- - Document : SuccessfullyDeleted - Created on : Nov 23, 2014, 6:22:36 PM - Author : Asep Saepudin ---%> - -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - %> -

    Success: <%= (String)request.getSession().getAttribute("deleteUser") %>

    -
    - view - - diff --git a/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp b/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp deleted file mode 100644 index 51c7de53..00000000 --- a/IF3110-02-Simple-Blog-Java/web/SuccessfullyUpdated.jsp +++ /dev/null @@ -1,25 +0,0 @@ -<%-- - Document : SuccessfullyUpdated - Created on : Nov 23, 2014, 7:04:52 PM - Author : Asep Saepudin ---%> - -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - %> -

    Success: <%= (String)request.getSession().getAttribute("updateUser") %>

    -
    - view - - diff --git a/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp b/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp index 3a4b9bd0..b7092131 100644 --- a/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp @@ -13,44 +13,93 @@ - JSP Page + + + Simple Blog | Unpublished Posts <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPosts"); } if (currentUser.getRole().equals("Owner")) { - request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin Editor"); +// request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin dan Editor"); response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Uuuppssss.jsp"); + response.setHeader("Location", "PublishedPosts"); } %> - - - - - - - - - - <% ArrayList unpublishedPosts = (ArrayList)request.getSession().getAttribute("allUnpublishedPosts"); + + +
    + + + +
    +
    +
    - - - - - - - <% } %> -
    JudulTanggalKontenEditPublish
    <%= unpublishedPosts.get(i).getJudul()%><%= unpublishedPosts.get(i).getTanggal().toString() %><%= unpublishedPosts.get(i).getKonten() %>vx
    - + %> +
  • +
    +

    <%= unpublishedPosts.get(i).getJudul()%>

    +
    <%= unpublishedPosts.get(i).getTanggal() %>
    +
    Featured
    +
    +

    <%= unpublishedPosts.get(i).getKonten() %> …

    +

    + Edit | Publish +

    +
  • + <% } %> + + + + + + + + + + + diff --git a/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp b/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp deleted file mode 100644 index c2ff42db..00000000 --- a/IF3110-02-Simple-Blog-Java/web/UpdateFailed.jsp +++ /dev/null @@ -1,33 +0,0 @@ -<%-- - Document : UpdateFailed - Created on : Nov 23, 2014, 7:05:28 PM - Author : Asep Saepudin ---%> - -<%-- - Document : registerfailed - Created on : Nov 20, 2014, 10:52:29 PM - Author : Asep Saepudin ---%> - -<%@page contentType="text/html" pageEncoding="UTF-8"%> - - - - - JSP Page - - - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - %> - -

    Update failed

    - Error: <%= (String)request.getSession().getAttribute("updateUser") %> -
    - view - - diff --git a/IF3110-02-Simple-Blog-Java/web/UpdatePostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/UpdatePostStatus.jsp index 6df32337..112a970c 100644 --- a/IF3110-02-Simple-Blog-Java/web/UpdatePostStatus.jsp +++ b/IF3110-02-Simple-Blog-Java/web/UpdatePostStatus.jsp @@ -10,20 +10,60 @@ - JSP Page - - + + + Simple Blog | Update Post + <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPosts"); } - %> - -

    Status: <%= (String)request.getSession().getAttribute("UpdatePostStatus") %>

    + %> + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("UpdatePostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + diff --git a/IF3110-02-Simple-Blog-Java/web/UpdateUserStatus.jsp b/IF3110-02-Simple-Blog-Java/web/UpdateUserStatus.jsp new file mode 100644 index 00000000..04b03b69 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/UpdateUserStatus.jsp @@ -0,0 +1,68 @@ +<%-- + Document : SuccessfullyUpdated + Created on : Nov 23, 2014, 7:04:52 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | User Management + + <% + if (request.getSession().getAttribute("currentUser") == null + || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("updateUser") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp b/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp deleted file mode 100644 index 4ae299d9..00000000 --- a/IF3110-02-Simple-Blog-Java/web/UserLogged.jsp +++ /dev/null @@ -1,42 +0,0 @@ -<%-- - Document : userLogged - Created on : Nov 20, 2014, 8:31:36 PM - Author : Asep Saepudin ---%> -<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%> -<%@page import="wbd.tubesII.User"%> - - - - - JSP Page - - -
    - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - - User currentUser = (User)request.getSession().getAttribute("currentUser"); - %> - Welcome <%= currentUser.getName() + " -- " + currentUser.getEmail() %> - || You are an - <%= currentUser.getRole() %> - - - <% if (currentUser.getRole().equals("Admin")) { %> -
    User Management - <% } %> - <% if (currentUser.getRole().equals("Admin") || currentUser.getRole().equals("Owner")) { %> -
    Add New Post - <% } %> -
    View Published Posts - <% if (currentUser.getRole().equals("Admin") || currentUser.getRole().equals("Editor")) { %> -
    View Unpublished Posts - <% } %> -
    Logout -
    - - diff --git a/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp b/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp index 781d29fa..2502890e 100644 --- a/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp +++ b/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp @@ -13,45 +13,83 @@ - JSP Page - + + + Simple Blog | User Management + <% User currentUser = (User)request.getSession().getAttribute("currentUser"); if (currentUser == null) { response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); + response.setHeader("Location", "PublishedPostsLogin.jsp"); } if (!currentUser.getRole().equals("Admin")) { - request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin"); +// request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin"); response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Uuuppssss.jsp"); + response.setHeader("Location", "PublishedPosts.jsp"); } %> - - - - - - - - - - <% ArrayList users = (ArrayList)request.getSession().getAttribute("allUsers"); + + +
    + + + +
    +
    +
    - - - - - - - <% } %> -
    NameEmailRoleEditHapus
    <%= users.get(i).getName() %><%= users.get(i).getEmail() %><%= users.get(i).getRole() %>vx
    - Add New User - + %> +
  • +
    +

    <%= users.get(i).getName() %>

    +
    +

    Email: <%= users.get(i).getEmail() %>

    +

    Role: <%= users.get(i).getRole() %>

    +

    + Edit | Hapus +

    +
  • + <% } %> + + + + + + + + + + diff --git a/IF3110-02-Simple-Blog-Java/web/Uuuppssss.jsp b/IF3110-02-Simple-Blog-Java/web/Uuuppssss.jsp index dd938817..df6b229d 100644 --- a/IF3110-02-Simple-Blog-Java/web/Uuuppssss.jsp +++ b/IF3110-02-Simple-Blog-Java/web/Uuuppssss.jsp @@ -9,18 +9,52 @@ - JSP Page - - - <% - if (request.getSession().getAttribute("currentUser") == null) { - response.setStatus(response.SC_MOVED_TEMPORARILY); - response.setHeader("Location", "Login.jsp"); - } - %> + + + Simple Blog | Ups + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("forbidden") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + diff --git a/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp index 5a7bae7c..b4fd5a11 100644 --- a/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp @@ -11,7 +11,9 @@ - JSP Page + + + Simple Blog | View Post <% Post post = (Post)request.getSession().getAttribute("post"); @@ -19,44 +21,95 @@ response.setStatus(response.SC_MOVED_TEMPORARILY); response.setHeader("Location", "PublishedPosts"); } - %> - - Judul :
    - <%= post.getJudul() %>

    - Tanggal :
    - <%= post.getTanggal().toString() %>

    - Konten
    - <%= post.getKonten() %>


    - + %> <% User currentUser = (User)request.getSession().getAttribute("currentUser"); %> -
    - - - <% if (currentUser == null) { %> - - <% } else {%> - - <% }%> -
    - - <% if (currentUser == null) { %> - - <% } else {%> - - <% }%> -
    -
    - - - -
    + + +
    + + + +
    + +
    +
    + +

    <%= post.getJudul() %>

    +

    +
    +
    + +
    +
    +
    +

    <%= post.getKonten() %>

    + +
    + + <% if (post.getStatus().equals("Published")) { %> +

    Komentar

    + +
    +
    + + + + <% if (currentUser == null) { %> + + <% } else {%> + + <% }%> + + + <% if (currentUser == null) { %> + + <% } else {%> + + <% }%> + +
    + + + +
    +
    + +
      + +
    + <% } %> +
    +
    + +
    + + + +
    + diff --git a/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml b/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml index 8ad18f08..d310ba83 100644 --- a/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml +++ b/IF3110-02-Simple-Blog-Java/web/WEB-INF/web.xml @@ -19,7 +19,7 @@ - faces/Login + faces/PublishedPosts diff --git a/IF3110-02-Simple-Blog-Java/web/assets/css/screen.css b/IF3110-02-Simple-Blog-Java/web/assets/css/screen.css new file mode 100644 index 00000000..ea2188e4 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/assets/css/screen.css @@ -0,0 +1,862 @@ +@import url(http://fonts.googleapis.com/css?family=Open+Sans); +@import url(http://fonts.googleapis.com/css?family=Questrial); + +/* Reset & Basics (Inspired by E. Meyers) +================================================== */ +html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, address, cite, code, em, img, small, strong, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, embed, figure, figcaption, footer, header, hgroup, menu, nav, section, summary, time, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; } +article, aside, details, figcaption, figure, footer, header, hgroup, menu, time, nav, section { + display: block; } +html, body, .wrapper { + min-height: 100%; +} + + +/* Body +================================================== */ +html, body { + height: 100%; +} +.wrapper { + min-height: 100%; +} +body { + overflow-x: hidden; + font: 17px/28px ff-meta-serif-web-pro, "Georgia", serif; + color: #333; + background: #fff; +} + + +/* Typography +================================================== */ +h1, h2, h3, h4, h5, h6 { + font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif; + font-weight: normal; + text-transform: uppercase; + font-weight: 700; + color: #000; + text-rendering: optimizeLegibility; +} + +h1 { + font-size: 50px; + padding-bottom: 30px; +} + +h2 { + font-size: 45px; + padding-bottom: 10px; + padding-top: 50px; +} + +h3 { + font-size: 40px; + /* padding-bottom: 60px; */ +} + +h4 { + font-size: 35px; + padding-bottom: 15px; +} + +h5 { + font-size: 30px; + padding-bottom: 10px; +} + +p { + margin: 0 0 28px 0; +} + +strong { + font-weight: bold; +} +em { + font-style: italic; +} +sup { + line-height: 0; +} + +small { + font-size: 70%; +} + +cite { + font-size: 80%; + font-style: italic; + } + +/* Teaser +================================================== */ + +header#teaser h1 { + text-transform: none !important; + color: #333; + font-size: 28px !important; + font-weight: 300 !important; +} + + +/* Links +================================================== */ +a { + color: #F40034; + text-decoration: none; + -webkit-transition: color .2s ease-in-out; + -moz-transition: color .2s ease-in-out; + transition: color .2s ease-in-out; +} +a:hover { + color: #F40034; +} + +/* Layout +================================================== */ +/* White container that is the "page" */ +.wrapper { + max-width: 1500px; + margin: 0 auto; + background: #fff; +} + +/* Containers to keep content to a set width */ +.nav, +.art-header-inner, +.footer, +.art-list, +.abt, +.fourohfour { + width: 980px; +} +.nav, +.art-body-inner, +.footer, +.art-list, +.abt, +.fourohfour { + position: relative; + margin: 0 auto; +} + +/* Nav +================================================== */ +.nav { + position: absolute; + top: 0; + left: 50%; + height: 70px; + padding-top: 40px; + margin-left: -490px; /* Half width of nav */ + border-bottom: 1px solid #333; + z-index: 2; +} +.nav.fixed { + position: fixed; +} +#logo { + float: left; +} +.nav-primary { + float: right; +} +.nav-primary li { + display: inline-block; + margin-left: 10px; + font-weight: 500; +} +#logo h1, +.nav-primary li, +.nav-primary li a { + font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif; + font-weight: 700; + font-size: 13px; + line-height: 30px; + color: #000; + text-transform: uppercase; +} + +#logo h1 { + height: 30px; + margin-left: 0px; + letter-spacing: 1px; + font-family: 'Questrial', sans-serif; + font-size: 30px; +} + +#logo h1 span{ + color: #F40034 !important; +} + +.nav li:first-child { + margin-left: 0; /* Remove left margin from the first nav li */ +} + +/* Home Page +================================================== */ + +div#home {} + +#home > div.cover { + max-width: 980px; + margin: 0px auto; + /*padding-top: 110px;*/ +} + +div.cover { + +} + +div.cover > img { + width: 100%; + height: 100%; +} + + +/* Article +================================================== */ +.art { + margin-top: -131px; +} +/* Header */ +.art-header { + height: 700px; + /* Background image is defined in the post */ + background-position: top center; + background-attachment: fixed; + overflow: hidden; +} +/* Contains the time, title and subtitle for an article */ +.art-header-inner { + position: absolute; + top: 300px; + left: 50%; + margin-left: -490px; +} +.art-time, +.art-title, +.art-subtitle { + text-align: center; + text-transform: uppercase; +} +.art-time { + font-size: 14px; + line-height: 1.8; + letter-spacing: 4px; +} +.art-title { + font-size: 50px; + line-height: .9; + letter-spacing: -2px; + width: 100%; +} +.art-subtitle { + margin-top: 4px; + font-size: 14px; + line-height: 1.3; + letter-spacing: 4px; +} + +/* If small header, make few adjustments */ +.small .art-title { + font-size: 70px; + line-height: 65px; +} +.small.art-header-inner { + top: 320px; +} + +/* Body */ +.art-body { + position: relative; + width: 100%; + background: #fff; + z-index: 100; + -webkit-box-shadow: 0 -3px 3px rgba(0,0,0,.2); + -moz-box-shadow: 0 -3px 3px rgba(0,0,0,.2); + box-shadow: 0 -3px 3px rgba(0,0,0,.2); +} +.art-body-inner { + font-family: Georgia,Cambria,"Times New Roman",Times,serif; + max-width: 640px; + padding: 80px 0 50px; + letter-spacing: 0.01rem; + font-weight: 400; + font-style: normal; + font-size: 21px; + line-height: 1.5; +} +.art-body-inner a:hover { + border-bottom: 1px solid #F40034; + padding-bottom:2px; +} +.art-body-inner ul, +.art-body-inner ol { /* For lists in the article body */ + margin-bottom: 26px; +} +.art-body-inner ul li { + list-style: disc; +} + +.art-body-inner mark { + background-color: #fdffb6; + padding: 2px; + -webkit-box-shadow: #fdffb6 0 0 5px; + -moz-box-shadow: #fdffb6 0 0 5px; + box-shadow: #fdffb6 0 0 5px; +} + +.art-body-inner blockquote { + font-size: 16px; + background: #f9f9f9; + border-left: 10px solid #ccc; + margin: 1.5em 10px; + padding: 0.5em 10px; + quotes: "\201C""\201D""\2018""\2019"; +} + +.art-body-inner blockquote p:first-child:before { + color: #ccc; + content: "?"; + font-size: 4em; + line-height: 0.1em; + margin-right: 0.25em; + vertical-align: -0.4em; +} + +.art-body-inner blockquote p { + margin-bottom: 1.5em; +} + +.art-body-inner blockquote p:last-child { + margin-bottom: 0; +} + + +.dropcap { /* First character on articles */ + float: left; + margin: 47px 10px 20px 0; + font-size: 100px; + line-height: 0; +} +.art-subhead { /* Subheads are used to break up sections of an article */ + margin: 60px 0 15px; + font-size: 20px; + line-height: 28px; + letter-spacing: 3px; +} +.callout { /* Callouts are like large pullquotes */ + font-weight: bold; +} +.art-body-inner img { + max-width: 100%; + max-height: 600px; + margin-bottom: 26px; +} +.art-body-inner img.center { + display: block; + margin-left: auto; + margin-right: auto; +} +.art-body-inner .art-reference { + font-size: 80%; + color: #999; + margin-top: 50px; +} + +/* For simple, white background posts */ +.simple .art-body { + background: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + + +/* List of Articles +================================================== */ +.art-list { + padding: 120px 0 0; +} +.art-list-body { + position: relative; + overflow: hidden; +} +.art-list-item { + padding: 40px 0; + list-style: none; + overflow: hidden; + border-bottom: 1px solid #ccc; +} +.art-list-item:last-child { + border-bottom: none; +} +.art-list-title { + font-size: 26px; + line-height: 26px; + font-weight: 700; +} +.art-list-item-title-and-time { + float: left; + width: 30%; + margin-bottom: 10px; +} +.art-list-time { + font-size: 12px; + line-height: 20px; + letter-spacing: 2px; + text-transform: uppercase; + color: #999; +} +.art-list-title a { + color: #000; +} +.art-list-title a:hover { + color: #F40034; +} +.art-list-item p { + width: 65%; + float: left; + margin-left: 5%; + margin-bottom: 0; + font-size: 16px; + line-height: 24px; +} + + +/* Footer +================================================== */ +.footer { + padding: 30px 40px; + overflow: hidden; + border-top: 1px solid #ccc; +} +.footer, +.footer a { + font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif; + font-size: 13px; + text-transform: uppercase; + color: #777; +} +.footer a:hover { + color: #000; +} +.back-to-top, +.footer-nav, +.offsite-links { + width: 45%; + float: left; +} +.psi { + width:10%; + float:left; + text-align: center; +} +.footer-nav { + text-align: center; +} +.offsite-links { + text-align: right; +} +.footer .twitter-link:hover { + color: #0084B4; +} +.footer .instagram-link:hover { + color: #3F729B; +} +.footer .github-link:hover { + color: #c5376d; +} +.footer .caffein8-link:hover{ + color: black; +} +.footer .rss-link:hover { + color: #e85d24; +} +/* Remove prev & next links on loop */ +.art-list + .footer .footer-nav, +.abt + .footer .footer-nav { + text-indent: -9999px; + text-align: left; +} + + +/* White Reverse Theme +================================================== */ +/* Nav */ +.nav.white { + border-bottom-color: #fff; + border-bottom-color: rgba(255,255,255,.3); +} +.nav.white li a, +.nav.white li, +.nav.white #logo h1 { + color: #fff; + text-shadow: 0 0 8px rgba(0,0,0,.5); +} +.nav.white #logo h1 { + background-position: top center; +} + +nav.pagination{ + text-align: right; + padding-bottom: 25px; +} +/* Art header */ +.art-header.white { + background-color: #111; +} +.art-header.white .art-time, +.art-header.white .art-title, +.art-header.white .art-subtitle { + color: #fff; + text-shadow: 0 0 8px rgba(0,0,0,.5); +} + + +/* About page +================================================== */ +.abt { + padding: 200px 0 100px; + list-style: none; +} +.abt .abt-header { + font-size: 140px; + line-height: 1; + text-transform: none; +} +.abt .abt-subheader { + font-size: 24px; + font-style: italic; + text-transform: none; + color: #777; +} +.abt-body { + -moz-column-count: 2; + -moz-column-gap: 20px; + -webkit-column-count: 2; + -webkit-column-gap: 20px; + margin-bottom: 28px; +} +.abt-signoff { + line-height: 1.3; + font-style: italic; + color: #777; +} + +/* 404 page +================================================== */ +.fourohfour { + padding: 240px 0 100px; + text-align: center; +} + +/* Code +================================================== */ + +code, tt { +background: #ededee; +color: #3C4043; +font-size: 90%; +padding: 1px 3px; +} + +pre { + width: 92%; + overflow: auto; + margin: 2rem 0; + padding: 1rem 0.8rem 1rem 1.2rem; + color: #3f3b36; + border: 1px solid #ccc; + border-left: 1rem solid #ccc; + font: lighter 1.2rem/2rem monospace; + background: url(/assets/img/pre.png) repeat 0 -0.9rem; + background-size: 1px 4rem; +} + +pre code, tt { +font-size: inherit; +white-space: -moz-pre-wrap; +white-space: pre-wrap; +background: transparent; +border: none; +padding: 0; +} + + +.gist { + font-size: 14px; +} + + +/* Responsive +================================================== */ +@media only screen and (max-width: 1080px) { + /* Set all of the 980 containers to flexible width */ + .nav, + .art-body-inner, + .art-header-inner, + .footer, + .art-list, + .abt, + .fourohfour { + width: 90%; + } + .nav, + .art-header-inner { + margin-left: -45%; + } +} + +@media only screen and (max-width: 1024px) { + /* Everything becomes scrolling and non-fading */ + .nav, + .nav.fixed { + position: relative; + opacity: 1 !important; /* Important to override JS values */ + display: inline-block; + } + .art-header-inner { + position: relative; + top: 0 !important; /* Important to override JS values */ + margin-top: 240px !important; /* Important to override JS values */ + opacity: 1 !important; /* Important to override JS values */ + } + /* Articles no longer have fixed heights */ + .art-header { + height: auto; + padding-bottom: 100px; + background-size: cover !important; + background-attachment: scroll; + } + /* Remove bottom space out if articles doesn't have a background */ + .simple .art-header { + padding-bottom: 0; + } + .art-list { + padding-top: 0; + } + .abt { + padding: 40px 0; + } + .fourohfour { + padding: 80px 0 60px; + } +} + +@media only screen and (max-width: 780px) { + .art-body-inner ul, + .art-body-inner ol { + margin-left: 20px; + } + .art-title { + letter-spacing: 0; + } + .art-subtitle, + .art-time { + font-size: 12px; + } + .nav { + padding-top: 25px; + height: 55px; + } + .art-list-item-title-and-time, + .art-list-item p { + float: none; + width: auto; + margin-left: 0; + } + .abt-body { + -moz-column-count: 1; + -webkit-column-count: 1; + } +} + +@media only screen and (max-width: 500px) { + .nav-primary li { + margin-left: 10px; + } + .nav #logo h1 { + font-size: 16px; + letter-spacing: -1px; + } + .nav li a { + font-size: 12px; + } + .art-header { + padding-bottom: 50px; + } + .art-header-inner { + margin-top: 190px !important; + } + .art-body-inner { + padding-top: 30px; + } + body { + font-size: 15px; + line-height: 24px; + } + p { + margin-bottom: 24px; + } + .footer { + padding: 10px 0 20px; + } + .back-to-top, + .footer-nav { + width: 50%; + } + .back-to-top { + text-align: left; + } + .footer-nav { + text-align: right; + } + .offsite-links { + float: left; + width: 100%; + text-align: left; + } + .offsite-links a { + font-size: 12px; + } + .art-list + .footer .footer-nav { + display: none; + } + .abt .abt-header { + font-size: 80px; + } + .abt .abt-subheader { + font-size: 18px; + } +} + + +/* Misc +================================================== */ +::selection { + background: #000; + color: #fff; +} +::-moz-selection { + background: #000; + color: #fff; +} +img.left { + float: left; + margin-right: 20px; +} +img.right { + float: right; + margin-left: 20px; +} +/* Clearfixing pile */ +.nav:before, +.art-body-inner:before, +.footer:before, +.art-list:before { + content:""; + display:table; +} +.nav:after, +.art-body-inner:after, +.footer:after, +.art-list:after { + clear:both; +} +.nav, +.art-body-inner, +.footer, +.art-list { + zoom:1; /* For IE 6/7 (trigger hasLayout) */ +} + + +@-webkit-keyframes le-fade { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-moz-keyframes le-fade { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +.art-header-inner { + -webkit-animation: le-fade .5s 0 1 ease-out; + -moz-animation: le-fade .5s 0 1 ease-out; +} + +.art-list, +.nav, +.abt, +.art-body { + -webkit-animation: le-fade .5s 0s 1 ease-out; + -moz-animation: le-fade .5s 0s 1 ease-out; +} + +hr.featured-article { + padding: 0; + border: none; + border-top: medium double #bbb; + color: #bbb; + text-align: center; +} +hr.featured-article:after { + content: "? Featured Article ?"; + display: inline-block; + position: relative; + top: -0.8em; + font-size: 1.2em; + padding: 0 0.6em; + background: white; +} + +/* FORM */ + +#contact-area { + width: 600px; + margin-top: 25px; +} + +#contact-area input, #contact-area textarea { + padding: 5px; + width: 471px; + font-family: Helvetica, sans-serif; + margin: 0px 0px 10px 0px; + border: 2px solid #ccc; +} + +#contact-area textarea { + height: 90px; +} + +#contact-area textarea:focus, #contact-area input:focus { + border: 2px solid #900; +} + +#contact-area input.submit-button { + width: 100px; + +} + +label { + float: left; + text-align: right; + margin-right: 15px; + width: 100px; + padding-top: 5px; +} \ No newline at end of file diff --git a/IF3110-02-Simple-Blog-Java/web/assets/img/favicon.ico b/IF3110-02-Simple-Blog-Java/web/assets/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..40b40ed345847af1db325abe295a4d7c33cc51d9 GIT binary patch literal 799 zcmZ?wbhEHbRA5kGc$UeqZ{NPZfB)9j)^6Us`Olv}|Ni~^`SWLYcXw)Ps)K`rqod=Z zMT^$0Ti4v&eCN)c-@kvqef!qi+dDKg^!@wyU%q@%RaG@NH($Pd`GN%tl9G}xUc6XR zQu6E9FLibGuV25udiCn{>(}4Ee~*cY`SIh2tE=m-UAqn)I`rbji{9SeckkZKojdp0 zvuEz^?gtJWP*G9YxN+mzvuFMM{GL2{qNu1iW5$g8_wN@K6&V>BZQHi(@#DvNd3lzW zmLEQRxPANf_U+p*UAlDo^y%p6==k{fH*el_bab?~wpLVBeE$47J3IUC-Mhxd#!Hqg z@$m34Gc(J{$+Z^ zfgzJY2V@Q?P8it#H)J+7x3spkcXW1jck-(-hw?JH@v`)EtEXqoo}E5zdY96i*(uFN zj0-Y3q?&aXr)xJUr*kZjNcUQi$uByGv)MHxowvt!Rt9@B(;SH=f#c~~U98q~HZ(=d zNo?X+@6f5SID?ZlQ)UiZror)R3hjJv=A>l?%&`{^ew41l*Dk;$_GoTkf%6J>Eil=TJ#E=(?aY;SM|LZ4G}!4c(8v)yZsj{E+;CCD xp^pWP3S4uv5|&mxacW8Syewc*%yzV+uO-MJ;ZQ - -<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> -<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> - - - -<%-- - This file is an entry point for JavaServer Faces application. ---%> - - - - - JSP Page - - -

    - - -
    From 715a91baddf8ba65921fb82106067fddff6a4736 Mon Sep 17 00:00:00 2001 From: Asep Saepudin Date: Mon, 24 Nov 2014 06:46:40 +0700 Subject: [PATCH 07/10] Added schema database. --- IF3110-02-Simple-Blog-Java/db/schema.sql | 56 ++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 IF3110-02-Simple-Blog-Java/db/schema.sql diff --git a/IF3110-02-Simple-Blog-Java/db/schema.sql b/IF3110-02-Simple-Blog-Java/db/schema.sql new file mode 100644 index 00000000..92228517 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/db/schema.sql @@ -0,0 +1,56 @@ +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; + +CREATE SCHEMA IF NOT EXISTS `wbdhebat` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; +USE `wbdhebat` ; + +-- ----------------------------------------------------- +-- Table `wbdhebat`.`user` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `wbdhebat`.`user` ( + `id` INT NOT NULL AUTO_INCREMENT , + `email` VARCHAR(100) NOT NULL , + `password` VARCHAR(100) NOT NULL , + `name` VARCHAR(45) NULL , + `role` VARCHAR(20) NULL , + PRIMARY KEY (`id`, `email`) ) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `wbdhebat`.`post` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `wbdhebat`.`post` ( + `id` INT NOT NULL AUTO_INCREMENT , + `judul` VARCHAR(200) NULL , + `tanggal` DATETIME NULL , + `konten` TEXT NULL , + `status` VARCHAR(20) NULL , + PRIMARY KEY (`id`) ) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `wbdhebat`.`komentar` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `wbdhebat`.`komentar` ( + `name` VARCHAR(100) NULL , + `email` VARCHAR(100) NULL , + `tanggal` DATETIME NULL , + `komentar` TEXT NULL , + `post_id` INT NOT NULL , + INDEX `fk_komentar_post_idx` (`post_id` ASC) , + CONSTRAINT `fk_komentar_post` + FOREIGN KEY (`post_id` ) + REFERENCES `wbdhebat`.`post` (`id` ) + ON DELETE CASCADE + ON UPDATE NO ACTION) +ENGINE = InnoDB; + +USE `wbdhebat` ; + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; From d4236a9f3ca0ebdf8164d768801c180448462e65 Mon Sep 17 00:00:00 2001 From: FaridFirdaus Date: Tue, 25 Nov 2014 17:22:09 +0700 Subject: [PATCH 08/10] Soft Delete --- .../build/web/AddNewPost.jsp | 84 ++ .../build/web/AddNewPostStatus.jsp | 75 ++ .../build/web/DeletePostStatus.jsp | 76 ++ .../build/web/DeletionStatus.jsp | 69 ++ .../build/web/EditPost.jsp | 97 ++ .../build/web/EditUser.jsp | 104 +++ .../build/web/Login.jsp | 73 ++ .../build/web/META-INF/MANIFEST.MF | 2 + .../build/web/PublishPostStatus.jsp | 74 ++ .../build/web/PublishedPost.jsp | 95 ++ .../build/web/Register.jsp | 97 ++ .../build/web/RegistrationStatus.jsp | 68 ++ .../build/web/SoftDeletedPost.jsp | 100 ++ .../build/web/UndeletePostStatus.jsp | 74 ++ .../build/web/UnpublishedPost.jsp | 107 +++ .../build/web/UpdatePostStatus.jsp | 69 ++ .../build/web/UpdateUserStatus.jsp | 68 ++ .../build/web/UserManagement.jsp | 96 ++ .../build/web/Uuuppssss.jsp | 60 ++ .../build/web/ViewPost.jsp | 115 +++ .../WEB-INF/classes/.netbeans_automatic_build | 0 .../classes/.netbeans_update_resources | 0 .../wbd/tubesII/AddNewPostServlet.class | Bin 0 -> 4179 bytes .../WEB-INF/classes/wbd/tubesII/Comment.class | Bin 0 -> 1345 bytes .../classes/wbd/tubesII/CommentDAO.class | Bin 0 -> 3647 bytes .../wbd/tubesII/ConnectionManager.class | Bin 0 -> 1729 bytes .../classes/wbd/tubesII/CookieManager.class | Bin 0 -> 1732 bytes .../tubesII/CustomHttpSessionListener.class | Bin 0 -> 1724 bytes .../CustomServletContextListener.class | Bin 0 -> 1202 bytes .../wbd/tubesII/DeletePostServlet.class | Bin 0 -> 3293 bytes .../wbd/tubesII/DeleteUserServlet.class | Bin 0 -> 3444 bytes .../wbd/tubesII/LoadCommentServlet.class | Bin 0 -> 3367 bytes .../classes/wbd/tubesII/LoginServlet.class | Bin 0 -> 4861 bytes .../classes/wbd/tubesII/LogoutServlet.class | Bin 0 -> 2806 bytes .../WEB-INF/classes/wbd/tubesII/Post.class | Bin 0 -> 1336 bytes .../WEB-INF/classes/wbd/tubesII/PostDAO.class | Bin 0 -> 6761 bytes .../wbd/tubesII/PublishPostServlet.class | Bin 0 -> 3440 bytes .../wbd/tubesII/PublishedPostsServlet.class | Bin 0 -> 2925 bytes .../classes/wbd/tubesII/RegisterServlet.class | Bin 0 -> 3573 bytes .../wbd/tubesII/SaveCommentServlet.class | Bin 0 -> 3840 bytes .../wbd/tubesII/SofDeletePostServlet.class | Bin 0 -> 3218 bytes .../wbd/tubesII/SoftDeleteServlet.class | Bin 0 -> 3441 bytes .../wbd/tubesII/UndeletePostServlet.class | Bin 0 -> 3473 bytes .../wbd/tubesII/UnpublishedPostsServlet.class | Bin 0 -> 3247 bytes .../wbd/tubesII/UpdatePostServlet.class | Bin 0 -> 4442 bytes .../wbd/tubesII/UpdateUserServlet.class | Bin 0 -> 4026 bytes .../WEB-INF/classes/wbd/tubesII/User.class | Bin 0 -> 1467 bytes .../WEB-INF/classes/wbd/tubesII/UserDAO.class | Bin 0 -> 9377 bytes .../wbd/tubesII/UserManagementServlet.class | Bin 0 -> 3183 bytes .../classes/wbd/tubesII/ViewPostServlet.class | Bin 0 -> 3178 bytes .../lib/mysql-connector-java-5.1.23-bin.jar | Bin 0 -> 827921 bytes .../build/web/WEB-INF/sun-web.xml | 11 + .../build/web/WEB-INF/web.xml | 35 + .../build/web/assets/css/screen.css | 862 ++++++++++++++++++ .../build/web/assets/img/favicon.ico | Bin 0 -> 799 bytes .../build/web/assets/img/pre.png | Bin 0 -> 78 bytes .../build/web/assets/js/myjs.js | 167 ++++ .../build/web/gfv3ee6.dpf | 0 .../nbproject/private/private.properties | 7 + .../nbproject/private/private.xml | 9 + .../nbproject/project.properties | 2 +- .../src/java/wbd/tubesII/PostDAO.java | 27 + .../wbd/tubesII/SofDeletePostServlet.java | 96 ++ .../java/wbd/tubesII/SoftDeleteServlet.java | 104 +++ .../java/wbd/tubesII/UndeletePostServlet.java | 98 ++ .../web/PublishedPost.jsp | 4 +- .../web/SoftDeletedPost.jsp | 100 ++ .../web/UndeletePostStatus.jsp | 74 ++ .../web/UnpublishedPost.jsp | 2 + .../web/UserManagement.jsp | 3 +- .../web/assets/js/myjs.js | 9 + 71 files changed, 3210 insertions(+), 3 deletions(-) create mode 100644 IF3110-02-Simple-Blog-Java/build/web/AddNewPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/AddNewPostStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/DeletePostStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/DeletionStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/EditPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/EditUser.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/Login.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/META-INF/MANIFEST.MF create mode 100644 IF3110-02-Simple-Blog-Java/build/web/PublishPostStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/PublishedPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/Register.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/RegistrationStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/SoftDeletedPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/UndeletePostStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/UnpublishedPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/UpdatePostStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/UpdateUserStatus.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/UserManagement.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/Uuuppssss.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/ViewPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/.netbeans_automatic_build create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/.netbeans_update_resources create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/AddNewPostServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/Comment.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/CommentDAO.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/ConnectionManager.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/CookieManager.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/CustomHttpSessionListener.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/CustomServletContextListener.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/DeletePostServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/DeleteUserServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/LoadCommentServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/LoginServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/LogoutServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/Post.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/PostDAO.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/PublishPostServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/PublishedPostsServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/RegisterServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/SaveCommentServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/SofDeletePostServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/SoftDeleteServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UndeletePostServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UnpublishedPostsServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UpdatePostServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UpdateUserServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/User.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UserDAO.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UserManagementServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/ViewPostServlet.class create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/lib/mysql-connector-java-5.1.23-bin.jar create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/sun-web.xml create mode 100644 IF3110-02-Simple-Blog-Java/build/web/WEB-INF/web.xml create mode 100644 IF3110-02-Simple-Blog-Java/build/web/assets/css/screen.css create mode 100644 IF3110-02-Simple-Blog-Java/build/web/assets/img/favicon.ico create mode 100644 IF3110-02-Simple-Blog-Java/build/web/assets/img/pre.png create mode 100644 IF3110-02-Simple-Blog-Java/build/web/assets/js/myjs.js create mode 100644 IF3110-02-Simple-Blog-Java/build/web/gfv3ee6.dpf create mode 100644 IF3110-02-Simple-Blog-Java/nbproject/private/private.properties create mode 100644 IF3110-02-Simple-Blog-Java/nbproject/private/private.xml create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SofDeletePostServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SoftDeleteServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UndeletePostServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/web/SoftDeletedPost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/UndeletePostStatus.jsp diff --git a/IF3110-02-Simple-Blog-Java/build/web/AddNewPost.jsp b/IF3110-02-Simple-Blog-Java/build/web/AddNewPost.jsp new file mode 100644 index 00000000..4dc1b654 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/AddNewPost.jsp @@ -0,0 +1,84 @@ +<%-- + Document : AddNewPost + Created on : Nov 23, 2014, 7:41:49 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Add New Post + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (currentUser.getRole().equals("Editor")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    +

    -

    + +
    +
    +

    Add New Post

    + +
    +
    + + + + + + +
    + + + +
    +
    +
    +
    +
    + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/AddNewPostStatus.jsp b/IF3110-02-Simple-Blog-Java/build/web/AddNewPostStatus.jsp new file mode 100644 index 00000000..83c5129b --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/AddNewPostStatus.jsp @@ -0,0 +1,75 @@ +<%-- + Document : AddNewPostStatus + Created on : Nov 23, 2014, 8:41:53 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Add New Post + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (currentUser.getRole().equals("Editor")) { +// request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin dan Owner"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("AddNewPostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/DeletePostStatus.jsp b/IF3110-02-Simple-Blog-Java/build/web/DeletePostStatus.jsp new file mode 100644 index 00000000..05fd22de --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/DeletePostStatus.jsp @@ -0,0 +1,76 @@ +<%-- + Document : DeletePostStatus + Created on : Nov 23, 2014, 10:08:40 PM + Author : Asep Saepudin +--%> + +<%-- + Document : AddNewPostStatus + Created on : Nov 23, 2014, 8:41:53 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Delete Post + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("DeletePostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/DeletionStatus.jsp b/IF3110-02-Simple-Blog-Java/build/web/DeletionStatus.jsp new file mode 100644 index 00000000..7cc60c28 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/DeletionStatus.jsp @@ -0,0 +1,69 @@ +<%-- + Document : DeletionFailed + Created on : Nov 23, 2014, 6:23:16 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Delete User + + <% + if (request.getSession().getAttribute("currentUser") == null + || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("deleteUser") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/EditPost.jsp b/IF3110-02-Simple-Blog-Java/build/web/EditPost.jsp new file mode 100644 index 00000000..46148d96 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/EditPost.jsp @@ -0,0 +1,97 @@ +<%-- + Document : EditPost + Created on : Nov 23, 2014, 10:12:56 PM + Author : Asep Saepudin +--%> + +<%@page import="java.text.Format"%> +<%@page import="java.text.SimpleDateFormat"%> +<%@page import="java.util.Date"%> +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Edit Post + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + + Post editedPost = (Post)request.getSession().getAttribute("editedPost"); + if (editedPost == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    +

    -

    + +
    +
    +

    Edit Post

    + +
    +
    + + + + + + + <% + Date date = editedPost.getTanggal(); + Format formatter = new SimpleDateFormat("MM/dd/yyyy"); + %> + + + +
    + + + +
    +
    +
    +
    +
    + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/EditUser.jsp b/IF3110-02-Simple-Blog-Java/build/web/EditUser.jsp new file mode 100644 index 00000000..3ad3b321 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/EditUser.jsp @@ -0,0 +1,104 @@ +<%-- + Document : EditUser + Created on : Nov 23, 2014, 6:41:33 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Edit User + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (!currentUser.getRole().equals("Admin")) { + request.getSession().setAttribute("adminOnly", "Psst! Halaman khusus Admin"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "AdminOnly.jsp"); + } + User editedUser = (User)request.getSession().getAttribute("editedUser"); + if (editedUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "UserManagement"); + } + %> + + +
    + + + +
    + + +

    -

    + +
    +
    +

    Edit User

    + +
    +
    +
    + + + + + + + + + + + + +
    + +
    +
    +
    +
    + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/Login.jsp b/IF3110-02-Simple-Blog-Java/build/web/Login.jsp new file mode 100644 index 00000000..d0d98197 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/Login.jsp @@ -0,0 +1,73 @@ +<%-- + Document : LoginPage + Created on : Nov 20, 2014, 8:30:01 PM + Author : Asep Saepudin +--%> + +<%@page import="org.apache.jasper.tagplugins.jstl.ForEach"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Login + + <% if (request.getSession().getAttribute("currentUser") != null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    +

    -

    + +
    +
    +

    Login

    + +
    +
    + + + + + + + +
    +
    +
    +
    +
    + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/META-INF/MANIFEST.MF b/IF3110-02-Simple-Blog-Java/build/web/META-INF/MANIFEST.MF new file mode 100644 index 00000000..59499bce --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/META-INF/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/IF3110-02-Simple-Blog-Java/build/web/PublishPostStatus.jsp b/IF3110-02-Simple-Blog-Java/build/web/PublishPostStatus.jsp new file mode 100644 index 00000000..57cfa881 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/PublishPostStatus.jsp @@ -0,0 +1,74 @@ +<%-- + Document : PublishPostStatus + Created on : Nov 23, 2014, 9:44:46 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Publish Post + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (currentUser.getRole().equals("Owner")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("PublishPostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/PublishedPost.jsp b/IF3110-02-Simple-Blog-Java/build/web/PublishedPost.jsp new file mode 100644 index 00000000..08da2680 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/PublishedPost.jsp @@ -0,0 +1,95 @@ +<%-- + Document : PublishedPost + Created on : Nov 23, 2014, 9:38:08 PM + Author : Asep Saepudin +--%> + +<%@page import="java.util.ArrayList"%> +<%@page import="wbd.tubesII.PostDAO"%> +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Published Posts + + <% User currentUser = (User)request.getSession().getAttribute("currentUser"); %> + +
    + + + +
    +
    + +
    +
    + + + +
    + + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/Register.jsp b/IF3110-02-Simple-Blog-Java/build/web/Register.jsp new file mode 100644 index 00000000..c7952841 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/Register.jsp @@ -0,0 +1,97 @@ +<%-- + Document : register + Created on : Nov 20, 2014, 10:35:52 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Add New User + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (!currentUser.getRole().equals("Admin")) { + request.getSession().setAttribute("adminOnly", "Psst! Halaman khusus Admin"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "AdminOnly.jsp"); + } + %> + + +
    + + + +
    + + +

    -

    + +
    +
    +

    Add New User

    + +
    +
    + + + + + + + + + + + +
    + +
    +
    +
    +
    + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/RegistrationStatus.jsp b/IF3110-02-Simple-Blog-Java/build/web/RegistrationStatus.jsp new file mode 100644 index 00000000..ecdd4c66 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/RegistrationStatus.jsp @@ -0,0 +1,68 @@ +<%-- + Document : registerfailed + Created on : Nov 20, 2014, 10:52:29 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | User Management + + <% + if (request.getSession().getAttribute("currentUser") == null + || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("registerUser") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/SoftDeletedPost.jsp b/IF3110-02-Simple-Blog-Java/build/web/SoftDeletedPost.jsp new file mode 100644 index 00000000..8b8d46f8 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/SoftDeletedPost.jsp @@ -0,0 +1,100 @@ +<%-- + Document : UnpublishedPost + Created on : Nov 23, 2014, 9:27:46 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.PostDAO"%> +<%@page import="java.util.ArrayList"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Deleted Posts + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (!currentUser.getRole().equals("Admin")) { +// request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin dan Editor"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    +
    + +
    +
    + + + +
    + + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/UndeletePostStatus.jsp b/IF3110-02-Simple-Blog-Java/build/web/UndeletePostStatus.jsp new file mode 100644 index 00000000..54721288 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/UndeletePostStatus.jsp @@ -0,0 +1,74 @@ +<%-- + Document : PublishPostStatus + Created on : Nov 23, 2014, 9:44:46 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Undelete Post + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (!currentUser.getRole().equals("Admin")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("UndeletePostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/UnpublishedPost.jsp b/IF3110-02-Simple-Blog-Java/build/web/UnpublishedPost.jsp new file mode 100644 index 00000000..12b667fe --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/UnpublishedPost.jsp @@ -0,0 +1,107 @@ +<%-- + Document : UnpublishedPost + Created on : Nov 23, 2014, 9:27:46 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.PostDAO"%> +<%@page import="java.util.ArrayList"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Unpublished Posts + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (currentUser.getRole().equals("Owner")) { +// request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin dan Editor"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    +
    + +
    +
    + + + +
    + + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/UpdatePostStatus.jsp b/IF3110-02-Simple-Blog-Java/build/web/UpdatePostStatus.jsp new file mode 100644 index 00000000..112a970c --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/UpdatePostStatus.jsp @@ -0,0 +1,69 @@ +<%-- + Document : UpdatePostStatus + Created on : Nov 23, 2014, 10:25:28 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Update Post + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("UpdatePostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/UpdateUserStatus.jsp b/IF3110-02-Simple-Blog-Java/build/web/UpdateUserStatus.jsp new file mode 100644 index 00000000..04b03b69 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/UpdateUserStatus.jsp @@ -0,0 +1,68 @@ +<%-- + Document : SuccessfullyUpdated + Created on : Nov 23, 2014, 7:04:52 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | User Management + + <% + if (request.getSession().getAttribute("currentUser") == null + || !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("updateUser") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/UserManagement.jsp b/IF3110-02-Simple-Blog-Java/build/web/UserManagement.jsp new file mode 100644 index 00000000..c6db74b1 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/UserManagement.jsp @@ -0,0 +1,96 @@ +<%-- + Document : UserManagement + Created on : Nov 23, 2014, 5:12:43 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.UserDAO"%> +<%@page import="org.apache.jasper.tagplugins.jstl.ForEach"%> +<%@page import="java.util.ArrayList"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | User Management + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPostsLogin.jsp"); + } + if (!currentUser.getRole().equals("Admin")) { +// request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts.jsp"); + } + %> + + +
    + + + +
    +
    + +
    +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/Uuuppssss.jsp b/IF3110-02-Simple-Blog-Java/build/web/Uuuppssss.jsp new file mode 100644 index 00000000..df6b229d --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/Uuuppssss.jsp @@ -0,0 +1,60 @@ +<%-- + Document : AdminOnly + Created on : Nov 23, 2014, 5:10:08 PM + Author : Asep Saepudin +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Ups + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("forbidden") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/ViewPost.jsp b/IF3110-02-Simple-Blog-Java/build/web/ViewPost.jsp new file mode 100644 index 00000000..b4fd5a11 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/ViewPost.jsp @@ -0,0 +1,115 @@ +<%-- + Document : ViewPost + Created on : Nov 23, 2014, 11:27:55 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | View Post + + <% + Post post = (Post)request.getSession().getAttribute("post"); + if (post == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + %> + + +
    + + + +
    + +
    +
    + +

    <%= post.getJudul() %>

    +

    +
    +
    + +
    +
    +
    +

    <%= post.getKonten() %>

    + +
    + + <% if (post.getStatus().equals("Published")) { %> +

    Komentar

    + +
    +
    + + + + <% if (currentUser == null) { %> + + <% } else {%> + + <% }%> + + + <% if (currentUser == null) { %> + + <% } else {%> + + <% }%> + +
    + + + +
    +
    + +
      + +
    + <% } %> +
    +
    + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/.netbeans_automatic_build b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/.netbeans_automatic_build new file mode 100644 index 00000000..e69de29b diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/.netbeans_update_resources b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/.netbeans_update_resources new file mode 100644 index 00000000..e69de29b diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/AddNewPostServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/AddNewPostServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..1908212b1dd77d66146fc9a3b2a9d3daa39b90e0 GIT binary patch literal 4179 zcmai1347Gm6+QCUmKX~ghSj9Nup8{LLXxJ`b{vd71SiIJZDUH(rqzrTk6duW>`X%o_o1{wwoZAe2)+jQUeeftyrO3#zzvCLA#=lArU?sDF}=iaAz@xSMv z18^(;oy1N|DzF>ipd^L|6}U-w@D-F599D2d!IXldGG3R2Dr8?T<~KCpjd+uSH;ctv z6uecz+l1QNWxOMa<#?xfe@wx<8t`tsN5*@TxC!r5@ctw|fDbBoNcj4Yf`^mnz=vgg zB#8~e_(z4_$Hd~}GCrZ;lS#DT5e3J^{3)^jX$7AV^P>trE9S?NcpOhC_?&{zD|k}) zdrH9x1y9TPf{ZUF@g;mYiLc<~0(=$Eh^JEuPRsb3g!(Saw)}1hiI%P75^8%L!<5i8 zVA1C-QJTr;#UVSd075(x`OeLa6@uU-nm z#01EAR>m0_6;eY&GCP$wOTIzP$Vo#Y`&!;DRsGx_VcA8_cjWoyjssL$9=&|WeGx!V#XS$<9K+eMZoG>?>R-|i=nOyj(Y3-~(u-nFi8sCVqZa5gPuyO}B#-@tiMAHhcOVCn`7 zrKQWa{G!<%AxqEViFUfQP=J){(h8wceOJygj#7Jt2#6M>E{x%>vQ;!pSHilk!uA^* zP3wMI#dEkwE~$7P21!Hf+q+eKQ!MBz@*tdwGpKk$L}1CR!?A+v91-QK;u5~4;@h~) zpykW1Yuf%k&va#cN5yyXJqe5A6)j$=cu}~i&l;BRQ1JUIet;j6C&T4j(eetWAqeKF z_>qWO<7`mc4|*jPd(eNC(U7Wj2g^pesN%=?iHe^J)l~uBAZ?@8WT|NO>Atz!aVK>$ zJGpnSW*FL0{u2qNxa_kECUlzk8Gf$f7x*PX9&&8ov{n2{NHpxTOEVZ%{2J$F{6@uZ z@jC*Vg~^ij%jD1!fh%p8_JnSy190i}6kMO4(CH;@kie5Aowk3EKTvvonk}-Rd)DkL zmde#;MGPdYoITmxqLZ*X9`2ZS*c@g2QN^EN$oR90zu>Pj{-)yZ_=k#r;$IRLj}{zP zVD|E^74#JeYlN>GcUK9U{=Y!AQE#44Zl*tmJe%8fufY*jNVVO}(35KYL$TdP7HV&h zM1SmPiB-QWY`^is30nRFwyChgv$SS9)Lam3QgTV$1Vx+F&`TxLCXqAOGk8sdi;9yb zL_Z7=P5Ep%1zrul6BaNFF<*2%f?TK@#%Q@z;-%r4^szGTqgs3c?qtwjJ&%`wg!K{d z>*gzvA%GiaG_s=7WRK6joGbeTvpMcOYS-}&K9oCX=EaR5Q*Xo(?R!x`&{%I`ym)8o zMb^cf1Vp-9@0Fl>4CjbxST3z`Nn<28J2iXq{2;2=h{A;5Em{GiSrUC(!p0jPpzK>k zP4orAPf~L%>;Ys`q%$iZz6%ym{;d8at<5ef>zOQG9UlGh=aNeumc1GuoM|sP2 zK*m@!6DWdcnhkDmQTG^95%|I2P76Cj0J`W*Oz>va1~`id3WCo(w_nFul+x?yGB)95 zGxweNnqXc>v*X#3EN|uz?X@ygPY{fR-gr!_@PwK0<7`e%#?BrmJl63WcPGEMfjUU+ z+`BmTa;0&W#O}7UkWTTT27MgsgU#j0@>vZ9up4)ARV%I%N>N#=AOVGYXWCLV(@4~y zZ5p)_2BnVLOscMe`b*1YVdOZm};z`sdXBQB=8}%m_r4rKx|1c zE*0Zt3^&(a#_~)B%TA!LqprEOnLbvWz>aWhJGbgOxOuTdNUx1aFX@meO)Qj_g>-ZM z#Z!z#5hea$SdJ9(I2O$h@j%D%C?4nf7#@aLCxW1KqlwQOc;t=L*o>9ff;Ie2un}9a zjsI^(D{e;{_9KH=qn$Q2TG&Vn8lL4_5zK82U=yCi-MEKV8M-K};%NYTgHWHrAch#? zVZI-Qa)l7TGgV>0$Z;?S_0!yf)!!D7f)OH`#2S7<9yeNCg|{Hy2Ye!P-! z4ltjIfDBJ?7ND|B#!CL=Xr9KZ8eGPjIqToo3=NYw6A0V7W06kZ-hvjdGh+CH*y97~zPHYRZgli1BLWElh>_v10V7EeRR zNf^}3;WWAU0?Z)Vw=p;ho+3lfOKo>TfM1&-s;2Po=8V_KC^AegVaAkQo Lh(q^5@=*LAZd6OD literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/Comment.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/Comment.class new file mode 100644 index 0000000000000000000000000000000000000000..5fd94d10c394cb2c6ee3103fc58e295f46ef9010 GIT binary patch literal 1345 zcmZ{i&u-H|5XQfC;y7^(ZIdQYN?QVLNm3e95L`gL6p$>Ua%k22Cb3c%+mR9nUWx-q zR7f0n03Hf4W4krDo6GFKnQwkGv%mlR`~~1So|!14TY-T+Hc!~>v+1$14Lmh)AfS08 z0pSP~Lm9XNwf=?tByC@YWBVkUdg1t$fbIs;^978EuE&yg%Zb}O@_hS^j9hXmf1Ctv z7|E$X>9rSn(V;-0-8m!aqsfS*m-=4l9?ye;J3W;HKTb9oO8-nwJwB(G#pv9d2{ihj z2O~S058RpK*hiCq#hGR7Mh-EPG*RobzDqkZ$8CCVi6 zHYvAE&gs^q+taJ!YggL;mT!{twMRV_&m35~N+R#Cn^dKM>|~xy=F_43&f~sVX}LX~ zg@qN=EL31xsKT;vi_L8;Sy+Z8P*?Pc29%BQ!{EXlMrhI4%k(vLXe>rMjrHP{B;%D- zvD+%yQhZrKgZ5V9fF|zHN#HKl$o?Pv9om;%@QO0{ z9@f*~Ln75URd@XoT9(?3ZyQumGgfFOUTJzp<2sr8J~k8}g|9h~H6_Rt!GQXb?5fxKJ*!hfAX+VN-T`~`IOt_%PG literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/CommentDAO.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/CommentDAO.class new file mode 100644 index 0000000000000000000000000000000000000000..454029c6e89964218eaf1edc1977a65dcb229a94 GIT binary patch literal 3647 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 literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/CustomHttpSessionListener.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/CustomHttpSessionListener.class new file mode 100644 index 0000000000000000000000000000000000000000..b3811fc4474345a29c8fbfd2d3b31e201b234573 GIT binary patch literal 1724 zcma)6+g8&+6y4KXv;$~7Q(EuvU&tX1Fvh3B-)g0M=$N~TqR#Xs=T7hL+_ z^4X7axhILWr3$=cCTGssd(SyL`T6VHcL0lcnT3g578A&KU=mXoFw}u*%ov!}?{isX zVCl%b-YpooV_?z1l0atJaUHcHkjzhR3#5wPt`z7hIj-EO9hRm4#x7SG=`MK{ySi=r zj((4WDYfqe0u!ZoDqd55o+I@*#!;CODy36ylDUl6zyM4_TDZ6$XF z^7+z%UANy`f%NNDsjPk0Sxv<+>e5vOEiDmH#`w9?1&o+TVDyX%sxm5`tK@qnFnl6; zD^gXA&Y9X_SCmtiZz-1-?+MebnsTbvYdhFqw~v_9*V?KNM}OM&sy%%<3RP`)&)QPH zO6UOIZz!~dP&oSv15OXxCi*Tg;CH}Js3Lp(B2FtLos0#|fSOG`|w z;E9Q+ST*qsMHA2Qf|ER#XQ(#B3mddqK9ChoDR;VM{`ie;Iz2J;7B9aiRcuv(oB7GJ z2EY!Tj>{&5kfEbv@6d>C$ZhT#Y{hLo7chyss_2q(O>s`S=-aWH%@c`_LQ%Uo@HFez zIOX10K}!X{{G%G1`k)ytE^YQt*!#ji@y(z`*F-Z?v#DET=}$W2%R{ez@+vX;Kd3N< z4*uu_I{DX2a-|dbyv#R?tKgcR`U3Hpn*^@#nF)iP=;mG*G66m4e>99iR{sA&8Nrzys2R$KCBs8C+(Y-PsEMl`j${ z(RV+}cz3q~O|rILC>AXBL}1+rUyiv-3SQqf*?>QM0Bc0A4$8oq0LO*@eBx|huA zV;Kt68XujOr6Y&JogHf{3blWFKtb0dz2z%SXSyLnO^SkbCUVo%4$Dg0lb@(1uvlrF z*j@X~3ez&HzkIt(O0UQMGNH?6%C|rZ7(FF{#{=@f@7|B0r8oChA_e3;Ut;IB>(4A01BAm72hFDGb%3rz+_pD zv&&yFw0nun(FL-5D}~(ZR}5!xO;<=@6UZ^)7!%DfRZLw=%X`#J#5=Prk>kvLJYbnI zc0PxPEHuyf*w!PC{AR99Z1CO?=gdnOM}?6K-1)()n{CV{S~Dr?O3UnN_47VSYKy-C Dvsy70 literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/DeletePostServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/DeletePostServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..408fa2681df9790d3d736aae759f109ca86ebb5f GIT binary patch literal 3293 zcmai0`*Rc589mpMy^FkH5aHoA7y$+>zXXN0)D}(*HsI7?*ES|VXuHy0tOa>j*c0+yQraDbO@*JMu(%Iw!peGgstEa@ftA#Yxk% z)jm3m2L;;~*gAYEXJvwNPWnSbnE_dpfgE-HU|f1LT=xpBDS2*Q`u>=Fwk-WXV61KU zf;nT(X8ejyrVs?B%rT0{DAMd*QOz&8jxT!^_?TO!>kXkv#&$EKp6vvuJUfscF=*aG z@ZBpq4N=lY_hiMtz{-FlBm%3)12cc|xLFEm3Yos5;S~*6nMHxb;A~!&0-LxsysF_f zfqKh5Dv7<$wiMNhnoQAjrZVFJ?=aP?;dOx>t~b@~$RH<8$L}6@%U)g%%NbehcN{k` zLx%#7)mV?rNYAq^$(uA-u1X10F(nrgGvu6iY0#FgF^K{aWhKB7TV;Ra14->x7zLWg z%1&TU%Sqd}SrI@(IdP=x0C_g>2Cf-+6K}DQv)cwn4o{pO9ZV_RKIXu{+qk9* zKRgH*(zMtCZP~yMin1?4mRiIUon$i=1=dnFQ>Yj2r8($gMkke1M3$9P82-%lIlwXAL6=! zkMOa9KjF`0E?@RM=>#Wz>1nuO;4k7gLs9FiT~6{Tw%0UiUlb zzTlTwS-*GhT|Y&|AfRuFN>r z;6f`e#ifQ{NzKBd!*VxECFyX?bS>xbfk_ZmFd#;8_lIIIo28#O()KAT)%SFL6=gqEL6;r#M_j!%K@(S?^yeW*j= z4=;|$i-OW0aMI?=0WYx8|WWV6Fq#<@}1o_ls*%pslCN=@oKUgT_Qb+ZTuqW z;8zP!521!DWjA*jK7~4M{|e$uF6wv$G=zt1v4?A;qJX{l33qXR`0S?^jl~>d(0O*N zGg&u}SRFd&5f?Zidg5Kl`Z+XoCACoMpR5%F$jP)%Wo5PLI;wTBE(bN24~e zP+L>l%?)?HBojrH;PZnki9D`G&v$sC8~6mDa(|VhTJ2*YDSc?-dJC`ILW>kOlhqb% zM=N%a-Byyd6Fd$oA&;JG< z9>QV58DKtRVLsP!7w2!+JCd8{(OicU%*u~A#(zAI$LsJvtm#Z{nMX?m$wNC5Tpz$H zveZnLT5*sp_F)oFz~tqw@?vjekZ;K&RnB>-D%01iOkaD z=}on)YF*W`v1Ix`eAG7VxiCznVPjF4S~qn#9$K8h2%qceW|a27@-c?-vk*QeegLCe BHWdH> literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/DeleteUserServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/DeleteUserServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..51d0e6fbde9fe090fe233fb2d73d8e5e7e3f28a9 GIT binary patch literal 3444 zcmai0`*##q9sk_yW2T!Sfu%fBE!jYUyfzC(D<<36kdP8gNt%RETC2|P+-3(hGuxTj z5Y+k>>l525ZSh&P;;UM;q>bfRf5LP8n>^y@&dzQ&5Sp`R@7%}t@wuPxW9C2q`^P^4 z9Kky&9KzE&o@vEr@T?j>tK)Mid>*Ebf{vmNONZ3)oQ8!I3?*AqPrDW8a9&4QEf#e+ zI$Whz(eQi+8~6#X7tVP>lx*7O0-Vy*4X1ZD^+kQz}DuH|hf58Lznt}|*@qvDyl z%2LLX&VuP=!fejaRVJ`4^L)l)DK1ven~s6M;qMd<`DG!nV1lYYaL%s?Y|F6gluX|) zQ@&(Ys`PghpX9-8$@K!-_KTh!){nr0&6ikmp&F2$%`Q1rI46th zMXFJ6##Q||$+wwVW@lU%|46XsX#vA$G-sq`dsJnDHCKu%(y@`LkRJ86zQanL=9-me zpa(yk#k%`>bn!dm5I>H91RDtZHOC`d<@jVzL8A9vi0hoR;A0$<;pR4coO7clfJg8N zuHvfrDMe+mf*5q}-RMuZtRmKe{#C>UPKm*IHl0{OGMm=IQ4h!a!Z8(&t!jK9#@TnV zCEd1y_P$kY72qVjjl&Akq1g6tykCvCFx?Tqg`L?I?6`)p!9+*AgFbd$!_nH-VQwV` zx%t7MlJ0Dh-ae>Nnph~UDd~>n2iM6&85Q{au1lkcOVRT(FLagN{SB@!;U%bbEF@(Z z?VRu7l{=}?h27Z8)jmALUoZBP-vcD+AkLs0&!UGmdugGQ7JBgx`a&{$NnktP#2|)f zmDEMFs#zY7hE(6cFg`_!ALIEf^xK4(&@iImn1)deV;YV_aA+OpaDxBa*aq!RiH20{ zHf_Zk$22<5f0CPz;{@SMFrKk6o+Dhvd3Liey?YfMEl5A`9zJr4q4_9Z4iBzkPYZ6L zZ{7M|=v+Z2-L-CTH>rX$liv2CPhK1~VIB*q5BF%&Kz;`p$3`cvq zrxx>7^v2MirdX(U=$`WZ8_4(eaW|`SxE8L5nYkd*Z6vmn)aFU+IEj4{BX|nO@B&8h zBB^|fyEn+f`#9MM5jkiC=4K->H>1F`@r8R5pQfM3=%E$y|AL{IOg+-Sj@l=9s0!&6 zpK(mpX{M_fe}J}zxK?#3#so~CB=M=r%hbdgNVEnLEke>9$!2!~)4XR`rN|P3D)Cr) o;B7vd3*2lf@L1%g*-Q&&LXBC>@wuI5PE&v0C&s6qf$(wm|2fuTs{jB1 literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/LoadCommentServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/LoadCommentServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..e980792bc374e62025f57d06359e089c1cabc582 GIT binary patch literal 3367 zcma)8TX!2*8Qo*cI`VkzU?p)P0*TW!v6EO)n?NtNY)G7>6?JSAI}W|1Fp`d~Nk%j3 z%*aWAaw!xjPztm_%cU*XQ1_ZHmRi%bSUmNCe^ee?_L&*UQk_-va&Gh8&i?lIo%zp) z|NIw#6L?$4C@!V&Xdk|cuc^V*QAA0gtRo4T!g3#0P|;!GvKp@Fuu&CoboAqr4i~jP zJO)n4re5Y%$_bBL8<$%!q+{F>|dazaJl?bc~}XQ-01+}ylpIl)EG z3Z%yvgx7RFvZc{5O6sIM8QIscb--~X8u}LkvvlR0SqpIrp?*r>#{xeg2Q=tsu9ajh zuo$<%PX(UV&{KBrlZ-v#nAH$%1y0U3ot4}|z+0>^mPFYM_^r?Ktp{8Mujw(sE3M_u zjx@w6P#ZDfWKfi*;~!ga>t0FD$W>{dbR0J@Lu@qcXp3lWReGLP zmW(!8cIRD1qJb6J98$|DGv(8-AJ$v2^$UleZ8|}4W;4qFbnm}F)NdBrlQL31pFN4Vo zi)XXMcKI11qp))^y5T zRV5`W$2SRvGW=u?S3J2qIdWiR%E0S*L&NR)oH>=xRgT}hxGRKp#(Q^Vjw#r1;Wvh+)y6&ALJz3tGoks_uF1r%Hx zg!*{@({S*U1zN52&{lHI4i=H8voCInBaW}tqMDqeT48R}X=mZ{nFu)$o)*Y@GjN&y z0kV49bpp1mMYayMp{SR3^f%SNds)v>yC$2OrQ8`W%fF{&yFRV-o8|ICy;ft3_9ffu z?sluK>IfeOgNEl#kG+*aX*kp_8Fz_WHjcsYI$=jFF#Z*#ELKgsF6WjtjBH^hR#7dO z@6eJ`3*XrS%dnjtabcZ4Imge8R9&SI$I}ULXsU(lP!pmKyeT6pra#NR5_)?`y(;0R zvpdceFUyi@{(>%N!)Hh5YLRcwifJ>I9oA3t?V;?zMt;=^Zx*-_fNXZu-guajX00Y2 zrX{-tO3gMD_6oWf`#RDXfp(LNE{t(ZhKGa5a&1HcI7VS0p(>qHO8Fn0lblbCrMuSAP1SWIG|Xz_ ziR}B>mr1;jp=<*^H?V!YCzHtZG$3w3sH2-Sx(EAk8x3@aF4Hs(>_v*FX~uh;-<10! zJl}=`+@GMN`mc-vQLE44^I>o&a2M`oF!%8LK6HOX)gFO+1;z#V+U5l&p>gQ@fF`CW zl%((%@I{(F$=h_R+h~t-*7#u=`9 zY3%`=#eHF}*IMwewcuZi;ZNgv>KBOP9z26DQ7eHNdQc3CzMbPYm83y*eTe-6vjTGh z^Z!MuBQ0O1h@#+m&Iv3uQxuw391t7#kNB!HpP;WK&V_dxrXPy6Vim1eMI3883)SoVU}=gVaCe;~_l!Ff<>J F{0~%OU9bQE literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/LoginServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/LoginServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..8d30afbfe9211e2095326d5dd4d56228c31e9462 GIT binary patch literal 4861 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 MID@m7Av~o11Mc#ywEzGB literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/Post.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/Post.class new file mode 100644 index 0000000000000000000000000000000000000000..ebde255eaf6d1fd582ff4b2c26c4c539b7ecad69 GIT binary patch literal 1336 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 XF~hn8cGArp?az9|ckVeT9zOMdOci7h literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/PublishedPostsServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/PublishedPostsServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..c685e6b9b2459b45265909572f8e701649eb4296 GIT binary patch literal 2925 zcmai0TUQfT6#j+;W(*_L;0;?fctr%FwHFH!i+H0&p@2|pZ97ShWN?^?GbdbnzuJor zuD&o-aGl{-#`Bba16In=)j19 z3(dHQQMHU2cq@f*Oc$sePsdV2_`;}(Ai>n6SQ-}8rd|<#*W_cZj z6t<$6g1|MUG-IID3>&isuB!k}3K`59aCLY(${Lz-wrk4)4T;V}QyP*(UQuXh9kE?; zu`-tz{-l+6C`pfa1iyIXYNDbqiBeT}LwU`Yeooq?Ua`rrz*eKTQUso+Cdu|~5RRRgG zLf2bDldSD!$9&tB)4nZ*PYk-h8vNk8PD7NmF?S0B6VfVNzhIR^szSDJ z=%Gm8aLmNs$gkUA2YugK8nFXK=+^oxSt_qy z%b_UydV^g3CGl?h2k2z4=g;)ILgt0#2E7wr#V?2vF)y4!*Y%_oBGj-s^5|IZOm=i$ z_`Y2fG;S(->XM0hM#%WmhTUr(4LV~Gp~-~gEzHm$6$LnJtCHIB#7gN^HKCz>yy8lG zPE6T>&4Q~#vwzLqSyianX_0?iaY@&jW1N=yI2xKOzB6V?mW0ddZCz8bCiY;jhHX+T zN|xlD(_biAejwzDOOt1Nj`I>t%wxgCB9>^K>o`3+Gvq9O!4~oP?=;GUnlIP1zQ3M6w4!c4_$GS5` z!>(t~53=%Xh3Y6eu%6!P1ch6$};`HDsX9I%_t}T_C#Omjk zni}DB2?9<_4SVAJpZK*A>d@lpg%Nu(N&TSYSjtxMNqM=(H z7e(8rgkRqoe$-zh2n~C=?&B%TT~pGo`_S(4p#l53Hig1XIKXE!QouoU@|0AKKrI?; z%SgbW>|S@eVFif>bgv+(;iA@;>`6B+qp2sYhpQ2;8^SdeuFY!w3+Cnf*qClvM(g1f zJg0#V=}lagkq*_`!gaG+A7ZRM`4C%sma*jyPWLsoC)*ig+Z`N_L`NxV?4$5OpVHo4 zquti0Q=3?*tt;*JrU!S)go82y{tQW@fSd7tn+g4dpYaRNH}NCXIT4aFfL1>5V#>Q| z(ShycaTl4~$Nw&B93fq=kfv!8b(J&~D7{JD+uVQ0;gHNO64;7gdFrNDQWw*zo_f$5 zQhkrNa)cBg<@*U3j|j0*$BR0S>3B)U%Q~ZIT$;~vInU1{Y=XX4qpFp7L|=*OYdU?E zpC$^A<2AzRBfLad47a!^`L5#+Y`@40Y3Hx09X%^}K7sD^3oF>!fUd*c%h;s~CE{c& zSp;1q(N9it*nt67+R19JbXLuX_up~6ZE1AEs_jSQVa4V->Q;)oqH04 zRlvj4Q!MI_VMXxGLc#pie81H$55UYPQxh-(VJ?P9zsyfl1T6VjazN2 lOod^hR!PKRYEd`fbZBt~XSui0%{khi4={{3u0RX$=6_L$)7St2 literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/RegisterServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/RegisterServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..1d88f60321367f310b8892aa2030afed6e7d1dd0 GIT binary patch literal 3573 zcmai0>3aZdWg|2^pTq)+8Y~UxG@RE^(y*w)PC}Qqj_k{Acmb{kPfmOd6%9+$ z?ShKsB(~$C{QnCYzSxE@;maz%lEf~&sNt(gd<|dM@C~`wH#K}KiHC7X{>jMSmQLT1 zlkaNyp6p-Ja8~v&YxutGe~`p0_@RbZHT+1!Yclxj8h)(dCmMdL;b$t|P;ps7V#Km7 ze^f!Nr*~dK{Fq}31?`iTEv71qdEw3(`4U%BlTN`X%^R*I=h0%^FIt|0-IEvcX4bFd zg*P#goe>L`=L>gMxJxDB4=dPIcAbLoyczLAMR>k~nV!jW#*(p|^+KC$(f7;QC)q?! zk>&8ZW?tE`Juxhy$D9g7Zwp+qmXpo7mhGQ%EkYp%)vaxQaNVE*O8RK72;(bQA8>?3 z!NytND4c)FCp=PG`|j4McvFBe4Fw}@NCTPl93pw)Dq5X8RUaTf+{;pc^6 zdxNu1#Vv?Qu_Q`kw(a;v;G>^(kxZ0<~MJS}ZUnFbxd!4;|eU?CU?!{im{9`P-| zBt|1}=_W`c+3;_QX(U?=T@oXC$Gk}29g>l3kd%-a5x zr{YZ=S8K*#GiEh8Gj*pg^KG6 z+n0G)@mC#x!!-q)n|OC3DawQ44(7K zIv&MiL@O2ztE8if8#>;VR$AHcybF$N>R6Rocuy|IT}R@(i7P7pspDUGpW)o7P)Ll_ ztL)OIuonzF9Yjs@Hm6yEiiT&E(x&Abi+Q7X-mrDt!Uqbrhj`rJV(`-W6;C2#LdPX2 zx^GVVqGS~5yHK$WdMem5TXbBX`*;P{3a+7oU5&KV4jG9+LD$EZDg_5V-k@Ify4SO- z6`L@*YfIQia76g()ug5gx=lNH;hmwL3MI!Q$c=_+ z&Q{80R$xzXkDZNs)D<7#P6h?d^H@<8?2CZk_0tmA5Wu}N8b#3=a?EEX%vXGZ>2BOS zDv*seb2@)c6y%3arQZydPUU@gKWj%z@B?I&SjyHUAoA^fh8MykoioC;Tt?%R!E%Pn z>c|qfK8Oex*<`|l3&1MCVJ^CkM90}wP;BKW#M#j(eR%_qk4*<3zVI6!fNeGzj=(lj zbnq?|HAtX#%6aVNE9MAaR6r{fS;^TBah7GT$ko0ZP*yl-!7$rIu(%l`9P6P09>FMQ zaan+9MQ5do7&NY3A4s*VBG!U|Rm2rcDMRs0sSvb_oY%nfWz zZK|TZe-)b**0c817B*F+0<(^w-74GL$aThVV|%8GZC7!8sI@cR$vt*l#nEu-5SLnq zxOi(wTJLGF?if;OO)RulrFCcG)(V*@p$w0Y!4%(mm!kd^9_TXO!WGUh;Z;88z+*~M zM$yi8H;>#!k2H3Y)h_JA{n(E_wh!O{S?1lFlH|!bTL9N-l2sgvyTL}^UE`a z#~GE>MYPJ%F&q!5zK(I6AjMDc|5<2v2(eYglPV@ud|Jh4R7^r)({_RlmnZLF3)E(d zx>f8BW5w!!Gw4(NCAc_+X~M}dpRqs;Z?l)6#+i(r{4{i~;=UH#M%SA82iR4`CsMns z=(>ze1F1c$NVo7K+BT5d8w~sU2dda7#T4>(A2$OPw}qSZlgWpJGe64HJ{EA24mYhc zFRhfw zTxxvD%rQbN(ANgE{1;0q<`3VKS%rc=O|{5!k)c3kxrn7cd5v9Tu@DW#A{Oo6n4lIS al^)L!EzrR*&vACv!)NiiXQ6ob{Qm*v*Mfln literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/SaveCommentServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/SaveCommentServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..9526c993abfda6de72a29d2ae82d554eb982e79d GIT binary patch literal 3840 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 literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UndeletePostServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UndeletePostServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..50440182a6a099fdf121180bf462252367d615fa GIT binary patch literal 3473 zcmai0`F9i775>JOJ%co05MgneU>O2C(< zrh7~G(sZFMU6VAWdre!ExIL%oPyEoosi*XNqmewqCO$g4Gw;pa-u>?VX8!ZPfBXx; zaa0pHhL<$FoW#fRiWHyF@M;2|grOm?p`gLkAT(T3v6z4^b&K+9C2<*7G?e6GNrSDy zk!EETR}^*iR`>>ijwffwBz}+!d>S5 zu!0?B*C`0kn-Nzl!t)i(bWdJ3mW`FHSJTNBeZQPNM-du@n!{VFd1c4;#IQ_1=2Yl< zPhgU@ob0q~+5QFB@`cMBRJR`d=$1}{ENP>;qUK-0)(MB1DA+#h8-*(`80DZ)L9K79 z_^yiA39W*}>6L;g`xf(7@jVsaSI}xYX9aU_u}oQPS(4ms}P zfGzyIFl=vN)~UD!F)5ZsY1FnI-v}Hkcr0Q)wJcoMG6hf4W;zlQLa`|7z)aYe92#`@ zL`=ef%(52Xj3x2kzX_}ZGD`&=GZovnmc)YPS?rCbTn;}}Xrqy6_JYW-w@2JImKa5k zMp2NgxTR^sCwey9Yjz8d*ia+Z36aK8@FIZJ^SI1xRH#Tn+ zL(YL;A$Cb=mhQI9^r^IhCwkJpWg1t~r1S*5gTWhx>pVYa$v+qua<3HP&Q1 z*U6zdFG;6m$*v`vqhplI!X|NLHgmXvTf%{$3rR&mMk_w&yhytBoqD#dg_7ej$?b+| z&Q{8060s*3V}CS8qu&Gi*XeHBa7iVk3wr%X<3(8kb=fFY#MC7PN4Ka&Xu=FMg1R8hf^UKe_E&UNEYpcQ8KG+7a(yjD2@-vbHtI zt=1uKzBeSbJ0se=hg51a7iz0gyQA&ByR1YBWqAAuOrd}q;q@jDbeo+22G=+6I^;SQ z6lDbMyg$GrchaH@`*Dz~LwJh6UL0n9kFZEbaRJ?U1wHiHOAnp&&`Y}Q3yRsx0=DCA z3}KjFS-P;S@-Bx{L8!vDSf zH5yv62lN$dJf_n#{I_xQEY2~V3E~+G@EqhS&S$HAsr_r{Xu)}+@;Ki%A6UZ^Ex3;Z zP3wQ-$tn({I;%+E#*Y3}*BTDC;0~5D@8VDuPrZx7w{bi)IZ_AvDB&dp?Wyh>&THt2 zp+D6d8XpVw`!?wJZ=&DZ$K8zV+ZsdzNb>$^Y-4#JXF*S}q|fj-$zoo`C|<)DfgR`j z_AFnh=Ngdk%ncw`8$hgvKy2fop2tTS<5_x7BK}{TP%)Xv^*5FB1wNF6bDq~Yrs`#7 zfn)pu>Uy@dDN7IoV4g+`K_=;%S|by+k%<~+5=AZ=PQf%@q&GRz8KxjdI+hw(kWvb5#1-36Et^y;t!-%qM4cqpW^g(aW^UTzzSdpb z72H2~_^RhfwR(>Di4Xn)e~tLunQ2JM($mwszRPo;cgg(o-yeSgxC=j|(S~6IBTYDp zQ8kPicsz|`IBwvCfhP={H1MQ>r*u4>hN)yNHRqd9K+%9un`aD+8z?C?TgRz1*5X-p z?--b9f(uVaIgJfCZNN_>fHY81z9!R{!nA=iO6WNQ&!@2+FBo`H$4fe1){x5Ct}S~s zB-(b2YDn()ibBKke%lpCDie9(k63w!Cz*b)U^%0fZ>xQLn3N?u(6Ft4DqqaXN?rtg zec7XKxsrG6pd^ZeULb>E;ZHh3c57Hx_Pv4#f+2CbA_A#lsIC8$HEB&}gGeS@lCqpV z%pq2aCA$|D3(B4wh;H?Sgjb>IHK9t@_OgS%?aDFVmcl0n-Jf^9eNm$!O6nNCi0o@v z9B_<8!_r}C6`p<6Du-l+e7~aORUNM}fEv;VrwgJiZQ|DPx{fzAG#0&w1hKEEETFLZ zoQkxaY_IQIXZr0xQM$H1EN9B|q1h3=zg{6%7bq2-?j9Q1>iOfHu8?_Qxk2Z!SMdv? zUrY+8*L6KBzw$Tcy>lH^`Pwl@}VChbpeLC&Z{7*i5@RJlht;&#HpWj*0x$tV_Dq1U;=-=t)CU z#diiR$;5D(#VfDLToXIcu3?=N(~_w<;dB>DmLCYY_vpx>jy(*fi8nE0;w`+*n#pZG zFtC5**xZ^Da3QQBi>)IkZRv=f7-h=>Z1Hg}8%Z&1bJ>OjI#TkzDb);2oW(~bKE@}cv{3PV;mV_d@O6A@;xl|s?(6ykuS|Rq`W%>Y zmE4ymzQQ@C&|qEXFmWC;I=(jX4Zfvs%W)PE6`1%A-}7q0dFQF1Y~l{=W>|+yo-bR9 zA}IKFSZ_@DIy?)CEhb;X#+&yh_Pv`6RNGwZVsi7{C1SU}XI+CM##e10^Fg6n-$2dj zGA8PN&y|eE2>SwiNYuP)b0%z5Fw&z$+9c4u}UwJVfqyuFCfUJR*rdikVIKPp zOEb%6v3%zoR%qZNvy#IsGNIV2a9pj%%NT4TcW?7 zRjI@k+DcTfX|#v`DIPw62MMQ_@l1rt@Gs{i@5UI6_54O`p2IB-xQvZ;`@gYa7Pn?@ zo5jX+Shg#(X$~z7xPaS!$L1rkD7ae!= zy?eRp!C^ug#6FB-f0eB+#$g}#imkCKTVqwW#$vV(@Lr{AB!7_dioZrAcBY%_UVMnh zD!(7%oTSV7*Y{CHInl48jfx>nsz6*RJQkvAiNvZ{^ePrT#!^dgtvd~Uc$n5y<#iB( us=P#|^=D4Cb$2{;6V+WJc2jGn0gr?l{dkn~Dw;V${egfOA3Fgpz|j91$20=~ literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UpdatePostServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UpdatePostServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..ebdfbbb72050e55c51a4ac9ca9983f090fd5bd76 GIT binary patch literal 4442 zcmai1d3+RS8Ga_a$qbu;z;Xr!mT=`>=z*A|v1t-YXh>obf|Np?-5qv^Y<9OZvmtn2 zr5+ojJJs9ts%S( zZ&$Eie13<5<00IJcglEI2peIG=G_V&68(E*yjQ`)AvEB93f?dJ4~X?g6ns$hlL|g0 z`VR|@A5rj81s_xJaRr}H@JSgbWSk7)QG6*J*o5Pte+g z08c>fhgGc6qB0{Pz6kK5X)TkC4%zfF*(&3+B#?x4Su@$3(e0S7Wvu3*Y~GCPz52MG z?#N`aw&t8FVTn&c|F~|NMnb3ZibU2uI+$}TDAOk-taN2wM}x`{+POpk!gFp zmA0rWKytQ4Q|_jUwpccCgu9o|j`3}IBc0Gq32WO@TduD(qS+A@U&NPWJg(x)7$v=^ zeM`HFC&h$Ec_)ZNg%2veA`nmy%HAAX1j`?;}{+9!VHYd8g`;{5264&6H*tGnZ%U6pl++G40OG)RM5u4@XBL z(Wf64MtIDT@wAFRVN}MSRs02imGL(ff5$&m{1gA8Wkac~DGavars0&DSqgpTxCL0k zYGKQCa?LKt5;pvQfl_VXIG0?pq`HKgS*WkF!*jS)bc#IXww`|9>Ou!fUr8h@nZ%t= zuNV3Yae?H-eUi?QLRv1TXIO}vuBGs*;^!qU zRft;YSTtd?7^Qf@*jcwglIQVs)}oQ~wM1elpUd&;v2>oX!hc37F`Wxfr8@G4)sA&d z!bZQOS9h;nik*^eS-gTI)OZeGGxUxO4Zl7)JT1bM4x4vTEN|0^xlHMg9n$0CK2t3M zImm0z{JE(;Nmphv5rSF{cWrJ4GSmmz=m>B&@%_H+kDgM@4C) zD zv3wHS+@&pCDsSQ9`4%C)#wWeFMW!@up|mWdt1Hf*Bob-lVDZOH7;zl+`upk7aXf^F zIX{XAA?5)Gly+2cTtk=FamNO%;IEO@*o5_{MLp`UneA5oY}tcG>_-!IHdDhoYG~#! zk*EV^Jpru3BiMyLY9(|YtYXxU0SD?+crFGB@esccLAgQ`%ViA9*ezp3#vU2ZgT$tC zJDVN+zk)@OXG@f%0#~RjQ2I=zd--3%#XGT&=G?`21{^Xx&Ay!94m5;UOrg3AeT>RV zzQLa{g=d!WowcAbylM)o%P@(pO=qyCfXErFCFTswDo?hiIyi-O0W^l!d!m)aUG)u( z1#A#3a{;YKh~sw5!>y=B2Z8J)h+Vju^z5QV{e)}}`L>@H3MSq}>oybc{Ww6oX=e$% z110bdc;L;$ZrqLM^CSV|A_OjDy$tO#>Se_K19=7raf%4aC)fv}7XgtT;DO?xOJ}i> zOx@JiR7A#gzJOY;)HzrcP)|ZP>Uv?k)OnpzHnOsx12%yqj-+QOt|%=L%EB5 zJhysLacRDfG`|ZgiSTKp30wq=HjIWJbZcFrLEGV)H=-AF9HK@evsx4WkYpQ}9d}AIGx_KB3@~ z!u_Yh_%uGF;DnI-tb)&laR}#yFg;%g5ZOB+_d6@ zwwZCqY|}Mt#vt28=X+K)>P1N%#Wo7|C9EE>ABlvu!>*P*^MIE1VDgZDQO0*=e2;{X z5bl{y8d=w5+%jI0aY;f*w~iW&J#6TVRu|w2$QQuMGe#6LCNwiGJ_`KeX)QAzA9i`s z@pc*CCzmAbuE#tHfTRA&v^cj;zx+{~hT+MSV;f^u`1Cxero4P^!mAW-( zi3|mEUJ%vehU=%KH}j}Py@tjzP2V*mFZelP3bJfk!hu#1t%Ta4T*fsgjN_(bl12*x z+O;SvS}EH2n33>fV1&VpHbEcZc^?w0a&~%9bD8K2`B+uPK^6Dm%@Q`d#WM7lkh z(rm|Y4~>o-i5+BGRQv#!Ra`-yyzi**9ymO5ataJ!z6aq{+(E?;1p*u99gd`IYf6-{iXY(>6*n+PD?T1SR`C=3 zRK?Hmb0V3{*|w2!1tDeJRPic)Az}SuUaI(|7f6>rVP;4}6|dn}62QVA%q7yMlQML{ zDo4eyaaqQ1RQwjdQ}KKJL4w*t&I<>vr=6^dBRDFd!qjE_QN^F|XBB_JUse1~Btgk) zjx%N1x{AMxoc%)_25n2+i_YKBvm?M8LON!q4Y%@VdQ0Hzd$&j$(HL=IN&c@lQL zzCfvc?p{r<*tH5-U)T$m#No$RYD-13P_1{M>~#G+g$i}g{IZe`TN#%e89AF}S#B)! z$pwu`^yW3}BZXE>?iX9g!nj!5a#pnLbcSW7WwS;`mk?Xd;F1pHR}W2yhUG;x?Xn}J zNE+8FMjJ||Er&s_)pUJ0m(8-fI|hAhDfdyT4)0A-X>L%n*>c!iB!*NrS7dH99+iEl1sHOYdP$7WXIwAAz`}@<+7ymWC+R1wDYZqOLn<@ zMG`re@T_*pfy8MeDV}widPA%}UW{+6mS*o=kbhsW@f54vVK#^OyxCMG!4^~sOSHRd zpkPnb>q;RkR$>UWTORtJ*T=OO5D8f`Pv&0ocU*X7f8o=>?V@`W6Wz-;Nq@bhOt7I> z&|2ZPr|=?IaXIMsCtiiSe(#|YD<7m{zadCVuF`l4_569)$)BP?h^>?F7RN5`;+)w{ z5o)>$=@J(exSwOCcUXhNT&o2Ebfbs6py;BMqOz1n01D5pv_vXq5vV}REP@jHrM6%! z63U}87LmPC@y0dY81}|0FutPp9X0B)1>3pXft~zo!Y=H^ZXCcKjG+OK zppiD4XrYc4ns6D-9+*u8a2;O2G4#?Zq4QxCtGD2-9@JORhX)98Kfez{xy=wmG6rM} z%6L%5kjztwL)8%u$M}C6HINrel%xW;X)93rOrsGpU3v|SRae*;Nk*7eihX%k)5;H zRe_7x8@qQP)-xrnXMC)yF@;ljh#m#% z5d?36=sq02g`F}U`7h)JpuLSUqD0=#If!?Z06a>M!qeP!)REcE{juf%0B+ey;EF*KZ_j2hO9-hwR>By&M$v;u{tf^QJ<@_;|MYc;363 zTKh6;i?Kg|wY<*>a{eSX6QLc%C{D!N$?&7Re?M>kI5c9L#3ksM#iRVqH(ug8u_&QF zS3-TxM_nN<8Z8%4UxSKUm?7NzR|H!^f{wiIgBTMaT2~;_@e-%<#+CK_7aCW<_g|i~ a3Pvh43`PrVpqX**QVvXTji1z8QL`7;8sX!i!M=Tz**kiHJ;)zX9 zZ8{KSgndDxCCCa!emE3VX`lJ$zBly81Meh>!tvm_pu#6VjxQz=V$HEX3ZSCN5Xw6D zhqA({p!|z)941XcIk(n9#H&dk5sU3`92`wY-5`4JcR8ohp7i`-$B#m`GpCt+3}e2# z==Qy2+704X%li-q5xQH0AZejB>N04YTBh6LHU(V1PSKa$nid`jS;UI_e*hOLqsY6z zPb?#0X4$wql5e)*&ra|i%K@-2Juyfpod!TLj{>eThv}Yjo6^Z-8ufxVA&;TRuWRtI z9lA!#4wb0vkV6X&U171vVu{67st8(A2LspaOTF!$1-*ne@o9_Lfjk*p4kv>vN{ymY zqps8_Ej6k`FOXmg$Q4)~w1Bqi-${IxVO7YybQbA4&Q2OYH|QoTL94U|`ET+!GCnKG z6>ah@x}7CAL2PiV`r0KKv(_c)t&)X&ZeLBKvi6L|?`7(B+R%XHz9=B8T97*!Vfu<0 z$nGWORFHLmY|H`SfiuXK7Q|FRwzMF3^&qASvJH@(IUxMS8RVW8#8N@(T9EsC5K9GV z0K}UE!Yjuh+ggyk3bLmK+0ldKRgeRK9L@pZoo5i2YLM!(+Ul}C(}L7#H%p%F2$t1W TL7D)0IR}J)ItF~&ESR`%~NdeI;P^lPj#-(w? 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 E0d>UNi2wiq literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UserManagementServlet.class b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/classes/wbd/tubesII/UserManagementServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..bf7bd68d4d2e7454aebfa5d8548edb3ac166684e GIT binary patch literal 3183 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 W0TX;~r=v;Qe>)%zg;|II)BgjAdJbj) literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/lib/mysql-connector-java-5.1.23-bin.jar b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/lib/mysql-connector-java-5.1.23-bin.jar new file mode 100644 index 0000000000000000000000000000000000000000..dd2585e0f8b61b749f894695b018e420c65e2755 GIT binary patch literal 827921 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

    _*7gUP<=(n-u6 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

    RT74@U?BBN>0Rse7zM??5U4B=iT>F4UP*x=W}S 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 z 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%0A#~>ykEFj%C00o8u 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

    ocQLj1^bxZw{X6Ckq3f%18tHbH0=UZo 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%0AP$R1zuQlwT~&pc7FH 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 literal 0 HcmV?d00001 diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/sun-web.xml b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/sun-web.xml new file mode 100644 index 00000000..1ac7af40 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/sun-web.xml @@ -0,0 +1,11 @@ + + + + + + + Keep a copy of the generated servlet class' java code. + + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/web.xml b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/web.xml new file mode 100644 index 00000000..d310ba83 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/WEB-INF/web.xml @@ -0,0 +1,35 @@ + + + + javax.faces.PROJECT_STAGE + Development + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + + 30 + + + + faces/PublishedPosts + + + + wbd.tubesII.CustomServletContextListener + + + + + + wbd.tubesII.CustomHttpSessionListener + + + diff --git a/IF3110-02-Simple-Blog-Java/build/web/assets/css/screen.css b/IF3110-02-Simple-Blog-Java/build/web/assets/css/screen.css new file mode 100644 index 00000000..ea2188e4 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/build/web/assets/css/screen.css @@ -0,0 +1,862 @@ +@import url(http://fonts.googleapis.com/css?family=Open+Sans); +@import url(http://fonts.googleapis.com/css?family=Questrial); + +/* Reset & Basics (Inspired by E. Meyers) +================================================== */ +html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, address, cite, code, em, img, small, strong, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, embed, figure, figcaption, footer, header, hgroup, menu, nav, section, summary, time, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; } +article, aside, details, figcaption, figure, footer, header, hgroup, menu, time, nav, section { + display: block; } +html, body, .wrapper { + min-height: 100%; +} + + +/* Body +================================================== */ +html, body { + height: 100%; +} +.wrapper { + min-height: 100%; +} +body { + overflow-x: hidden; + font: 17px/28px ff-meta-serif-web-pro, "Georgia", serif; + color: #333; + background: #fff; +} + + +/* Typography +================================================== */ +h1, h2, h3, h4, h5, h6 { + font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif; + font-weight: normal; + text-transform: uppercase; + font-weight: 700; + color: #000; + text-rendering: optimizeLegibility; +} + +h1 { + font-size: 50px; + padding-bottom: 30px; +} + +h2 { + font-size: 45px; + padding-bottom: 10px; + padding-top: 50px; +} + +h3 { + font-size: 40px; + /* padding-bottom: 60px; */ +} + +h4 { + font-size: 35px; + padding-bottom: 15px; +} + +h5 { + font-size: 30px; + padding-bottom: 10px; +} + +p { + margin: 0 0 28px 0; +} + +strong { + font-weight: bold; +} +em { + font-style: italic; +} +sup { + line-height: 0; +} + +small { + font-size: 70%; +} + +cite { + font-size: 80%; + font-style: italic; + } + +/* Teaser +================================================== */ + +header#teaser h1 { + text-transform: none !important; + color: #333; + font-size: 28px !important; + font-weight: 300 !important; +} + + +/* Links +================================================== */ +a { + color: #F40034; + text-decoration: none; + -webkit-transition: color .2s ease-in-out; + -moz-transition: color .2s ease-in-out; + transition: color .2s ease-in-out; +} +a:hover { + color: #F40034; +} + +/* Layout +================================================== */ +/* White container that is the "page" */ +.wrapper { + max-width: 1500px; + margin: 0 auto; + background: #fff; +} + +/* Containers to keep content to a set width */ +.nav, +.art-header-inner, +.footer, +.art-list, +.abt, +.fourohfour { + width: 980px; +} +.nav, +.art-body-inner, +.footer, +.art-list, +.abt, +.fourohfour { + position: relative; + margin: 0 auto; +} + +/* Nav +================================================== */ +.nav { + position: absolute; + top: 0; + left: 50%; + height: 70px; + padding-top: 40px; + margin-left: -490px; /* Half width of nav */ + border-bottom: 1px solid #333; + z-index: 2; +} +.nav.fixed { + position: fixed; +} +#logo { + float: left; +} +.nav-primary { + float: right; +} +.nav-primary li { + display: inline-block; + margin-left: 10px; + font-weight: 500; +} +#logo h1, +.nav-primary li, +.nav-primary li a { + font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif; + font-weight: 700; + font-size: 13px; + line-height: 30px; + color: #000; + text-transform: uppercase; +} + +#logo h1 { + height: 30px; + margin-left: 0px; + letter-spacing: 1px; + font-family: 'Questrial', sans-serif; + font-size: 30px; +} + +#logo h1 span{ + color: #F40034 !important; +} + +.nav li:first-child { + margin-left: 0; /* Remove left margin from the first nav li */ +} + +/* Home Page +================================================== */ + +div#home {} + +#home > div.cover { + max-width: 980px; + margin: 0px auto; + /*padding-top: 110px;*/ +} + +div.cover { + +} + +div.cover > img { + width: 100%; + height: 100%; +} + + +/* Article +================================================== */ +.art { + margin-top: -131px; +} +/* Header */ +.art-header { + height: 700px; + /* Background image is defined in the post */ + background-position: top center; + background-attachment: fixed; + overflow: hidden; +} +/* Contains the time, title and subtitle for an article */ +.art-header-inner { + position: absolute; + top: 300px; + left: 50%; + margin-left: -490px; +} +.art-time, +.art-title, +.art-subtitle { + text-align: center; + text-transform: uppercase; +} +.art-time { + font-size: 14px; + line-height: 1.8; + letter-spacing: 4px; +} +.art-title { + font-size: 50px; + line-height: .9; + letter-spacing: -2px; + width: 100%; +} +.art-subtitle { + margin-top: 4px; + font-size: 14px; + line-height: 1.3; + letter-spacing: 4px; +} + +/* If small header, make few adjustments */ +.small .art-title { + font-size: 70px; + line-height: 65px; +} +.small.art-header-inner { + top: 320px; +} + +/* Body */ +.art-body { + position: relative; + width: 100%; + background: #fff; + z-index: 100; + -webkit-box-shadow: 0 -3px 3px rgba(0,0,0,.2); + -moz-box-shadow: 0 -3px 3px rgba(0,0,0,.2); + box-shadow: 0 -3px 3px rgba(0,0,0,.2); +} +.art-body-inner { + font-family: Georgia,Cambria,"Times New Roman",Times,serif; + max-width: 640px; + padding: 80px 0 50px; + letter-spacing: 0.01rem; + font-weight: 400; + font-style: normal; + font-size: 21px; + line-height: 1.5; +} +.art-body-inner a:hover { + border-bottom: 1px solid #F40034; + padding-bottom:2px; +} +.art-body-inner ul, +.art-body-inner ol { /* For lists in the article body */ + margin-bottom: 26px; +} +.art-body-inner ul li { + list-style: disc; +} + +.art-body-inner mark { + background-color: #fdffb6; + padding: 2px; + -webkit-box-shadow: #fdffb6 0 0 5px; + -moz-box-shadow: #fdffb6 0 0 5px; + box-shadow: #fdffb6 0 0 5px; +} + +.art-body-inner blockquote { + font-size: 16px; + background: #f9f9f9; + border-left: 10px solid #ccc; + margin: 1.5em 10px; + padding: 0.5em 10px; + quotes: "\201C""\201D""\2018""\2019"; +} + +.art-body-inner blockquote p:first-child:before { + color: #ccc; + content: "?"; + font-size: 4em; + line-height: 0.1em; + margin-right: 0.25em; + vertical-align: -0.4em; +} + +.art-body-inner blockquote p { + margin-bottom: 1.5em; +} + +.art-body-inner blockquote p:last-child { + margin-bottom: 0; +} + + +.dropcap { /* First character on articles */ + float: left; + margin: 47px 10px 20px 0; + font-size: 100px; + line-height: 0; +} +.art-subhead { /* Subheads are used to break up sections of an article */ + margin: 60px 0 15px; + font-size: 20px; + line-height: 28px; + letter-spacing: 3px; +} +.callout { /* Callouts are like large pullquotes */ + font-weight: bold; +} +.art-body-inner img { + max-width: 100%; + max-height: 600px; + margin-bottom: 26px; +} +.art-body-inner img.center { + display: block; + margin-left: auto; + margin-right: auto; +} +.art-body-inner .art-reference { + font-size: 80%; + color: #999; + margin-top: 50px; +} + +/* For simple, white background posts */ +.simple .art-body { + background: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + + +/* List of Articles +================================================== */ +.art-list { + padding: 120px 0 0; +} +.art-list-body { + position: relative; + overflow: hidden; +} +.art-list-item { + padding: 40px 0; + list-style: none; + overflow: hidden; + border-bottom: 1px solid #ccc; +} +.art-list-item:last-child { + border-bottom: none; +} +.art-list-title { + font-size: 26px; + line-height: 26px; + font-weight: 700; +} +.art-list-item-title-and-time { + float: left; + width: 30%; + margin-bottom: 10px; +} +.art-list-time { + font-size: 12px; + line-height: 20px; + letter-spacing: 2px; + text-transform: uppercase; + color: #999; +} +.art-list-title a { + color: #000; +} +.art-list-title a:hover { + color: #F40034; +} +.art-list-item p { + width: 65%; + float: left; + margin-left: 5%; + margin-bottom: 0; + font-size: 16px; + line-height: 24px; +} + + +/* Footer +================================================== */ +.footer { + padding: 30px 40px; + overflow: hidden; + border-top: 1px solid #ccc; +} +.footer, +.footer a { + font-family: "proxima-nova", "helvetica neue", "helvetica", sans-serif; + font-size: 13px; + text-transform: uppercase; + color: #777; +} +.footer a:hover { + color: #000; +} +.back-to-top, +.footer-nav, +.offsite-links { + width: 45%; + float: left; +} +.psi { + width:10%; + float:left; + text-align: center; +} +.footer-nav { + text-align: center; +} +.offsite-links { + text-align: right; +} +.footer .twitter-link:hover { + color: #0084B4; +} +.footer .instagram-link:hover { + color: #3F729B; +} +.footer .github-link:hover { + color: #c5376d; +} +.footer .caffein8-link:hover{ + color: black; +} +.footer .rss-link:hover { + color: #e85d24; +} +/* Remove prev & next links on loop */ +.art-list + .footer .footer-nav, +.abt + .footer .footer-nav { + text-indent: -9999px; + text-align: left; +} + + +/* White Reverse Theme +================================================== */ +/* Nav */ +.nav.white { + border-bottom-color: #fff; + border-bottom-color: rgba(255,255,255,.3); +} +.nav.white li a, +.nav.white li, +.nav.white #logo h1 { + color: #fff; + text-shadow: 0 0 8px rgba(0,0,0,.5); +} +.nav.white #logo h1 { + background-position: top center; +} + +nav.pagination{ + text-align: right; + padding-bottom: 25px; +} +/* Art header */ +.art-header.white { + background-color: #111; +} +.art-header.white .art-time, +.art-header.white .art-title, +.art-header.white .art-subtitle { + color: #fff; + text-shadow: 0 0 8px rgba(0,0,0,.5); +} + + +/* About page +================================================== */ +.abt { + padding: 200px 0 100px; + list-style: none; +} +.abt .abt-header { + font-size: 140px; + line-height: 1; + text-transform: none; +} +.abt .abt-subheader { + font-size: 24px; + font-style: italic; + text-transform: none; + color: #777; +} +.abt-body { + -moz-column-count: 2; + -moz-column-gap: 20px; + -webkit-column-count: 2; + -webkit-column-gap: 20px; + margin-bottom: 28px; +} +.abt-signoff { + line-height: 1.3; + font-style: italic; + color: #777; +} + +/* 404 page +================================================== */ +.fourohfour { + padding: 240px 0 100px; + text-align: center; +} + +/* Code +================================================== */ + +code, tt { +background: #ededee; +color: #3C4043; +font-size: 90%; +padding: 1px 3px; +} + +pre { + width: 92%; + overflow: auto; + margin: 2rem 0; + padding: 1rem 0.8rem 1rem 1.2rem; + color: #3f3b36; + border: 1px solid #ccc; + border-left: 1rem solid #ccc; + font: lighter 1.2rem/2rem monospace; + background: url(/assets/img/pre.png) repeat 0 -0.9rem; + background-size: 1px 4rem; +} + +pre code, tt { +font-size: inherit; +white-space: -moz-pre-wrap; +white-space: pre-wrap; +background: transparent; +border: none; +padding: 0; +} + + +.gist { + font-size: 14px; +} + + +/* Responsive +================================================== */ +@media only screen and (max-width: 1080px) { + /* Set all of the 980 containers to flexible width */ + .nav, + .art-body-inner, + .art-header-inner, + .footer, + .art-list, + .abt, + .fourohfour { + width: 90%; + } + .nav, + .art-header-inner { + margin-left: -45%; + } +} + +@media only screen and (max-width: 1024px) { + /* Everything becomes scrolling and non-fading */ + .nav, + .nav.fixed { + position: relative; + opacity: 1 !important; /* Important to override JS values */ + display: inline-block; + } + .art-header-inner { + position: relative; + top: 0 !important; /* Important to override JS values */ + margin-top: 240px !important; /* Important to override JS values */ + opacity: 1 !important; /* Important to override JS values */ + } + /* Articles no longer have fixed heights */ + .art-header { + height: auto; + padding-bottom: 100px; + background-size: cover !important; + background-attachment: scroll; + } + /* Remove bottom space out if articles doesn't have a background */ + .simple .art-header { + padding-bottom: 0; + } + .art-list { + padding-top: 0; + } + .abt { + padding: 40px 0; + } + .fourohfour { + padding: 80px 0 60px; + } +} + +@media only screen and (max-width: 780px) { + .art-body-inner ul, + .art-body-inner ol { + margin-left: 20px; + } + .art-title { + letter-spacing: 0; + } + .art-subtitle, + .art-time { + font-size: 12px; + } + .nav { + padding-top: 25px; + height: 55px; + } + .art-list-item-title-and-time, + .art-list-item p { + float: none; + width: auto; + margin-left: 0; + } + .abt-body { + -moz-column-count: 1; + -webkit-column-count: 1; + } +} + +@media only screen and (max-width: 500px) { + .nav-primary li { + margin-left: 10px; + } + .nav #logo h1 { + font-size: 16px; + letter-spacing: -1px; + } + .nav li a { + font-size: 12px; + } + .art-header { + padding-bottom: 50px; + } + .art-header-inner { + margin-top: 190px !important; + } + .art-body-inner { + padding-top: 30px; + } + body { + font-size: 15px; + line-height: 24px; + } + p { + margin-bottom: 24px; + } + .footer { + padding: 10px 0 20px; + } + .back-to-top, + .footer-nav { + width: 50%; + } + .back-to-top { + text-align: left; + } + .footer-nav { + text-align: right; + } + .offsite-links { + float: left; + width: 100%; + text-align: left; + } + .offsite-links a { + font-size: 12px; + } + .art-list + .footer .footer-nav { + display: none; + } + .abt .abt-header { + font-size: 80px; + } + .abt .abt-subheader { + font-size: 18px; + } +} + + +/* Misc +================================================== */ +::selection { + background: #000; + color: #fff; +} +::-moz-selection { + background: #000; + color: #fff; +} +img.left { + float: left; + margin-right: 20px; +} +img.right { + float: right; + margin-left: 20px; +} +/* Clearfixing pile */ +.nav:before, +.art-body-inner:before, +.footer:before, +.art-list:before { + content:""; + display:table; +} +.nav:after, +.art-body-inner:after, +.footer:after, +.art-list:after { + clear:both; +} +.nav, +.art-body-inner, +.footer, +.art-list { + zoom:1; /* For IE 6/7 (trigger hasLayout) */ +} + + +@-webkit-keyframes le-fade { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-moz-keyframes le-fade { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +.art-header-inner { + -webkit-animation: le-fade .5s 0 1 ease-out; + -moz-animation: le-fade .5s 0 1 ease-out; +} + +.art-list, +.nav, +.abt, +.art-body { + -webkit-animation: le-fade .5s 0s 1 ease-out; + -moz-animation: le-fade .5s 0s 1 ease-out; +} + +hr.featured-article { + padding: 0; + border: none; + border-top: medium double #bbb; + color: #bbb; + text-align: center; +} +hr.featured-article:after { + content: "? Featured Article ?"; + display: inline-block; + position: relative; + top: -0.8em; + font-size: 1.2em; + padding: 0 0.6em; + background: white; +} + +/* FORM */ + +#contact-area { + width: 600px; + margin-top: 25px; +} + +#contact-area input, #contact-area textarea { + padding: 5px; + width: 471px; + font-family: Helvetica, sans-serif; + margin: 0px 0px 10px 0px; + border: 2px solid #ccc; +} + +#contact-area textarea { + height: 90px; +} + +#contact-area textarea:focus, #contact-area input:focus { + border: 2px solid #900; +} + +#contact-area input.submit-button { + width: 100px; + +} + +label { + float: left; + text-align: right; + margin-right: 15px; + width: 100px; + padding-top: 5px; +} \ No newline at end of file diff --git a/IF3110-02-Simple-Blog-Java/build/web/assets/img/favicon.ico b/IF3110-02-Simple-Blog-Java/build/web/assets/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..40b40ed345847af1db325abe295a4d7c33cc51d9 GIT binary patch literal 799 zcmZ?wbhEHbRA5kGc$UeqZ{NPZfB)9j)^6Us`Olv}|Ni~^`SWLYcXw)Ps)K`rqod=Z zMT^$0Ti4v&eCN)c-@kvqef!qi+dDKg^!@wyU%q@%RaG@NH($Pd`GN%tl9G}xUc6XR zQu6E9FLibGuV25udiCn{>(}4Ee~*cY`SIh2tE=m-UAqn)I`rbji{9SeckkZKojdp0 zvuEz^?gtJWP*G9YxN+mzvuFMM{GL2{qNu1iW5$g8_wN@K6&V>BZQHi(@#DvNd3lzW zmLEQRxPANf_U+p*UAlDo^y%p6==k{fH*el_bab?~wpLVBeE$47J3IUC-Mhxd#!Hqg z@$m34Gc(J{$+Z^ zfgzJY2V@Q?P8it#H)J+7x3spkcXW1jck-(-hw?JH@v`)EtEXqoo}E5zdY96i*(uFN zj0-Y3q?&aXr)xJUr*kZjNcUQi$uByGv)MHxowvt!Rt9@B(;SH=f#c~~U98q~HZ(=d zNo?X+@6f5SID?ZlQ)UiZror)R3hjJv=A>l?%&`{^ew41l*Dk;$_GoTkf%6J>Eil=TJ#E=(?aY;SM|LZ4G}!4c(8v)yZsj{E+;CCD xp^pWP3S4uv5|&mxacW8Syewc*%yzV+uO-MJ;ZQ()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + var result = pattern.test(email); + + if (!result) { + document.getElementById("email").style.backgroundColor = "#ffaaaa"; + document.getElementById("submitKomentar").disabled = true; + } else { + document.getElementById("email").style.backgroundColor = "#aaffaa"; + document.getElementById("submitKomentar").disabled = false; + } + return result; +} + +function sendComment() { + var idPost = encodeURIComponent(document.getElementById("id").value); + var nama = encodeURIComponent(document.getElementById("nama").value); + var email = encodeURIComponent(document.getElementById("email").value); + var komentar = encodeURIComponent(document.getElementById("komentar").value); + + if (!validateKomentar(nama, email, komentar)) { + return false; + } + + var xmlhttp; + if (window.XMLHttpRequest) { + xmlhttp = new XMLHttpRequest(); + } else { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + xmlhttp.onreadystatechange = function() { + if (xmlhttp.readyState==4 && xmlhttp.status==200) { + existingComment = document.getElementById("komentar-placeholder").innerHTML; + document.getElementById("komentar-placeholder").innerHTML = xmlhttp.responseText; + + if (!document.getElementById("nama").disabled) + document.getElementById("nama").value = ''; + if (!document.getElementById("email").disabled) + document.getElementById("email").value = ''; + document.getElementById("komentar").value = ''; + } + } + + var parameters = "idpost=" + idPost + "&nama=" + nama + "&email=" + email + "&komentar=" + komentar; + xmlhttp.open("POST", "SaveComment", true); + xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + xmlhttp.send(parameters); +} + +window.onload = loadComment(); + +function loadComment() { + var idPost = encodeURIComponent(document.getElementById("id").value); + + var xmlhttp; + if (window.XMLHttpRequest) { + xmlhttp = new XMLHttpRequest(); + } else { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + xmlhttp.onreadystatechange = function() { + if (xmlhttp.readyState==4 && xmlhttp.status==200) { + document.getElementById("komentar-placeholder").innerHTML = xmlhttp.responseText; + } + } + + var parameters = "idpost=" + idPost; + xmlhttp.open("GET", "LoadComment?" + parameters, true); + xmlhttp.send(null); +} + +function validateKomentar(nama, email, komentar) { + if (isEmpty(nama)) { + alert('Kolom nama tidak boleh kosong'); + return false; + } + if (isEmpty(email)) { + alert('Kolom email tidak boleh kosong'); + return false; + } + if (isEmpty(komentar)) { + alert('Kolom komentar tidak boleh kosong'); + return false; + } + if (!validateEmail()) { + alert('Email tidak valid'); + return false; + } + + return true; +} + +function confirmDeletion(postId) { + var confirm = window.confirm("Apakah Anda yakin menghapus post ini?"); + if (confirm == true) { + window.location = "DeletePost?id=" + postId; + } else { + return false; + } +} + +function confirmSoftDeletion(postId) { + var confirm = window.confirm("Apakah Anda yakin menghapus post ini?"); + if (confirm == true) { + window.location = "SoftDelete?id=" + postId; + } else { + return false; + } +} + +function validate() { + var judul = document.getElementById("judul").value; + var content = document.getElementById("konten").value; + var validDateFormat = true; + var rawDate, tanggal; + try { + rawDate = document.getElementById("tanggal").value.split("/"); + if (rawDate[2] < 1990 || rawDate[2] > 2099 || rawDate[0] < 0 || rawDate[0] > 12 || rawDate[1] < 0 || rawDate[1] > 31) { + validDateFormat = false; + } else { + tanggal = new Date(rawDate[2], rawDate[0] - 1, rawDate[1]); + } + } catch(exception) { + validDateFormat = false; + } + var today = new Date(); + + if (isEmpty(judul)) { + alert("Judul tidak boleh kosong"); + return false; + } + if (validDateFormat) { + if (!compareDate(tanggal, today)) { + alert("Format tanggal tidak valid"); + return false; + } + } else { + alert("Format tanggal tidak valid"); + return false; + } + if (isEmpty(content)) { + alert("Konten tidak boleh kosong"); + return false; + } + + return true; +} + +function compareDate(tanggal, today) { + if (tanggal.getFullYear() > today.getFullYear()) + return true; + if (tanggal.getFullYear() < today.getFullYear()) + return false; + if (tanggal.getMonth() > today.getMonth()) + return true; + if (tanggal.getMonth() < today.getMonth()) + return false; + if (tanggal.getDate() >= today.getDate()) + return true; + if (tanggal.getDate() < today.getDate()) + return false; +} + +function isEmpty(val){ + return (val === undefined || val == null || val.length <= 0) ? true : false; +} \ No newline at end of file diff --git a/IF3110-02-Simple-Blog-Java/build/web/gfv3ee6.dpf b/IF3110-02-Simple-Blog-Java/build/web/gfv3ee6.dpf new file mode 100644 index 00000000..e69de29b diff --git a/IF3110-02-Simple-Blog-Java/nbproject/private/private.properties b/IF3110-02-Simple-Blog-Java/nbproject/private/private.properties new file mode 100644 index 00000000..6a210ebf --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/nbproject/private/private.properties @@ -0,0 +1,7 @@ +deploy.ant.properties.file=C:\\Users\\DiePiePaw\\AppData\\Roaming\\NetBeans\\8.0.1\\config\\GlassFishEE6\\Properties\\gfv3-68613151.properties +j2ee.platform.is.jsr109=true +j2ee.server.domain=C:/Program Files/glassfish-4.1/glassfish/domains/domain1 +j2ee.server.home=C:/Program Files/glassfish-4.1/glassfish +j2ee.server.instance=[C:\\Program Files\\glassfish-4.1\\glassfish;C:\\Program Files\\glassfish-4.1\\glassfish\\domains\\domain1]deployer:gfv3ee6:localhost:4848 +j2ee.server.middleware=C:/Program Files/glassfish-4.1 +user.properties.file=C:\\Users\\DiePiePaw\\AppData\\Roaming\\NetBeans\\8.0.1\\build.properties diff --git a/IF3110-02-Simple-Blog-Java/nbproject/private/private.xml b/IF3110-02-Simple-Blog-Java/nbproject/private/private.xml new file mode 100644 index 00000000..3b5534ed --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/nbproject/private/private.xml @@ -0,0 +1,9 @@ + + + + + + file:/D:/Project/Java/Web/IF3110-02-Simple-Blog-Java-0.2/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/DeletePostServlet.java + + + diff --git a/IF3110-02-Simple-Blog-Java/nbproject/project.properties b/IF3110-02-Simple-Blog-Java/nbproject/project.properties index c301af60..426056ba 100644 --- a/IF3110-02-Simple-Blog-Java/nbproject/project.properties +++ b/IF3110-02-Simple-Blog-Java/nbproject/project.properties @@ -35,7 +35,7 @@ j2ee.compile.on.save=true j2ee.copy.static.files.on.save=true j2ee.deploy.on.save=true j2ee.platform=1.7-web -j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar +j2ee.platform.classpath=${j2ee.server.middleware}/mq/lib/jaxm-api.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java index 03fc5561..98183cb3 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java @@ -202,4 +202,31 @@ public static boolean publish (int id) { } return true; } + + public static boolean softDelete (int id) { + PreparedStatement statement = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("UPDATE `post` SET `status`='Deleted' WHERE id=" + id); + statement.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } + + public static boolean unDelete (int id) { + PreparedStatement statement = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("UPDATE `post` SET `status`='Unpublished' WHERE id=" + id); + statement.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } + } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SofDeletePostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SofDeletePostServlet.java new file mode 100644 index 00000000..2808c7de --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SofDeletePostServlet.java @@ -0,0 +1,96 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asep Saepudin + */ +@WebServlet(name = "SoftDeletedPost", urlPatterns = {"/SoftDeletedPost"}) +public class SofDeletePostServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet PublishedPostsServlet"); + out.println(""); + out.println(""); + out.println("

    Servlet PublishedPostsServlet at " + request.getContextPath() + "

    "); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + if (request.getSession().getAttribute("currentUser") == null || + !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.sendRedirect("PublishedPosts"); + } else { + + ArrayList deletedPosts = PostDAO.getAllDeletedPosts(); + request.getSession().setAttribute("allDeletedPosts", deletedPosts); + response.sendRedirect("SoftDeletedPost.jsp"); + + } + + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SoftDeleteServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SoftDeleteServlet.java new file mode 100644 index 00000000..2bc5dd03 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/SoftDeleteServlet.java @@ -0,0 +1,104 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author DiePiePaw + */ +@WebServlet(urlPatterns = {"/SoftDelete"}) +public class SoftDeleteServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet SoftDeleteServlet"); + out.println(""); + out.println(""); + out.println("

    Servlet SoftDeleteServlet at " + request.getContextPath() + "

    "); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + if (request.getSession().getAttribute("currentUser") == null || + !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.sendRedirect("PublishedPosts"); + } else { + + String id = request.getParameter("id"); + + if (request.getSession().getAttribute("currentUser") == null) { + response.sendRedirect("PublishedPosts"); + } else { + if (!PostDAO.softDelete(Integer.valueOf(id))) { + request.getSession().setAttribute("DeletePostStatus", "Post (id = " + id + ") tidak berhasil dihapus"); + response.sendRedirect("DeletePostStatus.jsp"); + } else { + request.getSession().setAttribute("DeletePostStatus", "Post (id = " + id + ") berhasil dihapus"); + response.sendRedirect("DeletePostStatus.jsp"); + } + } + } + processRequest(request, response); + + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UndeletePostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UndeletePostServlet.java new file mode 100644 index 00000000..f79a6337 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UndeletePostServlet.java @@ -0,0 +1,98 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLDecoder; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asep Saepudin + */ +@WebServlet(name = "UndeletePost", urlPatterns = {"/UndeletePost"}) +public class UndeletePostServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet PublishPostServlet"); + out.println(""); + out.println(""); + out.println("

    Servlet PublishPostServlet at " + request.getContextPath() + "

    "); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + String id = request.getParameter("id"); + + if (request.getSession().getAttribute("currentUser") == null || + !((User)request.getSession().getAttribute("currentUser")).getRole().equals("Admin")) { + response.sendRedirect("PublishedPosts"); + } else { + if (!PostDAO.unDelete(Integer.valueOf(id))) { + request.getSession().setAttribute("UndeletePostStatus", "Post (id = " + id + ") tidak berhasil di-undelete"); + response.sendRedirect("UndeletePostStatus.jsp"); + } else { + request.getSession().setAttribute("PublishPostStatus", "Post (id = " + id + ") berhasil di-undelete"); + response.sendRedirect("UndeletePostStatus.jsp"); + } + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp index bb192535..08da2680 100644 --- a/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp @@ -32,6 +32,8 @@ <% } if (currentUser.getRole().equals("Admin") || currentUser.getRole().equals("Editor")) { %>
  • + Unpublished Posts
  • <% } if (currentUser.getRole().equals("Admin")) { %> +
  • + Deleted Posts
  • + <% } if (currentUser.getRole().equals("Admin")) { %>
  • + User Management
  • <% } if (currentUser != null) { %>
  • + Logout
  • @@ -57,7 +59,7 @@

    <%= publishedPosts.get(i).getKonten() %> …

    <% if (currentUser != null) { %> - Edit | Delete + Edit | Delete <% } %>

    diff --git a/IF3110-02-Simple-Blog-Java/web/SoftDeletedPost.jsp b/IF3110-02-Simple-Blog-Java/web/SoftDeletedPost.jsp new file mode 100644 index 00000000..8b8d46f8 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/SoftDeletedPost.jsp @@ -0,0 +1,100 @@ +<%-- + Document : UnpublishedPost + Created on : Nov 23, 2014, 9:27:46 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.PostDAO"%> +<%@page import="java.util.ArrayList"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Deleted Posts + + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (!currentUser.getRole().equals("Admin")) { +// request.getSession().setAttribute("forbidden", "Psst! Halaman khusus Admin dan Editor"); + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    +
    + +
    +
    + + + +
    + + + + diff --git a/IF3110-02-Simple-Blog-Java/web/UndeletePostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/UndeletePostStatus.jsp new file mode 100644 index 00000000..54721288 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/UndeletePostStatus.jsp @@ -0,0 +1,74 @@ +<%-- + Document : PublishPostStatus + Created on : Nov 23, 2014, 9:44:46 PM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Undelete Post + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + if (!currentUser.getRole().equals("Admin")) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("UndeletePostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp b/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp index b7092131..12b667fe 100644 --- a/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp @@ -44,6 +44,8 @@
  • + Published Posts
  • <% } %> <% if (currentUser.getRole().equals("Admin")) { %> +
  • + Deleted Posts
  • + <% } if (currentUser.getRole().equals("Admin")) { %>
  • + User Management
  • <% } %> <% if (currentUser != null) { %> diff --git a/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp b/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp index 2502890e..c6db74b1 100644 --- a/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp +++ b/IF3110-02-Simple-Blog-Java/web/UserManagement.jsp @@ -39,7 +39,8 @@ diff --git a/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js b/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js index 0893c04d..db656f16 100644 --- a/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js +++ b/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js @@ -100,6 +100,15 @@ function confirmDeletion(postId) { } } +function confirmSoftDeletion(postId) { + var confirm = window.confirm("Apakah Anda yakin menghapus post ini?"); + if (confirm == true) { + window.location = "SoftDelete?id=" + postId; + } else { + return false; + } +} + function validate() { var judul = document.getElementById("judul").value; var content = document.getElementById("konten").value; From abd97e51bb6675b4917a8c23459b9ebca770f18a Mon Sep 17 00:00:00 2001 From: Asep Saepudin Date: Tue, 2 Dec 2014 01:15:11 +0700 Subject: [PATCH 09/10] Added image post feature --- .../nbproject/project.properties | 2 +- .../java/wbd/tubesII/AddImagePostServlet.java | 142 ++++++++++++++++++ .../java/wbd/tubesII/AddNewPostServlet.java | 14 +- .../src/java/wbd/tubesII/Post.java | 9 ++ .../src/java/wbd/tubesII/PostDAO.java | 42 +++++- .../wbd/tubesII/RemoveImagePostServlet.java | 97 ++++++++++++ .../java/wbd/tubesII/UndeletePostServlet.java | 2 +- .../web/AddImagePost.jsp | 81 ++++++++++ .../web/ImagePostStatus.jsp | 70 +++++++++ .../web/PublishedPost.jsp | 5 +- .../web/SoftDeletedPost.jsp | 3 + .../web/UnpublishedPost.jsp | 9 +- IF3110-02-Simple-Blog-Java/web/ViewPost.jsp | 7 + .../web/assets/css/screen.css | 2 +- .../web/assets/js/myjs.js | 11 +- 15 files changed, 479 insertions(+), 17 deletions(-) create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddImagePostServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RemoveImagePostServlet.java create mode 100644 IF3110-02-Simple-Blog-Java/web/AddImagePost.jsp create mode 100644 IF3110-02-Simple-Blog-Java/web/ImagePostStatus.jsp diff --git a/IF3110-02-Simple-Blog-Java/nbproject/project.properties b/IF3110-02-Simple-Blog-Java/nbproject/project.properties index 426056ba..c301af60 100644 --- a/IF3110-02-Simple-Blog-Java/nbproject/project.properties +++ b/IF3110-02-Simple-Blog-Java/nbproject/project.properties @@ -35,7 +35,7 @@ j2ee.compile.on.save=true j2ee.copy.static.files.on.save=true j2ee.deploy.on.save=true j2ee.platform=1.7-web -j2ee.platform.classpath=${j2ee.server.middleware}/mq/lib/jaxm-api.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar +j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddImagePostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddImagePostServlet.java new file mode 100644 index 00000000..4b46a1d2 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddImagePostServlet.java @@ -0,0 +1,142 @@ +package wbd.tubesII; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.MultipartConfig; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.Part; + +/** + * + * @author Asus + */ +@WebServlet(name = "AddImagePost", urlPatterns = {"/AddImagePost"}) +@MultipartConfig(fileSizeThreshold=1024*1024*2, + maxFileSize=1024*1024*10, + maxRequestSize=1024*1024*50, + location="E:\\workspace\\NetBeansProjects\\IF3110-02-Simple-Blog-Java\\IF3110-02-Simple-Blog-Java\\build\\web\\upload") // DEVELOPMENT ONLY!!! NEVER EVER EVER EVER USE THIS PATH IN PRODUCTION!!! EVER!!! +public class AddImagePostServlet extends HttpServlet { + private static final String SAVE_DIR = "upload"; + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet AddImagePostServlet"); + out.println(""); + out.println(""); + out.println("

    Servlet AddImagePostServlet at " + request.getContextPath() + "

    "); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String id = request.getParameter("id"); + + if (request.getSession().getAttribute("currentUser") == null) { + response.sendRedirect("PublishedPosts"); + } else { + Post editedPost = PostDAO.getPost(Integer.valueOf(id)); + if (editedPost != null) { + request.getSession().setAttribute("editedImagePost", editedPost); + response.sendRedirect("AddImagePost.jsp"); + } else { + response.sendRedirect("PublishedPosts"); + } + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String appPath = request.getServletContext().getRealPath(""); + System.out.println("APPPATH = " + appPath); + String savePath = appPath + File.separator + SAVE_DIR; + System.out.println("SAVEPATH = " + savePath); + + // creates the save directory if it does not exists + File fileSaveDir = new File(savePath); + if (!fileSaveDir.exists()) { + fileSaveDir.mkdir(); + } + Part part = request.getPart("file"); + System.out.println(part.getName()); + System.out.println(part.getSize()); + System.out.println(part.getSubmittedFileName()); + String fileName = extractFileName(part); + System.out.println("WRITEPATH = " + savePath + File.separator + fileName); + System.out.println(fileName); + part.write(fileName); + + if (PostDAO.addImage(fileName, Integer.valueOf(request.getParameter("id")))) { + request.getSession().setAttribute("ImagePostStatus", "Gambar post berhasil disimpan"); + response.sendRedirect("ImagePostStatus.jsp"); + } else { + request.getSession().setAttribute("ImagePostStatus", "Gambar post tidak berhasil disimpan"); + response.sendRedirect("ImagePostStatus.jsp"); + } + + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + + private String extractFileName(Part part) { + String contentDisp = part.getHeader("content-disposition"); + String[] items = contentDisp.split(";"); + for (String s : items) { + if (s.trim().startsWith("filename")) { + return s.substring(s.indexOf("=") + 2, s.length()-1); + } + } + return ""; + } +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java index c30df0b4..7ebb121b 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/AddNewPostServlet.java @@ -2,10 +2,9 @@ import java.io.IOException; import java.io.PrintWriter; -import java.text.DateFormat; +import java.net.URLDecoder; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Date; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; @@ -19,8 +18,7 @@ * @author Asep Saepudin */ @WebServlet(name = "AddNewPost", urlPatterns = {"/AddNewPost"}) -public class AddNewPostServlet extends HttpServlet { - +public class AddNewPostServlet extends HttpServlet { /** * Processes requests for both HTTP GET and POST * methods. @@ -79,12 +77,12 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - try { + throws ServletException, IOException { + try { + System.out.println("TANGGAL PARAMETER => " + request.getParameter("tanggal")); Post post = new Post(); post.setJudul(request.getParameter("judul")); - post.setTanggal(new SimpleDateFormat("MM/dd/yyyy").parse(request.getParameter("tanggal"))); + post.setTanggal(new SimpleDateFormat("MM/dd/yyyy").parse(request.getParameter("tanggal"))); post.setKonten(request.getParameter("konten")); post.setStatus("Unpublished"); diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java index 94ac3372..ccc9b74d 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/Post.java @@ -12,6 +12,7 @@ public class Post { private Date tanggal; private String konten; private String status; + private String image; public int getId() { return id; @@ -52,4 +53,12 @@ public String getStatus() { public void setStatus(String status) { this.status = status; } + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java index 98183cb3..b0651657 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/PostDAO.java @@ -100,6 +100,7 @@ public static Post getPost(int id) { // post.setTanggal(new SimpleDateFormat("MM/dd/yyyy").parse(rs.getString("tanggal"))); post.setKonten(rs.getString("konten")); post.setStatus(rs.getString("status")); + post.setImage(rs.getString("image")); } } catch (SQLException ex) { Logger.getLogger(PostDAO.class.getName()).log(Level.SEVERE, null, ex); @@ -190,7 +191,7 @@ public static ArrayList getAllDeletedPosts() { return posts; } - public static boolean publish (int id) { + public static boolean publish(int id) { PreparedStatement statement = null; try { currentCon = ConnectionManager.getConnection(); @@ -203,7 +204,7 @@ public static boolean publish (int id) { return true; } - public static boolean softDelete (int id) { + public static boolean softDelete(int id) { PreparedStatement statement = null; try { currentCon = ConnectionManager.getConnection(); @@ -216,7 +217,7 @@ public static boolean softDelete (int id) { return true; } - public static boolean unDelete (int id) { + public static boolean unDelete(int id) { PreparedStatement statement = null; try { currentCon = ConnectionManager.getConnection(); @@ -229,4 +230,39 @@ public static boolean unDelete (int id) { return true; } + public static boolean hasImage(Post post) { + try { + return !post.getImage().equals("") && post.getImage() != null; + } catch (Exception e){ + + } + return false; + } + + public static boolean addImage(String image, int id) { + PreparedStatement statement = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("UPDATE `post` SET `image`='" + image + "' WHERE id=" + id); + statement.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } + + public static boolean removeImage(int id) { + PreparedStatement statement = null; + try { + currentCon = ConnectionManager.getConnection(); + statement = currentCon.prepareStatement("UPDATE `post` SET `image`='' WHERE id=" + id); + statement.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } + } diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RemoveImagePostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RemoveImagePostServlet.java new file mode 100644 index 00000000..ec480a8c --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/RemoveImagePostServlet.java @@ -0,0 +1,97 @@ +package wbd.tubesII; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Asus + */ +@WebServlet(name = "RemoveImagePost", urlPatterns = {"/RemoveImagePost"}) +public class RemoveImagePostServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet RemoveImagePostServlet"); + out.println(""); + out.println(""); + out.println("

    Servlet RemoveImagePostServlet at " + request.getContextPath() + "

    "); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String id = request.getParameter("id"); + + if (request.getSession().getAttribute("currentUser") == null) { + response.sendRedirect("PublishedPosts"); + } else { + if (PostDAO.removeImage(Integer.valueOf(id))) { + request.getSession().setAttribute("ImagePostStatus", "Gambar post berhasil dihapus"); + response.sendRedirect("ImagePostStatus.jsp"); + } else { + request.getSession().setAttribute("ImagePostStatus", "Gambar post tidak berhasil dihapus"); + response.sendRedirect("ImagePostStatus.jsp"); + } + } + processRequest(request, response); + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UndeletePostServlet.java b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UndeletePostServlet.java index f79a6337..7dc3653a 100644 --- a/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UndeletePostServlet.java +++ b/IF3110-02-Simple-Blog-Java/src/java/wbd/tubesII/UndeletePostServlet.java @@ -64,7 +64,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) request.getSession().setAttribute("UndeletePostStatus", "Post (id = " + id + ") tidak berhasil di-undelete"); response.sendRedirect("UndeletePostStatus.jsp"); } else { - request.getSession().setAttribute("PublishPostStatus", "Post (id = " + id + ") berhasil di-undelete"); + request.getSession().setAttribute("UndeletePostStatus", "Post (id = " + id + ") berhasil di-undelete"); response.sendRedirect("UndeletePostStatus.jsp"); } } diff --git a/IF3110-02-Simple-Blog-Java/web/AddImagePost.jsp b/IF3110-02-Simple-Blog-Java/web/AddImagePost.jsp new file mode 100644 index 00000000..4d94b021 --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/AddImagePost.jsp @@ -0,0 +1,81 @@ +<%-- + Document : AddImagePost + Created on : Dec 1, 2014, 10:18:26 PM + Author : Asep Saepudin +--%> + +<%@page import="java.text.Format"%> +<%@page import="java.text.SimpleDateFormat"%> +<%@page import="java.util.Date"%> +<%@page import="wbd.tubesII.Post"%> +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Add Image Post + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + Post editedPost = (Post)request.getSession().getAttribute("editedImagePost"); + %> + +
    + + + +
    +

    -

    + +
    +
    +

    Edit Post

    + +
    +
    + + + + + + +
    +
    +
    +
    +
    + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/web/ImagePostStatus.jsp b/IF3110-02-Simple-Blog-Java/web/ImagePostStatus.jsp new file mode 100644 index 00000000..ef7513ca --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/web/ImagePostStatus.jsp @@ -0,0 +1,70 @@ +<%-- + Document : ImagePostStatus + Created on : Dec 2, 2014, 12:48:34 AM + Author : Asep Saepudin +--%> + +<%@page import="wbd.tubesII.User"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + + + Simple Blog | Add Image Post + + <% + User currentUser = (User)request.getSession().getAttribute("currentUser"); + if (currentUser == null) { + response.setStatus(response.SC_MOVED_TEMPORARILY); + response.setHeader("Location", "PublishedPosts"); + } + %> + + +
    + + + +
    + +
    +
    + +

    <%= (String)request.getSession().getAttribute("ImagePostStatus") %>

    +

    Continue...

    +
    +
    + + +
    + + + +
    + + + diff --git a/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp index 08da2680..ae1b1f49 100644 --- a/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/PublishedPost.jsp @@ -57,9 +57,12 @@
    <%= publishedPosts.get(i).getTanggal() %>
    Featured
    + <% if (PostDAO.hasImage(publishedPosts.get(i))) { %> +

    + <% } %>

    <%= publishedPosts.get(i).getKonten() %> …

    <% if (currentUser != null) { %> - Edit | Delete + Edit | Delete | <% if (!PostDAO.hasImage(publishedPosts.get(i)) && currentUser != null) { %> Add Image <% } else if (PostDAO.hasImage(publishedPosts.get(i)) && currentUser != null) { %>Remove Image<% } %> <% } %>

    diff --git a/IF3110-02-Simple-Blog-Java/web/SoftDeletedPost.jsp b/IF3110-02-Simple-Blog-Java/web/SoftDeletedPost.jsp index 8b8d46f8..ad5bd1e4 100644 --- a/IF3110-02-Simple-Blog-Java/web/SoftDeletedPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/SoftDeletedPost.jsp @@ -63,6 +63,9 @@
    <%= deletedPosts.get(i).getTanggal() %>
    Featured
    + <% if (PostDAO.hasImage(deletedPosts.get(i))) { %> +

    + <% } %>

    <%= deletedPosts.get(i).getKonten() %> …

    Undelete | Delete diff --git a/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp b/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp index 12b667fe..4e98ad5a 100644 --- a/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/UnpublishedPost.jsp @@ -70,9 +70,16 @@

    <%= unpublishedPosts.get(i).getTanggal() %>
    Featured
    + <% if (PostDAO.hasImage(unpublishedPosts.get(i))) { %> +

    + <% } %>

    <%= unpublishedPosts.get(i).getKonten() %> …

    - Edit | Publish + Edit | + Publish | + Delete | + <% if (!PostDAO.hasImage(unpublishedPosts.get(i)) && currentUser != null) { %> Add Image + <% } else if (PostDAO.hasImage(unpublishedPosts.get(i)) && currentUser != null) { %>Remove Image<% } %>

    <% } %> diff --git a/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp index b4fd5a11..a436e924 100644 --- a/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp +++ b/IF3110-02-Simple-Blog-Java/web/ViewPost.jsp @@ -4,6 +4,7 @@ Author : Asep Saepudin --%> +<%@page import="wbd.tubesII.PostDAO"%> <%@page import="wbd.tubesII.Post"%> <%@page import="wbd.tubesII.User"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> @@ -49,6 +50,12 @@

    + <% if (PostDAO.hasImage(post)) { %> +
    +
    +

    +
    + <% } %>

    <%= post.getKonten() %>


    diff --git a/IF3110-02-Simple-Blog-Java/web/assets/css/screen.css b/IF3110-02-Simple-Blog-Java/web/assets/css/screen.css index ea2188e4..cc53838e 100644 --- a/IF3110-02-Simple-Blog-Java/web/assets/css/screen.css +++ b/IF3110-02-Simple-Blog-Java/web/assets/css/screen.css @@ -187,7 +187,7 @@ a:hover { margin-left: 0px; letter-spacing: 1px; font-family: 'Questrial', sans-serif; - font-size: 30px; + font-size: 20px; } #logo h1 span{ diff --git a/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js b/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js index db656f16..f33aef56 100644 --- a/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js +++ b/IF3110-02-Simple-Blog-Java/web/assets/js/myjs.js @@ -92,7 +92,7 @@ function validateKomentar(nama, email, komentar) { } function confirmDeletion(postId) { - var confirm = window.confirm("Apakah Anda yakin menghapus post ini?"); + var confirm = window.confirm("Apakah Anda yakin menghapus post ini secara permanen?"); if (confirm == true) { window.location = "DeletePost?id=" + postId; } else { @@ -109,6 +109,15 @@ function confirmSoftDeletion(postId) { } } +function confirmRemoveImagePost(postId) { + var confirm = window.confirm("Apakah Anda yakin menghapus image post ini?"); + if (confirm == true) { + window.location = "RemoveImagePost?id=" + postId; + } else { + return false; + } +} + function validate() { var judul = document.getElementById("judul").value; var content = document.getElementById("konten").value; From bc5fcbe8675fa504a8a205bb986a96aa09ed5e17 Mon Sep 17 00:00:00 2001 From: Asep Saepudin Date: Tue, 2 Dec 2014 01:18:28 +0700 Subject: [PATCH 10/10] Added updated db schema --- IF3110-02-Simple-Blog-Java/db/schema v2.sql | 122 ++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 IF3110-02-Simple-Blog-Java/db/schema v2.sql diff --git a/IF3110-02-Simple-Blog-Java/db/schema v2.sql b/IF3110-02-Simple-Blog-Java/db/schema v2.sql new file mode 100644 index 00000000..8695215e --- /dev/null +++ b/IF3110-02-Simple-Blog-Java/db/schema v2.sql @@ -0,0 +1,122 @@ +-- phpMyAdmin SQL Dump +-- version 4.0.4.1 +-- http://www.phpmyadmin.net +-- +-- Host: 127.0.0.1 +-- Generation Time: Dec 01, 2014 at 07:17 PM +-- Server version: 5.6.11 +-- PHP Version: 5.5.0 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; + +-- +-- Database: `wbdhebat` +-- +CREATE DATABASE IF NOT EXISTS `wbdhebat` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; +USE `wbdhebat`; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `komentar` +-- + +CREATE TABLE IF NOT EXISTS `komentar` ( + `name` varchar(100) DEFAULT NULL, + `email` varchar(100) DEFAULT NULL, + `tanggal` datetime DEFAULT NULL, + `komentar` text, + `post_id` int(11) NOT NULL, + KEY `fk_komentar_post_idx` (`post_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `komentar` +-- + +INSERT INTO `komentar` (`name`, `email`, `tanggal`, `komentar`, `post_id`) VALUES +('Editor I', 'editor@wbd.com', '2014-11-24 05:58:15', 'Ahey', 5), +('Editor I', 'editor@wbd.com', '2014-11-24 05:58:20', 'Woi', 5), +('Editor I', 'editor@wbd.com', '2014-11-24 05:58:26', 'Blaem', 5), +('a', 'asep@gmail.com', '2014-12-02 01:14:00', 'haha', 2); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `post` +-- + +CREATE TABLE IF NOT EXISTS `post` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `judul` varchar(200) DEFAULT NULL, + `tanggal` datetime DEFAULT NULL, + `konten` text, + `status` varchar(20) DEFAULT NULL, + `image` varchar(100) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ; + +-- +-- Dumping data for table `post` +-- + +INSERT INTO `post` (`id`, `judul`, `tanggal`, `konten`, `status`, `image`) VALUES +(2, 'Unpublished', '2015-11-02 00:00:00', 'Hahayyyy', 'Published', 'Gods-Valley-Dawn.jpg'), +(5, 'Tes Siomay Note', '2015-01-23 00:00:00', 'Hahaa', 'Published', ''), +(6, 'Tes Lagi', '2016-11-11 00:00:00', 'Uhuk', 'Published', ''), +(7, 'Tes Lagi 2', '2017-11-11 00:00:00', 'Uhuk 2', 'Unpublished', 'lib.PNG'), +(8, 'Uhuk 2', '2019-11-11 00:00:00', 'Jebret', 'Published', ''), +(9, 'Teskjlsdk ', '2019-11-11 00:00:00', 'Jskads', 'Unpublished', ''), +(10, 'Hahay', '2015-11-12 00:00:00', 'KHDsa', 'Unpublished', ''), +(11, 'Uhuyyyy', '2016-11-11 00:00:00', 'Uhuy', 'Published', ''), +(12, 'Upload', '2016-11-01 00:00:00', 'Aheyy', 'Unpublished', NULL), +(13, 'Aa', '2016-12-13 00:00:00', 'Hahayyyy', 'Unpublished', NULL); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `user` +-- + +CREATE TABLE IF NOT EXISTS `user` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `email` varchar(100) NOT NULL, + `password` varchar(100) NOT NULL, + `name` varchar(45) DEFAULT NULL, + `role` varchar(20) DEFAULT NULL, + PRIMARY KEY (`id`,`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ; + +-- +-- Dumping data for table `user` +-- + +INSERT INTO `user` (`id`, `email`, `password`, `name`, `role`) VALUES +(1, 'ibnu.komarudin@gmail.com', 'bandung', 'Asep Saepudin', 'Admin'), +(3, 'owner@wbd.com', 'owner', 'Owner I', 'Owner'), +(4, 'editor@wbd.com', 'editor', 'Editor I', 'Editor'), +(5, 'admin@wbd.com', 'admin', 'Admin I', 'Admin'), +(8, 'admin2@wbd.com', 'admin2', 'Admin II', 'Admin'), +(9, 'editor2@wbd.com', 'editor2', 'Editor II', 'Editor'), +(10, 'owner2@wbd.com', 'owner2', 'Owner II', 'Owner'); + +-- +-- Constraints for dumped tables +-- + +-- +-- Constraints for table `komentar` +-- +ALTER TABLE `komentar` + ADD CONSTRAINT `fk_komentar_post` FOREIGN KEY (`post_id`) REFERENCES `post` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;