JSP

2017-01-10 1 views
1

의 특성 디렉토리에서 텍스트 파일을 가져 오기 내가 가진 :JSP

는 JSP 파일은 다음 코드가 포함되어 index.jsp 전화 :

<% 
    JSONVerschillendeTalen jsonVerschillendeTalen = JSONVerschillendeTalen.getInstance(); 
    JSONObject algemeenJSON = null; 
    JSONObject indexJSON = null; 
    try { 
     indexJSON = jsonVerschillendeTalen.getJSONObject(request, "Index.txt"); 
     algemeenJSON = jsonVerschillendeTalen.getJSONObject(request, "Algemeen.txt"); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
%> 

그리고 다음 코드가 포함 JSONVerschillendeTalen라는 클래스 :

public class JSONVerschillendeTalen { 

    private static JSONVerschillendeTalen jsonVerschillendeTalen = new JSONVerschillendeTalen(); 
    private JSONParser jsonParser = new JSONParser(); 

    public static JSONVerschillendeTalen getInstance() { 
     return jsonVerschillendeTalen; 
    } 

    public JSONObject getJSONObject(HttpServletRequest req, String bestandsnaam) throws IOException, ParseException { 
     return (JSONObject) jsonParser.parse(new FileReader(getClass().getClassLoader() 
      .getResource("NL/" + bestandsnaam).getPath().replaceAll("%20", " "))); 
    } 

    private JSONVerschillendeTalen() { 

    } 

} 

일반 클래스 (테스트 용)의 index.jsp 파일에서 코드를 실행할 때마다 작동합니다. jsp 파일에서 동일한 코드를 실행할 때 그렇지 않습니다. 왜 아무도 알지 못해?

Properties directory

+0

jsp 페이지 – SpringLearner

+0

에서 자바 코드 사용을 피하십시오. 누군가가 .jsp로 끝나는 수동 링크로 이동하면 JSON 파일에 웹 페이지의 텍스트가 포함되어 있기 때문에 페이지에 텍스트가 포함되어 있지 않습니다. – Sjoerd

+0

예외가 있습니까? –

답변

0

봅니다 getClass().getResource() 대신 getClass(). getClassLoader().getResource() 사용할 수 있습니다. 두 번째 방법은 웹 컨테이너의 소스 디렉토리와 다를 가능성이 높은 ClassLoader 루트에 상대적으로 검색 리소스입니다.

다음과 같이 answer은 둘 사이의 차이점에 대해 매우 잘 설명되어 있습니다.