2009-03-13 6 views
5

커스텀 HTML 템플릿을 생성 할 사이트를 만드는 것이 좋습니다. 사용자 정의는 사용자 입력시 사용자 정의됩니다. 나는 현재 프런트 엔드의 나머지 부분에 대해 tomcat/JSP를 사용하고 있습니다. 내가하고 싶은 일은 조건부 HTML 코드를 출력하기 위해 JSP로 HTML 템플릿을 생성하는 것이지만이 HTML 출력을 사용자에게 표시하는 대신이 코드를 여러 파일에 저장하고 싶습니다. 사용자, 이미지, CSS 파일, js 파일). JSP 파일을 실행하는 가짜 컨테이너를 만드는 방법을 알아야합니다 (프로세스가 변수를 포함하고 평가합니다).JSP로 출력을 캡쳐하여 파일로 저장

JSP 코드의 출력을 가로 채기 위해 서버 필터를 사용하는 방법에 대해 읽었지만 여러 가지 HTML 파일을 만들어야하고 b) 사용자에게 다른 내용을 표시해야하므로 (예 : 여기에 우편 번호 파일이 있습니다. 다운로드하십시오.) 처리중인 JSP의 출력이 아닙니다.

감사합니다.

답변

4

다음은 아이디어입니다. 서블릿에서 사용자의 입력을 받아들이도록 서블릿을 생성하고, java.net.HttpURLConnection을 사용하여 입력을 JSP 페이지에 전달하고 그 결과를 얻는다.

URL urlPage = new URL(url); 
HttpURLConnection conn = (HttpURLConnection)urlPage.openConnection(); 
conn.connect(); 
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); 

//then loop through lines of webpage with br.readLine(); 

그런 다음 서블릿에 당신은 당신이 끌어 모든 파일을 압축 할 수 있으며 사용자 정말 내가 당신의 질문을 이해 확실하지 않다

0

왜 wget을 사용하지 않습니까? 실제 컨테이너에 페이지를로드 한 다음 wget을 사용하여 컨테이너에서 생성 된 페이지를 검색 할 수 있습니다. 파일에서 URL 목록을 텍스트가 브라우저의보기-SRC에 표시되는 것처럼 당신을 위해 그들을 다운로드합니다 wget을에서이 옵션을 사용

--input-file=FILE read URLs from file. 

.

또한 wget은 Windows 및 Linux에서 사용할 수 있습니다.

+0

아이디어를 주셔서 감사합니다. wget을 좋아하지만 내 요구 사항에 맞지 않습니다. –

+0

@Roy 지퍼 링 비트와 관련이 있습니까? – leeand00

+0

@ leeand00 특별히 구체적으로 말하자면, 다중 환경에서 작동해야하는 Java 환경이며, Windows, Mac 및 Linux 개발자가 동일한 코드베이스에서 작업하므로 솔루션은 Java 기반이어야합니다. –

1

URLConnection을 연 다음 출력에서 ​​임시 파일이나 버퍼로 읽음으로써 JSP를 호출하는 서블릿을 가질 수 있습니다. 그런 다음 지퍼를 사용하여 지퍼를 씁니다.

1

에 반환,하지만 난 그것을 자상 소요됩니다. 서블릿을 만들고이없는 이유는 다음과 같은 사용하여 JSP 파일을 호출


    RequestDispatcher d = getServletContext().getRequestDispatcher(jspName); 
    d.forward(request, response); 

이 (가) JSP 양식/사용자 입력 값으로 프론트 엔드를 보여 되세요. 양식이 완성되면 양식을 제출하십시오. 어느 시점에서 jsp는 값을 파싱 할 수있는 서블릿으로 컨텍스트를 반환하고 생성하고 사용자에게 반환 할 파일을 결정합니다. 사용자에게 표시 할 내용을 결정한 후에 다른 JSP로 던져서 해당 JSP에 컨텍스트를 전달하십시오.

두 가지 방법으로 가능합니다. 반환하려는 다른 파일 유형에 대해 다른 jsp를 작성하고 적절한 jsp를 호출 할 수 있습니다. 또는 원하는 구조/값을 요청에 포함시킨 다음 jsp에서 가져와 jsp에 전달할 수 있습니다. 이 사실을 사용하여 전달 된 매개 변수 (요청에 임베드 됨)를 기반으로하는 단일 JSP를 작성하면 적절한 정보가 표시됩니다.

질문 사항을 완전히 놓친 경우 언제든지이 응답을 삭제하십시오.

편집 : 어느 쪽이든 요청에 ​​값을 삽입해야합니다.

0

또한 이러한 작업을 위해 특별히 설계된 다양한 라이트 템플릿 엔진 중 일부를 사용해 볼 수도 있습니다. 그것이 내가 비슷한 일을하고 돌아 보지 않을 때 내가 한 일입니다. 예를 들어 Velocity을 확인하십시오.

관련 문제