{Java}

21.06.24{코딩일기} 동빈나 유튜버 JSP게시판 만들기 (11) | 전자정부프레임워크 eclipse 게시판 만들기{day6}

Davey 2021. 6. 25. 08:14
728x90

https://foxvox.tistory.com/33

 

 

21.06.24{코딩일기} 동빈나 유튜버 JSP게시판 만들기 (8~10) | 전자정부프레임워크 eclipse 게시판 만들

이제부턴 속도가 좀 붙어서 빠르게 만들어보자:) # list.jsp code 수정 우선 동빈나에서는 bbs.jsp로 '게시판'페이지를 만들었지만 나는 list.jsp에서 만들었다. 글쓰기 버튼까지 추가완료 우선 db를 먼저

foxvox.tistory.com

게시판 코드작성완료 후기 생생하게 공유드립니다. 많이 놀러와주세여:)

https://www.youtube.com/watch?v=P5s5JwvZjBA&t=27s&pp=sAQA 

 

# filter class 생성 및 apache tomcate web.xml 파일수정

이전 포스트에서 아래 코드를 한글이 깨졌던 파일에 추가한것이 최선의 해결책이 아님을 언급했다.
Mr.Delbert Woo님의 조언으로 filter를 아래 포스트를 참조하여 만들었다.

https://carrotweb.tistory.com/36

 

자바 인코딩 필터 만들기 - Java Encoding Filter, 이클립스(Eclipse)

필터는 웹 브러우저의 요청과 Servlet/JSP/Resource 사이에서 "Request"와 "Response"에 대한 처리를 합니다. WebBrowser -> Filter1 -> Servlet/JSP/Resource -> Filter1 -> WebBrowser ​ 필터는 여러 개를 설정..

carrotweb.tistory.com

반드시 위과정을 따라 filter를 만들되 Initialization parameters에 encoding만 추가하고
forceEncoding추가할 필요없다. filter의 package명은 servlet.filter로 했고, filter명은 EncodingFilter이다.
그냥 일반 class로 추가하면 안되므로 주의하자. 
반드시 'filter'를 눌러서 추가하고 나면 아래처럼 디렉토리에 추가한것을 확인할 수 있다. 
filter code는 아래와 같다.

 

filter기능구현 디렉토리 예시

 


package servlet.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;


/**
 * Servlet Filter implementation class EncodingFilter
 */
@WebFilter(
		urlPatterns = { "/*" }, 
		initParams = { 
				@WebInitParam(name = "encoding", value = "utf-8", description = "encoding")
		})
public class EncodingFilter implements Filter {

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    throws IOException, ServletException {
		
		//한글처리..
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		// 사전 작업(한글처리)의 내용이 서버상의 다음번 컴포넌트에게 계속 적용되기 위한 작업...
		chain.doFilter(request, response);
	}

	@Override
	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}

}


그다음 apache tomcat에 있는 xml파일을 아래와 같이 수정한다.
인코딩이 안깨지는 게시판에 글을 등록하여 확인해보자 :)

https://saem-ee.tistory.com/45 

 

[JSP] get, post방식 데이터 전송시 한글 깨짐 해결

개발을 하다가 초보적인 실수로 한글이 깨져 당황할때가 있다. (나는야 초보개발자) 나중을 위해 한글인코딩 방법을 정리해두도록 한다. 먼저 설정을 통한 인코딩방법이 있다. 1. web.xml 파일에

saem-ee.tistory.com

 

web.xml 파일접근경로


 

visual studio code 에디터로 filter태그를 추가해주었다.

이때 filter-class를 설정할때 반드시 각자 만들어준 패키지명과 filter java파일명으로 설정해주어야 된다. 

# 페이징 기법

페이징 기법에는 크게 2가지가 있다.
하나는 지금 여러분들한테 보여줄 기법으로, 예를들면 10개의 항목만 출력하는 쿼리를 짠후
11개 항목일 경우 나머지 1개의 항목은 '다음'이라는 버튼을 만들어 클릭하면
볼 수 있게끔 한다. 이전버튼을 누르면 이전 10개 항목을 다시 볼 수 있다.

'다음'버튼  list.jsp 화면출력예시
'이전'버튼 화면출력예시 

해당코드는?
아래와 같다. 아래 코드를 list.jsp에서 </table>태그 바로 다음줄에 추가하자.

<%
	if(pageNumber != 1) {
%>
	<a href="list.jsp?pageNumber=<%=pageNumber - 1%>" class="btn btn-success btn-arrow-Left">이전</a>
<%
	} if(listDAO.nextPage(pageNumber +1)) {
%>
	<a href="list.jsp?pageNumber=<%=pageNumber + 1%>" class="btn btn-success btn-arrow-Left">다음</a>
<%
}


다른 하나는 그럼 무엇"?

바로 숫자를 나열해서 보여주고, 해당 페이지 숫자를 누르면 리스트가 보이게끔하는 것이다.
흔히 우리가 자주 사용하는 구글페이지 하단에 보면 알 수 있다.

구글 페이징기법 참고자료


두번째 페이징 기법으로 내용 구현하는 것 내용은 동빈나에 없다.(아쉽게도..)
추후 추가 포스팅을 작성해서 공유할 예정이다.

Copyright ⓒ 2021 by bluevulpe All Contents cannot be copied without permission.

728x90