main.jsp
<%@page import="java.awt.RadialGradientPaint"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="model.dto.*,java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>메인 페이지</title>
</head>
<body>
<%
if(session.getAttribute("mid") != null){ // 로그인 상태
%>
<a href="controller.jsp?action=logout">로그아웃</a> | <a href="controller.jsp?action=mypage">마이페이지</a>
<%
}
else{ // 로그아웃 상태
%>
<a href="controller.jsp?action=loginPage">로그인</a> | <a href="controller.jsp?action=joinPage">회원가입</a>
<%
}
%>
<hr>
<ul>
<%
ArrayList<ReplyDTO> rdatas=(ArrayList<ReplyDTO>)request.getAttribute("rdatas");
if(rdatas.size() <= 0) {
out.println("출력할 데이터가 없습니다.");
}
for(ReplyDTO data:rdatas){
%>
<li><a href="controller.jsp?action=replySelectOne&rid=<%=data.getRid()%>"><%=data.getRid()%>번 댓글 <%=data.getWriter()%>님이 작성</a></li>
<%
}
%>
</ul>
<hr>
<%
if(session.getAttribute("mid") != null){ // 로그인 상태
%>
<form action="controller.jsp" method="POST">
<input type="hidden" name="action" value="replyWrite">
<input type="text" style="width: 500px; height: 50px;" name="reply" placeholder="댓글을 작성해주세요22"> <input type="submit" value="댓글추가">
</form>
<%
}else {
%>
<input type="text" style="width: 500px; height: 50px;" readonly placeholder="댓글을 쓰려면 로그인 해주세요"> <a href="controller.jsp?action=loginPage">로그인</a>
<%
}
%>
<hr>
<ul>
<%
ArrayList<MemberDTO> mdatas=(ArrayList<MemberDTO>)request.getAttribute("mdatas");
for(MemberDTO data:mdatas){
%>
<li><%=data.getName()%>님</li>
<%
}
%>
</ul>
</body>
</html>
controller.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList,model.dto.*"%>
<%
request.setCharacterEncoding("UTF-8");
// getParameter() 해서 setXxx() 를 진행할때에 인코딩깨짐
// 얘 전(10번 라인 전)에 수행해야함!!!!!
%>
<jsp:useBean class="model.dao.ReplyDAO" id="rDAO" />
<jsp:useBean class="model.dto.ReplyDTO" id="rDTO" />
<jsp:useBean class="model.dao.MemberDAO" id="mDAO" />
<jsp:useBean class="model.dto.MemberDTO" id="mDTO" />
<jsp:setProperty name="mDTO" property="*" />
<%
String action=request.getParameter("action");
if(action.equals("main")){
ArrayList<ReplyDTO> rdatas=rDAO.selectAll(rDTO);
request.setAttribute("rdatas", rdatas);
ArrayList<MemberDTO> mdatas=mDAO.selectAll(mDTO);
request.setAttribute("mdatas", mdatas);
System.out.println("로그 1 : "+rdatas.size());
pageContext.forward("main.jsp");
// 새로운 요청 : GET
// 기존 요청 정보를 모두 삭제시킴
// 리다이렉트 방식
// ↓
// 기존 요청 정보를 유지하는 요청 방식을 사용해야한다!!!!!
// 포워드 방식
}
else if(action.equals("join")){
boolean flag=mDAO.insert(mDTO);
if(flag){
response.sendRedirect("controller.jsp?action=main");
}
else{
out.println("<script>alert('ID 중복 등으로 인해 회원가입에 실패하셨습니다!');history.go(-1);</script>");
}
}
else if(action.equals("joinPage")){
response.sendRedirect("join.jsp"); // V -> C -> V
}
else if(action.equals("logout")){
// 로그아웃
session.invalidate();
//response.sendRedirect("controller.jsp?action=main");
out.println("<script>alert('로그아웃 되었습니다.'); location.href='controller.jsp?action=main';</script>");
}
else if(action.equals("mypage")){
// 마이페이지로 이동
response.sendRedirect("mypage.jsp");
}
else if(action.equals("loginPage")){
// 로그인 페이지로 이동
response.sendRedirect("login.jsp");
}
else if(action.equals("replySelectOne")){
// 댓글 상세 페이지로 이동
Integer rid = Integer.parseInt(request.getParameter("rid"));
ReplyDTO replyDTO = new ReplyDTO();
replyDTO.setRid(rid);
ReplyDTO result = rDAO.selectOne(replyDTO);
if(result != null) {
String replyDetail = "reply.jsp?rid=" + rid;
String writer = result.getWriter();
String content = result.getContent();
request.setAttribute("rid", rid);
request.setAttribute("writer", writer );
request.setAttribute("content", content);
pageContext.forward(replyDetail);
}
}
else if(action.equals("replyInsert")){
// 댓글추가
}else if(action.equals("loginTry")) {
String mid = request.getParameter("mid");
String mpw = request.getParameter("mpw");
MemberDTO memberDTO = new MemberDTO();
memberDTO.setMid(mid);
memberDTO.setMpw(mpw);
MemberDTO result = mDAO.selectOne(memberDTO);
if(result != null) {
String name = result.getName();
session.setAttribute("mid", mid);
session.setAttribute("mpw", mpw);
session.setAttribute("name", name);
response.sendRedirect("controller.jsp?action=main");
}else {
out.println("<script>alert('로그인정보가 틀립니다'); location.href='login.jsp';</script>");
}
} else if (action.equals("nameUpdate")) {
String mid = (String) session.getAttribute("mid");
String orname = (String) session.getAttribute("name");
String name = request.getParameter("name");
MemberDTO memberDTO = new MemberDTO();
memberDTO.setSearchCondition("이름변경");
memberDTO.setMid(mid);
memberDTO.setName(name);
if (orname.equals(name)) {
out.println("<script>alert('같은 이름입니다. 다시 수정해주세요.'); location.href='mypage.jsp';</script>");
} else {
boolean result = mDAO.update(memberDTO);
out.println("<script>alert('이름이 변경되었습니다.'); location.href='controller.jsp?action=main';</script>");
}
}else if(action.equals("replyWrite")) {
String mid = (String)session.getAttribute("mid");
String reply = request.getParameter("reply");
ReplyDTO replyDTO = new ReplyDTO();
replyDTO.setWriter(mid);
replyDTO.setContent(reply);
boolean result = rDAO.insert(replyDTO);
if(result) {
out.println("<script>location.href='controller.jsp?action=main';</script>");
}else {
out.println("<script>alert('댓글 등록에 실패하였습니다.'); location.href='controller.jsp?action=main';</script>");
}
}else if(action.equals("replyUpdate")){
Integer rid = Integer.parseInt(request.getParameter("rid")) ;
String content = request.getParameter("content");
ReplyDTO replyDTO = new ReplyDTO();
replyDTO.setRid(rid);
replyDTO.setContent(content);
boolean result = rDAO.update(replyDTO);
if(result) {
System.out.println("11111");
out.println("<script>alert('댓글이 수정되었습니다.'); location.href='controller.jsp?action=main';</script>");
}else {
System.out.println("2222");
}
}
else{
// 이상한 요청
// 에러처리해야함!
}
%>
'개발일지 > JSP' 카테고리의 다른 글
doFilter 예시 (0) | 2024.01.18 |
---|---|
커스텀 태그 (0) | 2024.01.17 |
JSP - 내장객체 (1) | 2024.01.08 |
JDBC 사용방법 (0) | 2022.11.29 |
커넥션 풀(DBCP) (1) | 2022.11.29 |
댓글