project

오늘의 집(개인 프로젝트)

alarim 2023. 4. 5. 12:14

 

 

 

 

 

기존에 배웠던 게시물 CRUD 기능 구현을 토대로 사진 게시판을 만들어보았다.

사진을 넣는 과정에서 cos.jar 새로운 라이브러리를 추가하였고 MultipartReauest 객체를 써서

이미지 정보를 담은뒤에 저장이 되는것을 해보았다.

 

1일차

헤더 부분을 디자인을 하였고 로그인과 회원가입 기능을 구현하였다.

세션이 남게 구현을 해주었고 세션이 없으면 커뮤니티 창과 글쓰기 기능을 못하게 제한을 걸어두었다.

 

2일차

 

jstl을 이용해 <c:foreach> 을 써서 메인화면과 커뮤니티 창에 뿌리게 해주었고 쿼리문을 order by (컬럼) desc

을 써서 최신순으로 사진이 나오게 만들어 주었다.

 

3일차

커뮤니티 창에 댓글을 달수 있도록 구현하였고 쿼리문을 게시글과 댓글이 같이 날아가게 on DELETE cascade를

추가하여서 게시글을 날리면 댓글과 함께 날아가게 테이블을 수정하였다.

 

4일차

사진을 클릭하면 게시글에 대한 정보과 상세페이지로 넘어가서 상세페이지와 게시글에 달린 댓글이 전체적으로 보이게

상세페이지를 구현하였다.

 

5일차

상세페이지에서 댓글 수정,삭제 기능을 구현하였고 사진을 업로드 할때 이미지가 안깨지게 이클립스 환경설정과 web.xml을 수정해주었고 사진 위치를 절대경로에서 상대경로로 바꾸어 주었다.

 

CRUD 기능을 구현하는것을 확실히 익히고 응용해서 배운 파일 업로드 기능을 기억하자

 

 

 업로드 기능 구현 코드

if (cmd.equals("upload")) {
				// saveFolder 이미지 폴더 경로가 맞아야 저장된다.
				String saveFolder = request.getSession().getServletContext().getRealPath("images");
				String encType = "UTF-8";
				int maxSize = 5 * 1024 * 1024;
			
					MultipartRequest multi = null;
					multi = new MultipartRequest(request, saveFolder, maxSize, encType, new DefaultFileRenamePolicy());
					Enumeration<E> params = multi.getParameterNames();
					Enumeration files = multi.getFileNames();
					
					String userId = (String)params.nextElement();
					int userId_value = Integer.parseInt(multi.getParameter(userId));
					
					String content = (String) params.nextElement();
					String content_value = multi.getParameter(content);
					
					String photo = (String)files.nextElement();
					String filename = multi.getFilesystemName(photo);
					PhotoDTO dto = new PhotoDTO();
					dto.setUserId(userId_value);
					dto.setPhotoImage(filename);
					dto.setContent(content_value);
					int result = photoDAO.save(dto);
					if (result == 0) {
						response.sendRedirect("border/writenull.jsp");
					}else {
						response.sendRedirect("index2.jsp");
					}
				
			}

 

 

 

 

github 주소

https://github.com/rimcoding/todayhouse

 

GitHub - rimcoding/todayhouse

Contribute to rimcoding/todayhouse development by creating an account on GitHub.

github.com

 

오늘의집ppt.pptx
1.68MB