에러메시지가 뜨지 않고 404페이지가 보인다는 것, 경로를 제대로 쓴 것 같은데 파일을 못 찾아간다는 것,
그것은 당신이 절대경로와 상대경로의 개념에 대한 이해가 부족하다는 것.
<c:url> 태그의 속성을 제대로 파악하지 못하고 있다는 것...
<c:url> 태그를 제이세션 오류 없이 쓰려면 web.xml파일에 설정을 해 둬야 한다. (아직 못 찾았음)
여기다 할거야 web.xml
c:url 태그는 로컬와 웹에서 동적으로 경로를 할당해 주는 태그이기 때문에 제이세션아이디를 저장하는데, 쿠키사용을 막은 유저들인 경우 또는 맨 첫페이지에서 이미지 경로를 제대로 뿌려주지 못해 404에러가 발생할 수 있다. (여기까지 내가 이해한게 맞는지 다시 확인 필요)
이런 경우, 화면을 새로고침하면 정상적으로 이미지를 뿌려주긴 하지만 이런상황을 방지하기 위해서 contextpath를 적용해주는 게 좋다. 서칭 중 나왔던 블로그 한 곳에서는 이런 이유 때문에 페이지 url은 c:url태그를 써도 좋으나, 이미지소스와 같은 파일경로에 대해서는 contextpath 사용을 권장하고 있었다.
web.xml 파일에 아래와 같이 써주면 페이지마다 taglib 쓸 필요가 없다는데.. 나중에 시도해 볼 것.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
............................... 생략 ........
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
<page-encoding>UTF-8</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude>/WEB-INF/views/common/include.jsp</include-prelude>
</jsp-property-group>
</jsp-config>
......................... 생략 .....
</web-app>
출처: developer0513.tistory.com/4
무엇보다도 다시 한 번, 코드를 짤 때는 점 하나 찍는 것도 중요하다. 휘뚜루마뚜루 하려고 들지 말고, 슬래시 하나 긋고 안 긋고에도 의미를 생각하면서 해야 할 필요가 있다. 아무 생각 없이 코드를 복붙하거나 따라쓰지 말자. 여기에서는 왜 앞뒤로 슬래시 또는 확장자를 작성하지 않는 것인지, 여기서는 왜 이걸 다 써야 하는 것인지 생각해 볼 것.
'JSTL' 카테고리의 다른 글
[jstl] var값을 받아왔는데 NumberFormat 오류가 나는 경우 (0) | 2020.12.26 |
---|