。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

강의/JSP 게시판 만들기

[JSP 게시판 만들기] 12. 게시판 보기 기능 구현하기

quarrrter 2023. 12. 10. 16:26

<%%> JSP(JavaServer Pages)에서 사용되는 스크립트릿(scriptlet) 태그입니다.

태그 안에 포함된 코드는 JSP 페이지를 서블릿으로 변환할 자바 코드로 처리됩니다.

<%= %> 표현식(expression) 태그로, 안에 있는 값이 출력됩니다.

 


로그인 유저와 글쓴이가 같으면 수정&삭제 버튼 띄우기

<%
    if(userID != null && userID.equals(bbs.getUserID())) {
%>
    <a href="update.jsp?bbsID=<%= bbsID %>" class="btn btn-primary">수정</a>
    <a href="deleteAction.jsp?bbsID=<%= bbsID %>" class="btn btn-primary">삭제</a>
<%
    }
%>

 

글 목록에서 게시글 제목 선택해서 들어가서 글 보기

게시글 번호에 맞는 내용 출력하기 위한 메서드 생성

public Bbs getBbs(int bbsID) {
    String SQL = "SELECT * FROM BBS WHERE bbsID=?";
    try {
        PreparedStatement pstmt = conn.prepareStatement(SQL);
        pstmt.setInt(1, bbsID);
        rs = pstmt.executeQuery();
        if(rs.next()) {
            Bbs bbs = new Bbs();
            bbs.setBbsID(rs.getInt(1));
            bbs.setBbsTitle(rs.getString(2));
            bbs.setUserID(rs.getString(3));
            bbs.setBbsDate(rs.getString(4));
            bbs.setBbsContent(rs.getString(5));
            bbs.setBbsAvailabe(rs.getInt(6));
            return bbs;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null; 
}

 

 

 

view.jsp

bbsID 값 넣기

<body>
	<% 
		String userID = null;
		if(session.getAttribute("userID") != null) {
			userID = (String) session.getAttribute("userID");
		}
		int bbsID = 0;
		if(request.getParameter("bbsID") != null) {
			bbsID = Integer.parseInt(request.getParameter("bbsID"));
		}
		if (bbsID == 0) {
			PrintWriter script = response.getWriter();
			script.println("<script>");
			script.println("alert('유효하지 않은 글입니다.')");
			script.println("location.href = bbs.jsp'");
			script.println("</script>");
		}
	%>

 

 

 

 

게시글의 작성자와 userID가 동일하다면 수정 삭제 버튼 활성화

<%
    if(userID != null && userID.equals(bbs.getUserID())) {
%>
    <a href="update.jsp?bbsID=<%= bbsID %>" class="btn btn-primary">수정</a>
    <a href="deleteAction.jsp?bbsID=<%= bbsID %>" class="btn btn-primary">삭제</a>
<%
	}	
%>

 

 

글 내용에 특수문자가 들어갔을 때 html 문법인지 뭔지 알 수 없어서  처리하기 

크로스 사이트 스크립트  : 게시판에 글을 쓸 때 특수문자 처리가 제대로 되지 않으면 해킹 공격이 가능함 

스크립트가 삽입될 수 있는 문제를 해결하기 위해 특수문자 치환 필요함. 

<tr>
    <td>내용 </td>
    <td colspan="2" style="min-height: 200px; text-align: left;">
    <%= bbs.getBbsContent().replaceAll(" ", "&nbsp;").replaceAll("<", "&lt;")
    	.replaceAll(">", "&gt;").replaceAll("\n", "<br/>") %>
    </td>
</tr>