JSP: 44개의 글
화면을 수정했는데, 클라이언트의 브라우져에 캐시가 남아서 이전 화면이 나오는 경우가 있다. 직접 브라우져 설정 들어가서 캐시를 지워달라고 요청 할 수도 있지만, 그게 한두번이 아니게 되니 코드에서 캐시를 지울수 없는지 찾아보았다. 이럴수가... 크게 어렵지도 않지만, html한정으로 이게 꼭 필요한 화면이 아니면 아래 설정은 가급적 안 하는게 좋을 것 같다. HTML 메타태그 이용하기 JSP, Java 사용시 자바 코드 지만 html과 같음. response.setHeader( "Pragma", "no-cache" ); response.setDateHeader( "Expires", -1 ); response.setHeader( "Cache-Control", "no-cache" ); JS, CSS 파일 캐..
jstl 내장함수 JSTL functions은 JSTL에서 제공하는 각종 함수를 사용해서 문자열이나, 컬렉션들을 처리함. fn태그는 단독으로 사용할 수 없고 EL 표현식 내에서 사용해야함. like ${fn:length(...)} jsp 페이지 시작점에 다음 태그로 선언 해줘야 사용 할 수 있음. boolean contains(String sting, String substring) string이 substring을 포함하면 return true. boolean containsIgnoreCase(String string, String substring) 대소문자에 관계없이, string이 substring을 포함하면 return true. ${fn:contains("helloworld", "world")..
[JSP, JSTL] fn function 정리 jstl function (jstl fn) 정리 jsp 파일 최 생단에 다음과 같이 jstl functions를 사용하겠다고 선언 해야 함. 함수들은 단독으로 사용할 수 없고 EL 표현식과 함께 사용해야 함. ${fn:length(list)} ${fn:contains(str, str)} fn:contains(string, substr) string이 substr을 포함하면 return true fn:containsIgnoreCase(string, substr) 대소문자 관계없이 string이 substr을 포함하면 return true fn:startsWith(string, prefix) string이 prefix로 시작하면 return True fn:en..
[JSP, JSTL] forEach 잘 사용하기 Spring 개발을 하다 보면 jstl 의 forEach 를 많이 사용하게 된다. 간단하지만 varStatus 속성 사용을 잘 하면 보다 편하게 개발할 수 있는것 같아서 남겨본다. current (현재 객체) : ${i.current} index (0부터의 순서) : ${i.index} count (1부터의 순서) : ${i.count} first (루프의 처음인가) : ${i.first} last (루프의 마지막인가) : ${i.last} begin (루프의 시작값) : ${i.begin} end (끝값) : ${i.end} step (증가값) : ${i.step} 출처 : https://jeaha.dev/70
화면을 수정했는데, 클라이언트의 브라우져에 캐시가 남아서 이전 화면이 나오는 경우가 있다. 직접 브라우져 설정 들어가서 캐시를 지워달라고 요청 할 수도 있지만, 그게 한두번이 아니게 되니 코드에서 캐시를 지울수 없는지 찾아보았다. HTML 메타태그 이용하기 JSP, Java 사용시 자바 코드 지만 html과 같음. response.setHeader( "Pragma", "no-cache" ); response.setDateHeader( "Expires", -1 ); response.setHeader( "Cache-Control", "no-cache" ); JS, CSS 파일 캐시 사용 방지 js나 css등 정적파일도 종종 변경을 해도 캐시문제로 적용이 되지 않는 경우가 많다. 그럴 경우 파일의 url 뒤에..
사용자 정의 태그를 만들어서 사용할 수 있다. 사용 방법은 EL에서 함수를 만드는 방법과 유사하나 조금 더 복잡한 부면이 있다. 커스텀 태그를 만들기 위해서는 tld 파일과 java class 파일이 필요하다. 예제로 유저에게 랜덤하게 조언을 해 주는 커스텀 태그 소스를 보면 이해하는데 도움이 된다.(소스는 역시 Head & First Servelet & JSP에서 사용된 것이다.) 우선 tld 파일은 EL과 마찬가지로 WEB-INF 밑에 작성한다. 이름은 myCustomTag.tld로 한다. 0.9 RandomTags rollIt com.example.DiceRoller int rollDice() randomThings random advice advice com.example.AdvisorTagHan..
웹 브라우저는 웹서버에 파라미터를 전송할 때 알맞은 캐릭터 셋을 이용해서 파라미터 값을 인코딩하여 전달한다. 반대로 웹 서버는 알맞은 캐릭터 셋을 이용해서 웹브라우저가 보내온 파라미터를 디코딩한다. 어떤 캐릭터 셋을 이용할지의 여부는 GET방식과 POST방식에 따라 다르다. 1.POST방식 POST방식에서는 응답결과에 사용하는 캐릭터셋을 이용해서 파라미터를 인코딩한다.
위의 코드를 실행시 아래와 같은 오류가 발생했다. 해당 오류가 발생했다면 우선 커넥션 풀의 connection 부분을 살펴봐야 한다. 보면 jdbc/basicjsp에 연결을 시도하려고한다. 그러나 내가 실수한게 상기 데이터는 오라클에 연결해야한다. 그러므로 연결을 잘못했으므로 해당 문제가 발생한 것이다. 위는 연결을 해야 하는 오라클 데이터베이스 및 데이트블이다. 그러므로 server.xml에서 연결하려고하는 커넥션 풀의 이름을 확인 후 수정을 진행하도록하자 아래를 참고하여 수정을 진행하면 될 것 같다. 수정 후 정상 입력되는 것을 확인할 수 있다. 출처 : namubada.net/66?category=771026
해당 list 파일을 컴파일시 java.lang.ClassNotFoundException: D1029.DBConn 오류가 발생하였다. 오류 원인을 검색해본 결과 해당 클래스가 정상적으로 빌드되어 있어도 해당 오류가 발생되는 경우가 있다고 하였다. 위의 사진을 보면 보이다시피 DBConn 클래스가 D1029 패키지에 정상적으로 빌드되어 있는 것을 확인할 수 있다. 해결 방법은 두가지로 아래와 같다. 1. Project > clean 진행 2. 해당 class 파일을 삭제 후 다시 빌드 나의 경우 project > clean으로 문제가 해결되었다. 여기서 project > clean의 경우 해당 프로젝트 내의 클래스를 모두 삭제 후 다시 rebuild한다고한다. 그러므로 위의 방법으로 대부분 해결될 것으로 ..
Name [db명]은(는) 이 컨텍스트에 바인딩되지 않았습니다. [jdbc]을(를) 찾을 수 없습니다. 해당 문제의 원인을 찾아내어 기록해두려고한다. 1번 사진 2번 사진 문제의 원인은 경로에 .이 있고 없고에 따라서 발생되었었다. 1. ./폴더명의 경우 현재 위치에 따라서 상대 경로로 경로로 이동하고 2. /폴더명의 경우 절대 경로로 이동한다. 그럼 1번 먼저 보도록하자. 1번 사진 2번 사진 위의 사진에서 1번 사진과 2번 사진의 차이를 알 수 있는가? 위의 1번 사진의 경우 ./폴더명으로 했을 때 현재 위치에서 폴더로 이동하는 상대 경로로 설정되어서 해당 폴더에 있는 해당 파일이 실행되게 된다. 그러나 2번 사진의 경우 /폴더명으로 했을 때 현재 위치에서 절대 경로로 이동되어 /member/memb..