Implementations
Sign Up
/bbs/signUp_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.user.*" %> <% request.setCharacterEncoding("UTF-8"); String email = request.getParameter("email"); String passwd = request.getParameter("passwd"); String name = request.getParameter("name"); String mobile = request.getParameter("mobile"); User user = new User(email, passwd, name, mobile); UserService service = new UserService(); service.addUser(user); response.sendRedirect("welcome.jsp"); %>
Visit http://localhost:8080/users/signUp.jsp, and click the submit button. If you see the welcome page, connect to SQL*PLUS and check your data in the member table. If you cannot see the welcome page, check the log messages in the WEB-INF/debug.log file. For Linux systems, you need to set permissions like chmod o+w debug.log. Tomcat also writes log messages to files in the CATALINA_HOME/logs directory. If the test succeeds, remove default text field values in SignUp.jsp.
login_proc.jsp
/users/login_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.user.UserService" %> <% request.setCharacterEncoding("UTF-8"); String url = request.getParameter("url"); String email = request.getParameter("email"); String passwd = request.getParameter("passwd"); UserService service = new UserService(); User user = service.login(email, passwd); if (user == null) { //if login failed, redirect to login.jsp response.sendRedirect("login.jsp?url=" + url + "&msg=Login-Failed"); } else { session.setAttribute("user", user); if (url != null && !url.equals("")) { response.sendRedirect(url); } else { response.sendRedirect("../bbs/list.jsp?boardCd=smalltalk&curPage=1"); } } %>
Add the following code snippet to the login page.
login.jsp
<h2>Login</h2> <% String msg = request.getParameter("msg"); if (msg != null) { %> <p style="color: red;">Login Failed!</p> <% } %>
Create a class to store static strings used in the project.
WebContants.java
package net.java_school.commons; public class WebContants { //Session key public final static String USER_KEY = "user"; }
"user" is the key value of the User object to put in the session. Open login_proc.jsp and change "user" to WebContants.USER_KEY.
Modify Account
Add the following string to WebContants class.
public final static String NOT_LOGIN = "Not Login";
/users/editAccount_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.user.UserService" %> <%@ page import="net.java_school.commons.WebContants" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); if (user == null) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.NOT_LOGIN); return; } request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name"); String mobile = request.getParameter("mobile"); String passwd = request.getParameter("passwd"); String email = user.getEmail(); UserService service = new UserService(); user = service.login(email, passwd); if (user == null) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.AUTHENTICATION_FAILED); session.removeAttribute(WebContants.USER_KEY); return; } user = new User(email, passwd, name, mobile); service.editAccount(user); session.setAttribute(WebContants.USER_KEY, user); response.sendRedirect("changePasswd.jsp"); %>
Change Password
/users/changePasswd_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.user.UserService" %> <%@ page import="net.java_school.commons.WebContants" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); if (user == null) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.NOT_LOGIN); return; } String currentPasswd = request.getParameter("currentPasswd"); String newPasswd = request.getParameter("newPasswd"); String email = user.getEmail(); UserService service = new UserService(); int check = service.changePasswd(currentPasswd, newPasswd, email); if (check < 1) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.AUTHENTICATION_FAILED); return; } response.sendRedirect("changePasswd_confirm.jsp"); %>
Reomve Account
Add the following string to WebContants class.
public final static String AUTHENTICATION_FAILED = "Authentication Failed";
/users/bye_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.user.UserService" %> <%@ page import="net.java_school.commons.WebContants" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); if (user == null) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.NOT_LOGIN); return; } String email = request.getParameter("email"); String passwd = request.getParameter("passwd"); UserService service = new UserService(); User check = service.login(email, passwd); if (check == null) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.AUTHENTICATION_FAILED); return; } service.bye(user.getEmail(), passwd); session.removeAttribute(WebContants.USER_KEY); response.sendRedirect("bye_confirm.jsp"); %>
Board List
/bbs/list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.board.*" %> <%@ page import="net.java_school.commons.NumbersForPaging" %> <%@ page import="java.util.ArrayList" %> <%@ include file="../inc/loginCheck.jsp" %> <% request.setCharacterEncoding("UTF-8"); String boardCd = request.getParameter("boardCd"); int curPage = Integer.parseInt(request.getParameter("curPage")); String searchWord = request.getParameter("searchWord"); if (searchWord == null) searchWord = ""; BoardService service = new BoardService(); int totalRecord = service.getTotalRecord(boardCd, searchWord); int numPerPage = 10; int pagePerBlock = 10; int startRecord = (curPage - 1) * numPerPage; int endRecord = curPage * numPerPage; List<Article> articleList = service.getArticleList(boardCd, searchWord, startRecord, endRecord); String boardName = service.getBoardName(boardCd); NumbersForPaing numbers = service.getNumbersForPaging(totalRecord, curPage, numPerPage, pagePerBlock); %>
Modify the part of list.jsp that shows the board name as follows.
<h1><%=boardName %></h1>
Modify the search form part as shown below.
<form action="list.jsp" method="get"> <input type="hidden" name="curPage" value="1" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <div id="search"> <input type="text" name="searchWord" size="15" maxlength="30" /> <input type="submit" value="Search" /> </div> </form>
Modify the value of the input element attribute in the #form-group as shown below.
<div id="form-group" style="display: none"> <form id="listForm" action="list.jsp" method="get"> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> <form id="viewForm" action="view.jsp" method="get"> <input type="hidden" name="articleNo" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> <form id="writeForm" action="write_form.jsp" method="get"> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> </div>
Implement paging processing logic as follows.
<% int listItemNo = numbers.getListItemNo(); int size = articleList.size(); for (int i = 0; i < size; i++) { Article article = articleList.get(i); int articleNo = article.getArticleNo(); String title = article.getTitle(); java.util.Date regdate = article.getRegdate(); int attachFileNum = article.getAttachFileNum(); int commentNum = article.getCommentNum(); int hit = article.getHit(); %> <tr> <td style="text-align: center;"><%=listItemNo %></td> <td> <a href="javascript:goView('<%=articleNo %>')"><%=title %></a> <% if (attachFileNum > 0) { %><img src="images/attach.png" alt="Attach File" style="vertical-align: middle;" /><% } %> <% if (commentNum > 0) { %><span class="bbs-strong">[<%=commentNum %>]</span><% } %> </td> <td style="text-align: center;"><%=regdate %></td> <td style="text-align: center;"><%=hit %></td> </tr> <% listItemNo--; } // for statement end %> </table> <div id="paging"> <% if (numbers.getPrevPage() != 0) { %> <a href="javascript:goList('<%=numbers.getPrevPage() %>')">[Prev]</a> <% } // if statement end int firstPage = numbers.getFirstPage(); int lastPage = numbers.getLastPage(); for (int i = firstPage; i <= lastPage; i++) { if (curPage == i) { %> <span class="bbs-strong"><%=i %></span> <% } else { %> <a href="javascript:goList('<%=i %>')"><%=i %></a> <% } }// for statement end // [Next] if (numbers.getNextPage() != 0) { %> <a href="javascript:goList('<%=numbers.getNextPage() %>')">[Next]</a> <% }// if statement end %> </div>
New Article form page
/bbs/write_form.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="net.java_school.board.*" %> <%@ page import="java.util.*" %> <%@ include file="../inc/loginCheck.jsp" %> <% request.setCharacterEncoding("UTF-8"); String articleNo = request.getParameter("articleNo"); String boardCd = request.getParameter("boardCd"); String curPage = request.getParameter("curPage"); String searchWord = request.getParameter("searchWord"); BoardService service = new BoardService(); String boardName = service.getBoardName(boardCd); %> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="Keywords" content="New Article form page" /> <meta name="Description" content="New Article form page" /> <title><%=boardName %></title> <link rel="stylesheet" href="/css/screen.css" type="text/css" /> <script type="text/javascript"> function goList() { var form = document.getElementById("listForm"); form.submit(); } function goView() { var form = document.getElementById("viewForm"); form.submit(); } </script> </head> <body> <div id="wrap"> <div id="header"> <%@ include file="../inc/header.jsp" %> </div> <div id="main-menu"> <%@ include file="../inc/main-menu.jsp" %> </div> <div id="container"> <div id="content"> <div id="content-categories"><%=boardName %></div> <h3>New Article</h3> <form id="writeForm" action="write_proc.jsp" method="post" enctype="multipart/form-data"> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <table id="write-form" class="bbs-table"> <tr> <td>Title</td> <td><input type="text" name="title" style="width: 90%;" /></td> </tr> <tr> <td colspan="2"> <textarea name="content" rows="17" cols="50"></textarea> </td> </tr> <tr> <td>Attach File</td> <td><input type="file" name="attachFile" /></td> </tr> </table> <div style="text-align: center;padding-bottom: 15px;"> <input type="submit" value="Submit" /> <input type="button" value="List" onclick="goList()" /> <% if (articleNo != null) { %> <input type="button" value="Detailed view" onclick="goView()" /> <% } //if statement end %> </div> </form> </div> </div> <div id="sidebar"> <%@ include file="bbs-sub.jsp" %> </div> <div id="extra"> <%@ include file="../inc/extra.jsp" %> </div> <div id="footer"> <%@ include file="../inc/footer.jsp" %> </div> </div> <div id="form-group" style="display: none"> <form id="viewForm" action="view.jsp" method="get"> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> <form id="listForm" action="list.jsp" method="get"> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> </div> </body> </html>
write_proc.jsp
Download http://www.servlets.com/cos/cos-26Dec2008.zip and unzip it. Copy cos.jar to WEB-INF/lib of your web application. Create a folder named upload on the document base. If your system is Unix-like, you need to set permissions on the upload folder.
/bbs/write_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="java.io.*" %> <%@ page import="net.java_school.commons.WebContants" %> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.user.UserService" %> <%@ page import="net.java_school.board.*" %> <%@ page import="com.oreilly.servlet.MultipartRequest" %> <%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); if (user == null) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.NOT_LOGIN); return; } String dir = application.getRealPath("/upload"); MultipartRequest multi = new MultipartRequest( request, dir, 5*1024*1024, "UTF-8", new DefaultFileRenamePolicy()); String title = multi.getParameter("title"); String content = multi.getParameter("content"); String filename = multi.getFilesystemName("attachFile"); String filetype = multi.getContentType("attachFile"); File f = multi.getFile("attachFile"); long filesize = 0L; AttachFile attachFile = null; if (f != null) { filesize = f.length(); attachFile = new AttachFile(); attachFile.setFilename(filename); attachFile.setFiletype(filetype); attachFile.setFilesize(filesize); attachFile.setEmail(user.getEmail()); } String boardCd = multi.getParameter("boardCd"); Article article = new Article(); article.setEmail(user.getEmail()); article.setTitle(title); article.setContent(content); article.setBoardCd(boardCd); BoardService service = new BoardService(); service.addArticle(article, attachFile); response.sendRedirect("list.jsp?boardCd=" + boardCd + "&curPage=1"); %>
view.jsp
/bbs/view.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ page import="net.java_school.user.*" %> <%@ page import="net.java_school.board.*" %> <%@ page import="net.java_school.commons.*" %> <%@ include file="../inc/loginCheck.jsp" %> <% request.setCharacterEncoding("UTF-8"); int articleNo = Integer.parseInt(request.getParameter("articleNo")); String boardCd = request.getParameter("boardCd"); int curPage = Integer.parseInt(request.getParameter("curPage")); String searchWord = request.getParameter("searchWord"); if (searchWord == null) searchWord = ""; BoardService service = new BoardService(); int totalRecord = service.getTotalRecord(boardCd, searchWord); int numPerPage = 10; int pagePerBlock = 10; int startRecord = (curPage - 1) * numPerPage + 1; int endRecord = curPage * numPerPage; service.increaseHit(articleNo); Article detailedArticle = service.getArticle(articleNo); List<AttachFile> attachFileList = service.getAttachFileList(articleNo); Article nextArticle = service.getNextArticle(articleNo, boardCd, searchWord); Article prevArticle = service.getPrevArticle(articleNo, boardCd, searchWord); List<Article> articleList = service.getArticleList(boardCd, searchWord, startRecord, endRecord); List<Comment> commentList = service.getCommentList(articleNo); String boardName = service.getBoardName(boardCd); String articleOwnerName = detailedArticle.getName(); %> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="Keywords" content="Detailed view page" /> <meta name="Description" content="Detailed view page" /> <title><%=boardName %></title> <link rel="stylesheet" href="/css/screen.css" type="text/css" /> <script type="text/javascript"> function modifyCommentToggle(articleNo) { var p_id = "comment" + articleNo; var form_id = "modifyCommentForm" + no; var p = document.getElementById(p_id); var form = document.getElementById(form_id); var p_display; var form_display; if (p.style.display) { p_display = ''; form_display = 'none'; } else { p_display = 'none'; form_display = ''; } p.style.display = p_display; form.style.display = form_display; } function goList(curPage) { var form = document.getElementById("listForm"); form.curPage.value = curPage; form.submit(); } function goView(articleNo) { var form = document.getElementById("viewForm"); form.articleNo.value = articleNo; form.submit(); } function goWrite() { var form = document.getElementById("writeForm"); form.submit(); } function goModify() { var form = document.getElementById("modifyForm"); form.submit(); } function goDelete() { var check = confirm("Are you sure you want to delete it?"); if (check) { var form = document.getElementById("delForm"); form.submit(); } } function deleteAttachFile(attachFileNo) { var check = confirm("Are you sure you want to delete it?"); if (check) { var form = document.getElementById("deleteAttachFileForm"); form.attachFileNo.value = attachFileNo; form.submit(); } } function deleteComment(commentNo) { var check = confirm("Are you sure you want to delete it?"); if (check) { var form = document.getElementById("deleteCommentForm"); form.commentNo.value = commentNo; form.submit(); } } </script> </head> <body> <div id="wrap"> <div id="header"> <%@ include file="../inc/header.jsp" %> </div> <div id="main-menu"> <%@ include file="../inc/main-menu.jsp" %> </div> <div id="container"> <div id="content"> <div id="content-categories"><%=boardName %></div> <div class="view-menu" style="margin-top: 15px;margin-bottom: 5px;"> <div class="fl"> <% if (user.getEmail().equals(detailedArticle.getEmail())) { %> <input type="button" value="Modify" onclick="goModify();" /> <input type="button" value="Del" onclick="goDelete()" /> <% } %> </div> <div class="fr"> <% if (nextArticle != null) { %> <input type="button" value="Next Article" onclick="goView('<%=nextArticle.getArticleNo() %>')" /> <% } if (prevArticle != null) { %> <input type="button" value="Prev Article" onclick="goView('<%=prevArticle.getArticleNo() %>')" /> <% } %> <input type="button" value="List" onclick="goList('<%=curPage %>')" /> <input type="button" value="New" onclick="goWrite()" /> </div> </div> <table class="bbs-table"> <tr> <th style="width: 47px;text-align: left;vertical-align: top;font-size: 1em;">TITLE</th> <th style="text-align: left;color: #555;font-size: 1em;"><%=detailedArticle.getTitle() %></th> </tr> </table> <div id="detail"> <div id="date-writer-hit">edited <%=detailedArticle.getRegdate() %> by <%=articleOwnerName %> hit <%=detailedArticle.getHit() %></div> <% String content = detailedArticle.getContent(); content = content.replaceAll(System.getProperty("line.separator"), "<br />"); %> <div id="article-content"><%=content %></div> <% int size = attachFileList.size(); if (size > 0) { %> <div id="file-list" style="text-align: right"> <% String path = request.getContextPath(); String uploadPath = path + "/upload/"; for (int i = 0; i < size; i++) { AttachFile attachFile = attachFileList.get(i); String filename = attachFile.getFilename(); int attachFileNo = attachFile.getAttachFileNo(); String fileFullPath = uploadPath + filename; %> <div id="attach-file"> <a href="<%=fileFullPath %>"><%=filename %></a> <% if (user.getEmail().equals(detailedArticle.getEmail())) { %> <a href="javascript:deleteAttachFile('<%=attachFileNo %>')">x</a> <% }//if statement end %> </div> <% }//for statement end %> </div> <% }//if statement end %> </div> <!-- Add comment --> <form id="addCommentForm" action="addComment.jsp" method="post"> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> <div id="addComment"> <textarea name="memo" rows="7" cols="50"></textarea> </div> <div style="text-align: right;"> <input type="submit" value="Add comment" /> </div> </form> <% size = commentList.size(); for (int i = 0; i < size; i++ ) { Comment comment = commentList.get(i); int commentNo = comment.getCommentNo(); String email = comment.getEmail(); String memo = comment.getMemo(); String commentOwnerName = comment.getName(); Date regdate = comment.getRegdate(); %> <div class="comments"> <span class="writer"><%=commentOwnerName %></span> <span class="date"><%=regdate %></span> <% if (user.getEmail().equals(email)) { %> <span class="modify-del"> <a href="javascript:modifyCommentToggle('<%=commentNo %>')">Modify</a> | <a href="javascript:deleteComment('<%=commentNo %>')">Del</a> </span> <% }//if statement end %> <p id="comment<%=commentNo %>"><%=memo %></p> <form id="modifyCommentForm<%=commentNo %>" class="comment-form" action="updateComment_proc.jsp" method="post" style="display: none;"> <input type="hidden" name="commentNo" value="<%=commentNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> <div class="fr"> <a href="javascript:document.forms.modifyCommentForm<%=commentNo %>.submit()">Submit</a> | <a href="javascript:goCommentModify('<%=commentNo %>')">Cancel</a> </div> <div> <textarea class="comment-textarea" name="memo" rows="7" cols="50"><%=memo %></textarea> </div> </form> </div> <% }//for statement end %> <div id="next-prev"> <% if (nextArticle != null) { %> <p>Next Article : <a href="javascript:goView('<%=nextArticle.getArticleNo() %>')"><%=nextArticle.getTitle() %></a></p> <% } if (prevArticle != null) { %> <p>Prev Article : <a href="javascript:goView('<%=prevArticle.getArticleNo() %>')"><%=prevArticle.getTitle() %></a></p> <% } %> </div> <div class="view-menu" style="margin-bottom: 47px;"> <div class="fl"> <% if (user.getEmail().equals(detailedArticle.getEmail())) { %> <input type="button" value="Modify" onclick="goModify();" /> <input type="button" value="Del" onclick="goDelete()" /> <% } %> </div> <div class="fr"> <% if (nextArticle != null) { %> <input type="button" value="Next Article" onclick="goView('<%=nextArticle.getArticleNo() %>')" /> <% } if (prevArticle != null) { %> <input type="button" value="Prev Article" onclick="goView('<%=prevArticle.getArticleNo() %>')" /> <% } %> <input type="button" value="List" onclick="goList('<%=curPage %>')" /> <input type="button" value="New" onclick="goWrite()" /> </div> </div> <!-- List --> <table> <tr> <th style="width: 60px">NO</th> <th>TITLE</th> <th style="width: 84px;">DATE</th> <th style="width: 60px;">HIT</th> </tr> <% int listItemNo = service.getListItemNo(); size = articleList.size(); for (int i = 0; i < size; i++) { Article article = articleList.get(i); int aNo = article.getArticleNo(); String title = article.getTitle(); Date regdate = article.getRegdate(); int hit = article.getHit(); int attachFileNum = article.getAttachFileNum(); int commentNum = article.getCommentNum(); %> <tr> <td style="text-align: center;"> <% if (articleNo == aNo) { %> <img src="../images/arrow.gif" alt="You are reading this" /> <% } else { %> <%=listItemNo %> <% } %> </td> <td> <a href="javascript:goView('<%=aNo %>')"><%=title %></a> <% if (attachFileNum > 0) { %> <img src="../images/attach.png" alt="Attach File" style="vertical-align: middle;" /> <% } if (commentNum > 0 ) { %> <span class="bbs-strong">[<%=commentNum %>]</span> <% } %> </td> <td style="text-align: center;"><%=regdate %></td> <td style="text-align: center;"><%=hit %></td> </tr> <% listItemNo--; }//for statement end %> </table> <div id="paging"> <% if (service.getPrevPage() != 0 ) { %> <a href="javascript:goList('<%=service.getPrevPage() %>')">[Prev]</a> <% } int firstPage = service.getFirstPage(); int lastPage = service.getLastPage(); for (int i = firstPage; i <= lastPage; i++) { if (curPage == i) { %> <span class="bbs-strong"><%=i %></span> <% } else { %> <a href="javascript:goList('<%=i %>')"><%=i %></a> <% } }//for statement end if (service.getNextPage() != 0) { %> <a href="javascript:goList('<%=service.getNextPage() %>')">[Next]</a> <% } %> </div> <div id="list-menu"> <input type="button" value="New" onclick="goWrite()" /> </div> <form action="list.jsp" method="get"> <input type="hidden" name="curPage" value="1" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <div id="search"> <input type="text" name="searchWord" size="15" maxlength="30" /> <input type="submit" value="Search" /> </div> </form> </div><!-- content end --> </div><!-- container end --> <div id="sidebar"> <%@ include file="bbs-sub.jsp" %> </div> <div id="extra"> <%@ include file="../inc/extra.jsp" %> </div> <div id="footer"> <%@ include file="../inc/footer.jsp" %> </div> </div> <div id="form-group" style="display: none"> <form id="listForm" action="list.jsp" method="get"> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> <form id="viewForm" action="view.jsp" method="get"> <input type="hidden" name="articleNo" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> <form id="writeForm" action="write_form.jsp" method="get"> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> <form id="modifyForm" action="modify_form.jsp" method="get"> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> <form id="delForm" action="del_proc.jsp" method="post"> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> <form id="deleteCommentForm" action="deleteComment_proc.jsp" method="post"> <input type="hidden" name="commentNo" /> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> <form id="deleteAttachFileForm" action="deleteAttachFile.jsp" method="post"> <input type="hidden" name="attachFileNo" /> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> </div> </body> </html>
addComment_proc.jsp
/bbs/addComment_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.commons.WebContants" %> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.board.*" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); if (user == null) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.NOT_LOGIN); return; } request.setCharacterEncoding("UTF-8"); String boardCd = request.getParameter("boardCd"); int articleNo = Integer.parseInt(request.getParameter("articleNo")); int curPage = Integer.parseInt(request.getParameter("curPage")); String searchWord = request.getParameter("searchWord"); String memo = request.getParameter("memo"); Comment comment = new Comment(); comment.setArticleNo(articleNo); comment.setEmail(user.getEmail()); comment.setMemo(memo); BoardService service = new BoardService(); service.addComment(comment); searchWord = java.net.URLEncoder.encode(searchWord, "UTF-8"); response.sendRedirect("view.jsp?articleNo=" + articleNo + "&boardCd=" + boardCd + "&curPage=" + curPage + "&searchWord=" + searchWord); %>
updateComment_proc.jsp
/bbs/updateComment_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.commons.WebContants" %> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.board.*" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); request.setCharacterEncoding("UTF-8"); int commentNo = Integer.parseInt(request.getParameter("commentNo")); BoardService service = new BoardService(); Comment comment = service.getComment(commentNo); if (user == null || !user.getEmail().equals(comment.getEmail())) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.AUTHENTICATION_FAILED); return; } String boardCd = request.getParameter("boardCd"); int articleNo = Integer.parseInt(request.getParameter("articleNo")); int curPage = Integer.parseInt(request.getParameter("curPage")); String searchWord = request.getParameter("searchWord"); String memo = request.getParameter("memo"); comment.setCommentNo(commentNo); comment.setArticleNo(articleNo); comment.setEmail(user.getEmail()); comment.setMemo(memo); service.modifyComment(comment); searchWord = java.net.URLEncoder.encode(searchWord,"UTF-8"); response.sendRedirect("view.jsp?articleNo=" + articleNo + "&boardCd=" + boardCd + "&curPage=" + curPage + "&searchWord=" + searchWord); %>
deleteComment_proc.jsp
/bbs/deleteComment_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.commons.WebContants" %> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.board.*" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); request.setCharacterEncoding("UTF-8"); int commentNo = Integer.parseInt(request.getParameter("commentNo")); BoardService service = new BoardService(); Comment comment = service.getComment(commentNo); if (user == null || !user.getEmail().equals(comment.getEmail())) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.AUTHENTICATION_FAILED); return; } String boardCd = request.getParameter("boardCd"); int articleNo = Integer.parseInt(request.getParameter("articleNo")); int curPage = Integer.parseInt(request.getParameter("curPage")); String searchWord = request.getParameter("searchWord"); service.removeComment(commentNo); searchWord = java.net.URLEncoder.encode(searchWord, "UTF-8"); response.sendRedirect("view.jsp?articleNo=" + articleNo + "&boardCd=" + boardCd + "&curPage=" + curPage + "&searchWord=" + searchWord); %>
deleteAttachFile_proc.jsp
/bbs/deleteAttachFile_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.board.*" %> <%@ page import="net.java_school.commons.WebContants" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); request.setCharacterEncoding("UTF-8"); int attachFileNo = Integer.parseInt(request.getParameter("attachFileNo")); BoardService service = new BoardService(); AttachFile attachFile = service.getAttachFile(attachFileNo); if (user == null || !user.getEmail().equals(attachFile.getEmail())) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.AUTHENTICATION_FAILED); return; } String boardCd = request.getParameter("boardCd"); int articleNo = Integer.parseInt(request.getParameter("articleNo")); int curPage = Integer.parseInt(request.getParameter("curPage")); String searchWord = request.getParameter("searchWord"); service.removeAttachFile(attachFileNo); searchWord = java.net.URLEncoder.encode(searchWord, "UTF-8"); response.sendRedirect("view.jsp?articleNo=" + articleNo + "&boardCd=" + boardCd + "&curPage=" + curPage + "&searchWord=" + searchWord); %>
modify_form.jsp
/bbs/modify_form.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="net.java_school.commons.WebContants" %> <%@ page import="net.java_school.board.*" %> <%@ page import="java.util.*" %> <% request.setCharacterEncoding("UTF-8"); int articleNo = Integer.parseInt(request.getParameter("articleNo")); String boardCd = request.getParameter("boardCd"); int curPage = Integer.parseInt(request.getParameter("curPage")); String searchWord = request.getParameter("searchWord"); User user = (User) session.getAttribute("user"); BoardService service = new BoardService(); Article article = service.getArticle(articleNo); if (user == null || !user.getEmail().equals(article.getEmail())) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.AUTHENTICATION_FAILED); return; } String title = article.getTitle(); String content = article.getContent(); if (content == null) content = ""; String boardName = service.getBoardName(boardCd); %> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="Keywords" content="Board article modify form page" /> <meta name="Description" content="Board article modify form page" /> <title><%=boardName %></title> <link rel="stylesheet" href="/css/screen.css" type="text/css" /> <script type="text/javascript"> function goView() { var form = document.getElementById("viewForm"); form.submit(); } </script> </head> <body> <div id="wrap"> <div id="header"> <%@ include file="../inc/header.jsp" %> </div> <div id="main-menu"> <%@ include file="../inc/main-menu.jsp" %> </div> <div id="container"> <div id="content"> <div id="content-categories"><%=boardName %></div> <h3>Modify</h3> <form id="modifyForm" action="modify_proc.jsp" method="post" enctype="multipart/form-data"> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> <table id="write-form" class="bbs-table"> <tr> <td>Title</td> <td><input type="text" name="title" style="width: 90%;" value="<%=title %>" /></td> </tr> <tr> <td colspan="2"> <textarea name="content" rows="17" cols="50"><%=content %></textarea> </td> </tr> <tr> <td>Attach File</td> <td><input type="file" name="attachFile" /></td> </tr> </table> <div style="text-align: center;padding-bottom: 15px;"> <input type="submit" value="Submit" /> <input type="button" value="Detailed view" onclick="goView()" /> </div> </form> </div><!-- content end --> </div><!-- container end --> <div id="sidebar"> <%@ include file="bbs-sub.jsp" %> </div> <div id="extra"> <%@ include file="../inc/extra.jsp" %> </div> <div id="footer"> <%@ include file="../inc/footer.jsp" %> </div> </div> <div id="form-group" style="display: none;"> <form id="viewForm" action="view.jsp" method="get"> <input type="hidden" name="articleNo" value="<%=articleNo %>" /> <input type="hidden" name="boardCd" value="<%=boardCd %>" /> <input type="hidden" name="curPage" value="<%=curPage %>" /> <input type="hidden" name="searchWord" value="<%=searchWord %>" /> </form> </div> </body> </html>
modify_proc.jsp
/bbs/modify_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*" %> <%@ page import="net.java_school.commons.WebContants" %> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.user.UserService" %> <%@ page import="net.java_school.board.*" %> <%@ page import="com.oreilly.servlet.MultipartRequest" %> <%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); String dir = application.getRealPath("/upload"); MultipartRequest multi = new MultipartRequest( request, dir, 5*1024*1024, "UTF-8", new DefaultFileRenamePolicy()); BoardService service = new BoardService(); int articleNo = Integer.parseInt(multi.getParameter("articleNo")); if (!service.getArticle(articleNo).getEmail().equals(user.getEmail())) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.AUTHENTICATION_FAILED); return; } String boardCd = multi.getParameter("boardCd"); int curPage = Integer.parseInt(multi.getParameter("curPage")); String searchWord = multi.getParameter("searchWord"); searchWord = java.net.URLEncoder.encode(searchWord, "UTF-8"); String title = multi.getParameter("title"); String content = multi.getParameter("content"); String filename = multi.getFilesystemName("attachFile"); String filetype = multi.getContentType("attachFile"); File f = multi.getFile("attachFile"); long filesize = 0L; AttachFile attachFile = null; if (f != null) { filesize = f.length(); attachFile = new AttachFile(); attachFile.setFilename(filename); attachFile.setFiletype(filetype); attachFile.setFilesize(filesize); attachFile.setEmail(user.getEmail()); attachFile.setArticleNo(articleNo); } Article article = new Article(); article.setArticleNo(articleNo); article.setBoardCd(boardCd); article.setTitle(title); article.setContent(content); article.setEmail(user.getEmail()); service.modifyArticle(article, attachFile); response.sendRedirect("view.jsp?articleNo=" + articleNo + "&boardCd=" + boardCd + "&curPage=" + curPage + "&searchWord=" + searchWord); %>
del_proc.jsp
/bbs/del_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="net.java_school.commons.WebContants" %> <%@ page import="net.java_school.user.User" %> <%@ page import="net.java_school.board.*" %> <% User user = (User) session.getAttribute(WebContants.USER_KEY); request.setCharacterEncoding("UTF-8"); int articleNo = Integer.parseInt(request.getParameter("articleNo")); BoardService service = new BoardService(); Article article = service.getArticle(articleNo); if (user == null || !user.getEmail().equals(article.getEmail())) { response.sendError(HttpServletResponse.SC_FORBIDDEN, WebContants.AUTHENTICATION_FAILED); return; } service.removeArticle(articleNo); String boardCd = request.getParameter("boardCd"); String curPage = request.getParameter("curPage"); String searchWord = request.getParameter("searchWord"); searchWord = java.net.URLEncoder.encode(searchWord, "UTF-8"); response.sendRedirect("list.jsp?boardCd=" + boardCd + "&curPage=" + curPage + "&searchWord=" + searchWord); %>