@Controller
public class UsrArticleController {
@Autowired
private ArticleService articleService;
@RequestMapping("/usr/article/detail")
public String showDetail(HttpServletRequest req, Model model, int id) {
Rq rq = (Rq) req.getAttribute("rq");
Article article = articleService.getForPrintArticle(rq.getLoginedMemberId(), id);
model.addAttribute("article", article);
return "usr/article/detail";
}
// 로그인 체크 -> 유무 체크 -> 권한 체크 -> 수정
@RequestMapping("/usr/article/doModify")
@ResponseBody
public String doModify(HttpServletRequest req, int id, String title, String body) {
Rq rq = (Rq) req.getAttribute("rq");
Article article = articleService.getArticleById(id);
if (article == null) {
return Ut.jsHistoryBack("F-1", Ut.f("%d번 게시글은 없습니다", id));
}
ResultData userCanModifyRd = articleService.userCanModify(rq.getLoginedMemberId(), article);
if (userCanModifyRd.isFail()) {
return Ut.jsHistoryBack(userCanModifyRd.getResultCode(), userCanModifyRd.getMsg());
}
if (userCanModifyRd.isSuccess()) {
articleService.modifyArticle(id, title, body);
}
article = articleService.getArticleById(id);
return Ut.jsReplace(userCanModifyRd.getResultCode(), userCanModifyRd.getMsg(), "../article/list");
}
@RequestMapping("/usr/article/doDelete")
@ResponseBody
public String doDelete(HttpServletRequest req, int id) {
Rq rq = (Rq) req.getAttribute("rq");
Article article = articleService.getArticleById(id);
if (article == null) {
return Ut.jsHistoryBack("F-1", Ut.f("%d번 게시글은 없습니다", id));
}
ResultData userCanDeleteRd = articleService.userCanDelete(rq.getLoginedMemberId(), article);
if (userCanDeleteRd.isFail()) {
return Ut.jsHistoryBack(userCanDeleteRd.getResultCode(), userCanDeleteRd.getMsg());
}
if (userCanDeleteRd.isSuccess()) {
articleService.deleteArticle(id);
}
return Ut.jsReplace(userCanDeleteRd.getResultCode(), userCanDeleteRd.getMsg(), "../article/list");
}
@RequestMapping("/usr/article/doWrite")
@ResponseBody
public String doWrite(HttpServletRequest req, String title, String body) {
Rq rq = (Rq) req.getAttribute("rq");
if (Ut.isEmptyOrNull(title)) {
// return ResultData.from("F-1", "제목을 입력해주세요");
return Ut.jsReplace("F-1", "제목을 입력해주세요", "../article/write");
}
if (Ut.isEmptyOrNull(body)) {
return Ut.jsReplace("F-2", "내용을 입력해주세요", "../article/write");
}
ResultData writeArticleRd = articleService.writeArticle(rq.getLoginedMemberId(), title, body);
int id = (int) writeArticleRd.getData1();
Article article = articleService.getArticleById(id);
// return ResultData.newData(writeArticleRd, "생성된 게시글", article);
return Ut.jsReplace("S-1", Ut.f("%d번 게시글이 생성되었습니다", id), "../article/list");
}
@RequestMapping("/usr/article/list")
public String showList(Model model) {
List<Article> articles = articleService.getArticles();
model.addAttribute("articles", articles);
return "usr/article/list";
}
@RequestMapping("/usr/article/Modify")
public String showModify(Model model, int id) {
Article article = articleService.getArticleById(id);
model.addAttribute("article", article);
return "usr/article/modify";
}
@RequestMapping("/usr/article/write")
public String showwrite(Model model) {
List<Article> articles = articleService.getArticles();
model.addAttribute("articles", articles);
return "usr/article/write";
}
}
public class UsrMemberController {
@Autowired
private MemberService memberService;
@RequestMapping("/usr/member/doLogout")
@ResponseBody
public String doLogout(HttpSession httpSession) {
boolean isLogined = false;
if (httpSession.getAttribute("loginedMemberId") != null) {
isLogined = true;
}
if (!isLogined) {
return Ut.jsHistoryBack("F-A", "이미 로그아웃 함");
}
httpSession.removeAttribute("loginedMemberId");
return Ut.jsReplace("S-1", Ut.f("로그아웃 되었습니다"), "/");
}
@RequestMapping("/usr/member/login")
public String showLogin() {
return "/usr/member/login";
}
@RequestMapping("/usr/member/join")
public String showJoin() {
return "/usr/member/join";
}
@RequestMapping("/usr/member/doLogin")
@ResponseBody
public String doLogin(HttpSession httpSession, String loginId, String loginPw) {
boolean isLogined = false;
if (httpSession.getAttribute("loginedMemberId") != null) {
isLogined = true;
}
if (isLogined) {
return Ut.jsHistoryBack("F-A", "이미 로그인 함");
}
if (Ut.isEmptyOrNull(loginId)) {
return Ut.jsHistoryBack("F-1", "loginId 입력 x");
}
if (Ut.isEmptyOrNull(loginPw)) {
return Ut.jsHistoryBack("F-2", "loginPw 입력 x");
}
Member member = memberService.getMemberByLoginId(loginId);
if (member == null) {
return Ut.jsHistoryBack("F-3", Ut.f("%s는(은) 존재 x", loginId));
}
if (member.getLoginPw().equals(loginPw) == false) {
return Ut.jsHistoryBack("F-4", Ut.f("비밀번호 틀림"));
}
httpSession.setAttribute("loginedMemberId", member.getId());
return Ut.jsReplace("S-1", Ut.f("%s님 환영합니다", member.getNickname()), "/");
}
@RequestMapping("/usr/member/doJoin")
@ResponseBody
public String doJoin(HttpSession httpSession, String loginId, String loginPw, String name,
String nickname, String cellphoneNum, String email) {
boolean isLogined = false;
if (httpSession.getAttribute("loginedMemberId") != null) {
isLogined = true;
}
if (isLogined) {
// return ResultData.from("F-A", "이미 로그인 함");
return Ut.jsHistoryBack("F-A", "이미 로그인 함");
}
if (Ut.isEmptyOrNull(loginId)) {
// return ResultData.from("F-1", "loginId 입력 x");
return Ut.jsReplace("F-1", "loginId 입력 x", "join");
}
if (Ut.isEmptyOrNull(loginPw)) {
// return ResultData.from("F-2", "loginPw 입력 x");
return Ut.jsReplace("F-2", "loginPw 입력 x", "join");
}
if (Ut.isEmptyOrNull(name)) {
// return ResultData.from("F-3", "name 입력 x");
return Ut.jsReplace("F-3", "name 입력 x", "join");
}
if (Ut.isEmptyOrNull(nickname)) {
// return ResultData.from("F-4", "nickname 입력 x");
return Ut.jsReplace("F-4", "nickname 입력 x", "join");
}
if (Ut.isEmptyOrNull(cellphoneNum)) {
// return ResultData.from("F-5", "cellphoneNum 입력 x");
return Ut.jsReplace("F-5", "cellphoneNum 입력 x", "join");
}
if (Ut.isEmptyOrNull(email)) {
// return ResultData.from("F-6", "email 입력 x");
return Ut.jsReplace("F-6", "email 입력 x", "join");
}
ResultData doJoinRd = memberService.doJoin(loginId, loginPw, name, nickname, cellphoneNum, email);
if (doJoinRd.isFail()) {
return Ut.jsReplace(doJoinRd.getResultCode(), doJoinRd.getMsg(), "join");
}
Member member = memberService.getMemberById((int) doJoinRd.getData1());
// return ResultData.newData(doJoinRd, "새로 생성된 member", member);
return Ut.jsHistoryBack("S-1", Ut.f("%s님 환영합니다", nickname));
}
}
@Component
public class BeforeActionInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {
Rq rq = new Rq(req,resp);
req.setAttribute("rq", rq);
return HandlerInterceptor.super.preHandle(req, resp, handler);
}
}
@Component
public class NeedLoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {
Rq rq = (Rq) req.getAttribute("rq");
if (!rq.isLogined()) {
System.err.println("==================로그인 하고 써====================");
// resp.getWriter().append("");
rq.printHistoryBack("로그인 하고 써");
return false;
}
return HandlerInterceptor.super.preHandle(req, resp, handler);
}
}
public class Rq {
@Getter
private boolean isLogined;
@Getter
private int loginedMemberId;
private HttpServletRequest req;
private HttpServletResponse resp;
public Rq(HttpServletRequest req, HttpServletResponse resp) {
this.req = req;
this.resp = resp;
HttpSession httpSession = req.getSession();
if (httpSession.getAttribute("loginedMemberId") != null) {
isLogined = true;
loginedMemberId = (int) httpSession.getAttribute("loginedMemberId");
}
}
public void printHistoryBack(String msg) throws IOException {
resp.setContentType("text/html; charset=UTF-8");
println("<script>");
if (!Ut.isEmpty(msg)) {
println("alert('" + msg + "');");
}
println("history.back();");
println("</script>");
}
private void println(String str) {
print(str + "\n");
}
private void print(String str) {
try {
resp.getWriter().append(str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="pageTitle" value="MODIFY"></c:set>
<%@ include file="../common/head.jspf"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="pageTitle" value="WRITE"></c:set>
<%@ include file="../common/head.jspf"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="pageTitle" value="LOGIN"></c:set>
<%@ include file="../common/head.jspf"%>
<%@ include file="../common/foot.jspf"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="pageTitle" value="LOGIN"></c:set>
<%@ include file="../common/head.jspf"%>
<button type="submit">로그인</button>
<button type="button" onclick="history.back()">취소</button>
<%@ include file="../common/foot.jspf"%>