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 : "..."}*/
	

%>