Java 44

유틸리티 객체와 날짜

타임리프는 문자, 숫자, 날짜, URI등을 편리하게 다루는 다양한 유틸리티 객체들을 제공 타임리프 유틸리티 객체들 #message : 메시지, 국제화 처리 #uris : URI 이스케이프 지원 #dates : java.util.Date 서식 지원 #calendars : java.util.Calendar 서식 지원 #temporals : 자바8 날짜 서식 지원 #numbers : 숫자 서식 지원 #strings : 문자 관련 편의 기능 #objects : 객체 관련 기능 제공 #bools : boolean 관련 기능 제공 #arrays : 배열 관련 기능 제공 #lists , #sets , #maps : 컬렉션 관련 기능 제공 #ids : 아이디 처리 관련 기능 제공, 뒤에서 설명 이런 유틸리티 객체들은 ..

Java/Thymeleaf 2021.12.02

기본 객체들

타임리프는 기본 객체들을 제공 ${#request} ${#response} ${#session} ${#servletContext} ${#locale} #request 는 HttpServletRequest 객체가 그대로 제공되기 때문에 데이터를 조회 request.getParameter("data") 처럼 불편하게 접근 HTTP 요청 파라미터 접근: param 예) ${param.paramData} HTTP 세션 접근: session 예) ${session.sessionData} 스프링 빈 접근: @ 예) ${@helloBean.hello('Spring!') @GetMapping("/basic-objects") public String basicObjects(HttpSession session) { ses..

Java/Thymeleaf 2021.12.02

텍스트 - text, utext

텍스트를 출력하는 기능 text 타임리프는 기본적으로 HTML 테그의 속성에 기능을 정의해서 동작한다. @Controller @RequestMapping("/basic") public class BasicController { @GetMapping("/text-basic") public String textBasic(Model model) { model.addAttribute("data", "Hello Spring!"); return "basic/text-basic"; } } HTML의 콘텐츠(content)에 데이터를 출력 HTML 테그의 속성이 아니라 HTML 콘텐츠 영역안에서 직접 데이터를 출력 컨텐츠 안에서 직접 출력하기 = [[${data}]] 컨텐츠에 데이터 출력하기 th:text 사용 컨텐츠..

Java/Thymeleaf 2021.12.01

ERROR - java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: heap space Linux 터미널 1) 톰캣의 메모리 값을 확인 [root@XXXXXXX conf]# ps -ef | grep tomcat 2) tomcat이 사용중인 PID 확인 root 1403 1 0 09:49 ? 00:01:20 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_6 ... org.apache.catalina.startup.Bootstrap start 3) JVM의 HEAP 영역 정보 확인 - jmap은 JVM을 모니터링 할 수 있는 도구 [root@XXXXXXX conf]# sudo jmap -heap 1403 Attaching to process ID 1403, please..

Java/Spring 2021.09.16

ERROR - Parameter index out of range ...

Mybatis 사용하는 쿼리가 들어있는 xml의 오류 Parameter index out of range (4 > number of parameters, which is 3) 이런 에러 메시지가 발생한다. 1) 파라미터가 인덱스 보다 값을 더 많이 가지고 있는 경우 2) '#{name}' 처럼 xml에 ' ' or " " 로 묶은 경우 3) 나같은 경우에서 image 컬럼에 주석 처리에 문제가 있었음 xml의 주석은 -- , /* */ 이 아니라 로 사용해야함 !!!!!!!!!!!!!!!!!!!!! 에러가 Parameter index out of range .. 정도로 나옴 반나절 삭제... INSERT INTO LODGING ( idx , name , category , area , phone , ad..

Java/Spring 2021.07.07

ERROR - Ambiguous mapping found. Cannot map ~~

Ambiguous mapping found. Cannot map 'Controller의 이름' bean method Controller에서 @RequestMapping에 이름이 중복되서 나타나는 에러 중복된 @RequestMapping 이름을 변경해주면 해결 @RequestMapping(value = "root.do", method = RequestMethod.POST) @RequestMapping(value = "root.do", method = RequestMethod.POST) -- > @RequestMapping(value = "root.do", method = RequestMethod.POST) @RequestMapping(value = "root/detail.do")

Java/Spring 2021.07.05

java: cannot access javax.inject.Provider class file for javax.inject.Provider not found

오류 사항 : java: cannot access javax.inject.Provider class file for javax.inject.Provider not found JPAQueryFactory queryFactory = new JPAQueryFactory(em); JPAQueryFactory.class 파일에서 private final Provider entityManager; provider이 inject가 안되는 오류가 발생 나의 해결 방안 pom.xml에 javax.servlet javax.servlet-api provided com.google.inject guice 3.0 javax.inject javax.inject 1 출처 참고 coderoad.ru/40822568/NoClassDe..

Java/Spring 2021.05.03

Spring Security CSRF 적용

CSRF 란? 사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격 Spring Security CSRF Session 단위로 무작위 토큰(CSRF Token)을 발급 요청 파라미터에 token을 포함시켜 전송하여 정상 요청인지, 공격자로부터 의도된 요청인지 판단하는 기능 있음 타 사이트에서 본인의 사이트로 form 데이터를 사용하여 공격하려고 할 때, 그걸 방지하기 위해 csrf 토큰 값을 사용하는 것 CSRF 보호 기능 활성화 Spring Security에서는 @Enable..

Java/Spring 2021.04.22