열심히 끝까지
디바이스 융합 자바(Java) day43 - 관리자&작성자 변경/삭제 로직 본문
디바이스 융합 자바(Java) day43 - 관리자&작성자 변경/삭제 로직
노유림 2022. 8. 10. 17:55[오늘 수업]
main.jsp에서 -----------> controller.jsp
action 파라미터에 board 값
bid 파라미터에 bid값 대입
<controller.jsp>
mDAO
bDAO
bVO ---> setter 동작 안함
mVO ---> setter 동작 안함
null값이 아니다!!
>> 로그인이 아닌 상태로 상세페이지 들어가면 안 들어가져요!!
member 가 null 인것이 아님!!!!!
-> null일 확률 0%
member.getRole(),member.getMid() 가 null
if(member.getMid()!=null && (member.getRole().equals("ADMIN") || member.getMid().equals(data.getWriter()))){ // 관리자 of 현재 로그인한 사람==작성자
>> mid가 null이 아니라는 전제 하에만 검사!
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("UTF-8");%>
<jsp:useBean id="data" class="model.vo.BoardVO" scope="request"/>
<jsp:useBean id="member" class="model.vo.MemberVO" scope="session"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>상세페이지</title>
</head>
<body>
<script type="text/javascript">
function del(){
ans=confirm('정말 삭제할까요?');
if(ans==true){
document.bForm.action.value="bdelete";
document.bForm.submit();
}
else{
return;
}
}
</script>
<form name="bForm" action="controller.jsp" method="post">
<input type="hidden" name="action" value="bupdate">
<input type="hidden" name="bid" value="<%=data.getBid()%>">
<table border="1">
<tr>
<td>제 목</td>
<td><input type="text" name="title" value="<%=data.getTitle() %>" required></td>
</tr>
<tr>
<td>내 용</td>
<td><input type="text" name="content" value="<%=data.getContent() %>" required></td>
</tr>
<tr>
<td>작성자</td>
<td><input type="text" name="writer" value="<%=data.getWriter() %>" required readonly></td>
</tr>
<%
if(member.getMid()!=null && (member.getRole().equals("ADMIN") || member.getMid().equals(data.getWriter()))){ // 관리자 of 현재 로그인한 사람==작성자
%>
<tr>
<td colspan="2" align="right">
<%-- 를 사용하여 칸 띄우기 --%>
<input type="submit" value="변경하기"> <input type="button" value="삭제하기" onclick="del()">
</td>
</tr>
<%
}
%>
</table>
</form>
<hr>
<a href="controller.jsp?action=main"><input type="button" value="메인으로"></a>
<button onclick="history.back()">뒤로가기</button>
</body>
</html>
1. 요청을 할 수 있는 방식의 종류
<form action="controller.jsp?action=insert">
<form action="controller.jsp>
<input type="hidden" name="action" value="insert">
<a href="controller.jsp?action="insert">
<script>
1) function 정의하여 호출
2) location.href="";
</script>
2. 파라미터 vs 속성
- 파라미터
받는방법: request.getParameter("파라미터명")
주는방법: <a href="URL?파라미터명=값&파라미터명=값&...">
<input name="파라미터명" value="값(사용자가 브라우저에서 작성한 값)">
=> 주고받는값이 String | 일회성,사용자가 입력하는 값 (db에 넣음 끝남 게시글 작성)
- 속성(attribute)
받는방법: <jsp:useBean id="이름" class="" scope="req,sess,appli" /> // scope 값 존재
주는방법: C에서 주로 사용
req,sess,appl.setAttribute("이름",값);
=> 주고받는값이 Object(+캐스팅) | C에서 사용자가 요청한 값들을 넣어서 V한테 보낼때 사용
3. jsp:useBean action 설명
<jsp:useBean id="member" class="model.vo.MemberVO" scope="session" />
>> java 코드로 변경하면?
if(session.getAttribute("member")==null){
MemberVO member=new MemberVO();
session.setAttribute("member",member);
}
else{
member=session.getAttribute("member");
}
4. 아이디 중복검사
-> 서버를 거치지 않고 검사 진행 됨
-> 비동기처리(==ajax())
>> 능단평에서는 제외
>> 서비스만 제공하면 됨
> 다음에 적절한 서비스로 대체할 수 있게 함