수업 50일차


작업물

git 주소


UsrArticleController

@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";
}

}


UsrMemberController

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));
}

}


BeforeActionInterceptor

@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);
}

}


NeedLoginInterceptor

@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);
}

}


Rq

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();
	}
}

}


modify.jsp

<%@ 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"%>

작성자 : ${article.extra__writer}
날짜 : ${article.regDate}
새 제목 :
새 내용 :
수정 취소 <%@ include file="../common/foot.jspf"%>

write.jsp

<%@ 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"%>

제목 :
내용 :
작성 취소 <%@ include file="../common/foot.jspf"%>

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"%>

${pageTitle }

${pageTitle }


join.jsp

<%@ 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"%>


login.jsp

<%@ 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"%>


profile
2514 : 이세상에 오직 하나뿐인 사람

0개의 댓글