📝 Spring 환경설정 및 커뮤니티 로그인, 회원가입 기능 공부
#230421
1. src/main/webapp/WEB-INF/spring
스프링 프로젝트 설정파일 모아둔 거,
파란색 박스(src/main/resources
)있는 곳으로 드래그 해서 옮기기
2. 점세개 버튼 눌러서 정렬 Hierarchical
로 바꾸면 위에 바꾼 후와 같이 변경됨.
3. web.xml
파일 안에 빨간박스 부분 수정하기
(2.5 👉 4.0 / java 👉 JAVA 로 바꾸기)
4. 위에 빨간박스 부분 아래와 같이 수정하기
(파일위치가 변경되었으니 위치에 맞게 수정하기!)
첫번째 부분
<param-value>classpath:spring/root-context.xml</param-value>
두번째 부분
<param-value>classpath:spring/appServlet/servlet-context.xml</param-value>
수정하면 아래처럼 변경완료!
5. 파일 제일 끝에 filter내용 추가
이 코드를 xml에 쓰면 기존에 controller단에서 쓰던거 필요 없이 한글 인코딩됨.
<!-- 한글 깨짐 방지를 위한 Filter 추가 -->
<!-- 별도의 filter 클래스를 만들지 않고 스프링에서 제공하는 filter를 사용 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
💻 dispatcher 메모추가
6. pom.xml
파일 열어서 기존내용 모두 삭제하고,
아래위치에 있는 내용 모두 복붙하기
(위치)
[구글드라이브] - [7.Framework] - [spring관련모음] - [1_pom.xml 초기설정.txt의 사본] 파일내용 모두 복사해서 붙여넣기
❗ 1행이 이렇게 시작해야 맞는거임
<packaging>war</packaging> 스프링에서 자동설정하는 배포형식
💻 properties 메모추가
💻 dependencies 메모추가 ( : JSTL 라이브러리 모아둔거임 )
7. WEB-INF안에 lib폴더 만들어서,
기존에 사용하던 tag라이브러리3개 (impl, jstl, spec) 모두 넣기
9.src/main/webapp
에, 기존에 다운받은 [스프링 수업용 webapp] 폴더 3개 옮기기
ok / overwriteAll 하면 기존에 쓰던 커뮤니티 파일 열림
src/main/java
안에 filter 만들기👉 설정할 Java package
, Class name
적기
👉Superclass
지정 안되있으면 Browse...
버튼 클릭해서 설정해주기
package edu.kh.comm.common.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpFilter;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@WebFilter(filterName="initFilter", urlPatterns="/*")
public class InitFilter extends HttpFilter implements Filter {
// print 구문 사용하다 걸리면 바보
// -> Logger 사용
// Logger 객체 사용 (해당 클래스에 대한 log를 출력하는 객체)
private Logger logger = LoggerFactory.getLogger(InitFilter.class); // Logger
// 필터가 생성될 때 실행
public void init(FilterConfig fConfig) throws ServletException {
// logger를 이용해서 출력하는 방법
// trace - debug - info - warn - error
// debug : 개발의 흐름 파악 (이게 실행이 되었는지, 파라미터가 현재 무엇인지 확인할 때)
// info : 메소드 실행 파악
// 이 필터가 생성이 되었다 라는 정보를 출력하고 싶다! info가 제일 적절함
logger.info("초기화 필터 생성");
}
// 필터가 파괴될 때 실행 (서버는 켜져있는데 백엔드 코드가 수정되었을 때)
public void destroy() {
logger.info("초기화 필터 생성");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
ServletContext application = request.getServletContext();
// 최상위 주소 얻어오기
String contextPath = ((HttpServletRequest)request).getContextPath();
// 세팅
application.setAttribute("contextPath", contextPath);
// header.jsp 파일 연결경로 contextPath 로 변경하기
chain.doFilter(request, response);
}
}
13. src/main/webapp/resources
안에 log4j.xml
열기
💻 log4j.xml : 로그설정과 관련된 파일
14. 빨간색박스 안 내용 주석처리하고, 아래 새로운 구문 추가
- 추가구문
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org /log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
변경 하면 아래와 같이 설정 완료
15. 기존 Appenders 구문 삭제하고, 새로운 Appenders 3개 추가
💻 Appenders
출력되는 로그의 형태를 지정하는 부분으로, 로그를 뒤에 계속 남기는 역할을 한다.
<appender name="console"
class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n" />
</layout>
</appender>
<!-- sql 로그 출력용 패턴 지정 -->
<appender name="sql-console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
</appender>
<!-- 날짜별 로그 파일 생성용 appender -->
<appender name="dailyRollingFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File"
value="C:\\workspace\\7_Framework\\comm\\logs\\runtime-log.log"/>
<param name="encoding" value="UTF-8" />
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n"/>
</layout>
</appender>
16. Application Loggers
안에 level value="info"
에서 "debug"
로 수정
여기까지 기초적인 세팅 끝 🫠🫠🫠
진도 빠를텐데 정리 잘하셨네요 강사인줄..