Language/JQuery
[JQuery] 게시판 만들기_03
생각하는 감쟈🥔
2024. 6. 11. 17:26
BoardWrite
package kr.or.ddit.board.controller;
import java.io.BufferedReader;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import kr.or.ddit.board.service.BoardServiceImpl;
import kr.or.ddit.board.service.IBoardService;
import kr.or.ddit.board.vo.BoardVO;
@WebServlet("/BoardWrite.do")
public class BoardWrite extends HttpServlet {
private static final long serialVersionUID = 1L;
public BoardWrite() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
StringBuffer buf = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while(true) { // 5개의 항목 : writer, password, subject, content, mail
line = reader.readLine();
if(line == null) break;
buf.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}
String reqdata = buf.toString();
/*
{"writer" : "김은대", "password" : "0000",
"subject" : "집보내줘", "mail" : "dddd",
"content " : "dddd"
}
*/
// 직렬화된 전송 데이터를 자바 객체로 역 직렬화 한다
Gson gson = new Gson();
BoardVO vo = gson.fromJson(reqdata, BoardVO.class);
//vo.setwriter("김은대"), vo.setPassword("0000")......
//vo.setSubject("김은대"), vo.setMail("0000")......
//vo.setContent("김은대") 여기까지 자동을 실행
//글 입력후 전송하는 클라이언트 IP주소값을 얻는다.
vo.setWip(request.getRemoteAddr());
//service 객체를 얻는다
IBoardService service = BoardServiceImpl.getservice();
//service 메소드 호출 - 결과 값 0 / 1
int result = service.writerBoard(vo);
// 결과값을 저장
request.setAttribute("result", result);
//insert, delete, update싱핼시 공통으로 사용하는 view뷰페이지
//view 페이지로 이동 - json데이터 생성
request.getRequestDispatcher("/boardview/result.jsp").forward(request, response);
}
}
board.js >> writerBoard
const writeBoard = () => {
//서버로 전송
$.ajax({
url : `${mypath}/BoardWrite.do`,
data : JSON.stringify(fdata),
contentType : 'application/json; charset=utf-8',
type : 'post',
success : function(res){ //res는 결과값을 받아야 함
//글쓰기 성공 했으면 - 리스트 출력 하기 >> 첫번째 페이지
//alert(res.flag);
currentPage = 1;
listPerPage();
},
error : function(xhr){
alert("상태 : " + xhr.status)
},
dataType : 'json'
})
}
게시글 엔터 줄바꿈 설정
//내용 content = v.content의 내용을 줄바꿈처리 한다
content = v.content; // 엔터기호가 포함되어 있다
// 엔터기호를 <br> 태그로 바꿔서 출력
contnen = content.replaceAll(/\n/g,"<br>")
로그인 부터 확인 (board.jsp)
<%
// 로그인 했는지 안 했는지 체크
// 로그인 ㅎ안했으묜로그인 하세요 메세지 출력
// 로그인 했으면 글쓰기 이름부분을 session에 저장된 이름을 넣어준ㄷ
// 수정, 삭제시에도 버튼을 활서화 비활성화
MemberVO vo = (MemberVO)session.getAttribute("loginok");
// 자바 객체 VO를 json형태의 자바 스크립트 객체로 변환
String ss = null;
Gson gson = new Gson();
//로그인 성공 시 json형태의 자바 스크립트 객체로 변환
if(vo != null) ss = gson.toJson(vo);
/* ss={"mem_id" : "a001", mem_pass="1234", mem_name="김은대", mem_mail : "..."}*/
%>

