반응형
comment.java
// HTML에서 특수기호 < > 변경하기 + 줄바꿈 처리하기
commentcontent = Util.removeTag(commentcontent); = 주어진 문자열에서 HTML 태그를 제거하는 역할을 함.
// Util.java
public static String removeTag(String str) {
str = str.replaceAll("<", "<");
str = str.replaceAll(">", ">");
return str;
}
// 엔터가 가능하도록 (\r, \n, \nr 을 엔터로 변경)
commentcontent = Util.addBR(commentcontent); = 주어진 문자열에서 개행문자 (\r, \n, \r\n)를 <br>태그로 변경.
// Util.java
public static String addBR(String str) {
return str.replaceAll("(\r\n|\r|\n|\n\r)", "<br>");
}
BoardDAO
추가내용=
dto.setClike(rs.getInt("clike"));
dto.setIp(Util.ipMasking(rs.getString("cip")));
public List<CommentDTO> commentList(int no) {
List<CommentDTO> list = new ArrayList<CommentDTO>();
Connection con = db.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql="SELECT * FROM commentview WHERE board_no=?";
try {
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, no);
rs = pstmt.executeQuery();
while(rs.next()) {
CommentDTO dto = new CommentDTO();
dto.setCno(rs.getInt("cno"));
dto.setBoard_no(rs.getInt("board_no"));
dto.setComment(rs.getString("ccomment"));
dto.setCdate(rs.getString("cdate"));
dto.setMno(rs.getInt("mno")); // view 만들어서 mname, mid 가져와야 함.
dto.setMid(rs.getString("mid"));
dto.setMname(rs.getString("mname"));
dto.setClike(rs.getInt("clike"));
dto.setIp(Util.ipMasking(rs.getString("cip")));
list.add(dto);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(rs, pstmt, con);
}
return list;
}
}
Util.java
// ip가져오기
public static String getIP(HttpServletRequest request) {
String ip = request.getHeader("X-FORWARDED-FOR");
if(ip == null) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if(ip == null) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if(ip == null) {
ip = request.getRemoteAddr();
}
return ip;
}
// HTML태그를 특수기호로 변경 < < / > >
public static String removeTag(String str) {
str = str.replaceAll("<", "<");
str = str.replaceAll(">", ">");
return str;
}
public static String addBR(String str) {
return str.replaceAll("(\r\n|\r|\n|\n\r)", "<br>");
}
public static String ipMasking(String ip) {
if(ip.indexOf('.') != -1) { // ip가 아닐때
StringBuffer sb = new StringBuffer(); // 멀티스레드 환경에서 동기화 지원
sb.append(ip.substring(0, ip.indexOf('.')+1));
sb.append("♡.");
sb.append(ip.substring(ip.indexOf('.', ip.indexOf('.')+1)+1));
return sb.toString(); // Convert StringBuffer to String and return
} else {
return ip;
}
}
BoardDTO
private String ip; 추가
public String getIp() {
return Util.ipMasking(ip);
}
public void setIp(String ip) {
this.ip = ip;
}
LogDAO.java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Map;
import com.coffee.util.Util;
public class LogDAO extends AbstractDAO {
public void write(Map<String, Object> log) {
Connection con = db.getConnection();
PreparedStatement pstmt = null;
String sql = "INSERT INTO iplog(iip, iurl, idata) VALUES (?,?,?)";
try {
pstmt = con.prepareStatement(sql);
pstmt.setString(1, log.get("ip").toString());
pstmt.setString(2, log.get("url").toString());
pstmt.setString(3, log.get("data").toString());
pstmt.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(null, pstmt, con);
}
}
}
detail.java
// 로그인한 회원이라면 조회수 올리기 2024-01-19
HttpSession session = request.getSession();
if(session.getAttribute("mid") != null) {
//bno, mno
dao.countUp(no,(String) session.getAttribute("mid"));
}
index.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
LogDAO log = new LogDAO();
log.logwrite(Util.getIP(request), "./index", null);
패키지와 클래스가 하나씩 늘어갈수록 오류가 점점 많아진다.
하나 수정하면 다른 곳이 갑자기 에러나고....
갑자기 내 회원가입은 왜 안되는건지!!
도움 요청 전에 혼자 고쳐보려고 노력은 하는데 어렵다 어려워
코딩 너무 복잡하다 ㅠㅠ 쉽지않고만..........
반응형
'개발 공부 Today I Learned' 카테고리의 다른 글
[국비 47일차 TIL] 댓글 수정버튼 눌렀을 때 (0) | 2024.01.25 |
---|---|
[국비 46일차 TIL ] 댓글 삭제 수정 기능 구현 (0) | 2024.01.24 |
[국비 44일차 TIL] 댓글 삭제 오류 해결 (HeidiSQL 쿼리문 수정) (1) | 2024.01.23 |
[국비 43일차 TIL] 게시판 댓글 작성, 삭제 (0) | 2024.01.22 |
[국비 42일차 TIL] ID중복검사, 댓글 테이블, 관계도 (0) | 2024.01.19 |
댓글