2011-08-05 14 views
3

나는 학생들이 이용 가능한 코스를보고, 입대하고, 시간표를 보여줄 수있는 웹 사이트를 만들고있는 대학 과제물을 만들고 있습니다. 사용자가 시간표를 볼 때 , XML로 생성되며 XSLT를 사용하여 보았습니다 (as in a previous question I asked). 현재 두 개의 서로 다른 XSLT 파일이 있으며 사용자는 그가 사용하고자하는 "테마"를 (드롭 다운 메뉴를 통해) 선택할 수 있습니다.사용자가 파일을 업로드 할 수 있도록 허용

사용자가 자신의 .xsl 파일을 업로드하고 다른 사용자가 사용할 수있는 테마 목록에 추가하도록 허용하도록 요청 받았습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE TimetableThemes SYSTEM "timetable_themes.dtd" > 
<TimetableThemes> 
    <Theme> 
    <Name>Classic</Name> 
    <FileName>classic.xsl</FileName> 
    </Theme> 
    <Theme> 
    <Name>Bullets</Name> 
    <FileName>bullets.xsl</FileName> 
    </Theme> 
</TimetableThemes> 

이 파일은 사용할 수있는 다른 테마를 나열하고 그 파일 이름이 수요를 수용하기 위해, 나는 새로운 다음과 같은 형태 timetable_themes.xml라는 XML 파일을 만들었습니다. 이 XML 파일과 XSL 파일은 WebContent/timetable에 있습니다. 현재 사용 가능한 두 가지 테마는 Google이 디자인했지만 사용자가 업로드 할 수 있도록해야합니다.

제 질문은 - 사용자가 파일을 업로드하도록 허용하려면 어떻게해야합니까? 서버에 저장할 위치를 어떻게 선택합니까? 셋째, 테마 목록에 대한 XML 솔루션이 좋은 아이디어인가?

+0

XSL은 다소 복잡합니다. 사용자가 자신의 XSL을 업로드하도록 허용하는 것이 좋은 생각입니까? DoS (서비스 거부) 공격의 위험은 어떻습니까? – Raedwald

+1

@Raedwald 이것은 대학 과제이므로 실제로 선택 사항은 아닙니다. –

+0

'테마 목록에 대한 제 XML 솔루션은 좋은 아이디어입니까? '보안을 고려하면 나쁜 생각입니다. (http://security.stackexchange.com/questions/4410/public-xslt-xml-playground-with- php-domdocument-etc-security-risks/4417 # 4417). –

답변

1

Shalom Amir은 this을 사용하여 양식이 업로드 된 파일을 검색합니다. 이미 서블릿 3.0있는 컨테이너를 사용할 때

1

가 어떻게 사용자가 HTML/JSP 측에서 파일

사용 <form method="post" enctype="multipart/form-data"><input type="file">을 업로드하고 그것을 구문 분석 Apache Commons FileUpload을 사용할 수 있도록, 또는 않으며, 사용 HttpServletRequest#getParts(). 내가 어디 서버에 저장하도록 선택하는 방법도 How to upload files to server using JSP/Servlet?


를 참조하십시오?

적어도 공개 웹 콘텐츠에는 없습니다. 웹 응용 프로그램을 재배포 할 때마다 또는 서버를 다시 시작한 경우에도 새 파일은 모두 손실됩니다. FileOutputStream을 사용하여 로컬 디스크 파일 시스템에 저장하거나 옵션이 아니면 PreparedStatement#setBinaryStream()을 사용하는 DB에 저장하십시오. 테마 목록 좋은 생각이 내 XML 솔루션은


입니까?

이것은 객관적으로 대답 할 수있는 질문이 아닙니다. 그것은 실제로 너무 많은 요소에 달려 있습니다. Q & 사이트 대신 토론 포럼을 사용해보십시오.

+0

어떤 Servlet API를 사용하고 있는지 어떻게 알 수 있습니까? –

+0

지원되는 최대 서블릿 API 버전은 대상 런타임을 기준으로 결정됩니다. 예 : Tomcat 7.0은 최대 서블릿 3.0을 지원하고, Tomcat 6.0은 최대 서블릿 2.5를 지원합니다. * 실제로 * 사용되는 서블릿 API 버전은'web.xml' 루트 선언에 따라 결정됩니다. 버전 2.3까지는 버전 번호가 포함 된 DTD가 사용되고 버전 2.4부터 XSD는 버전 번호가 포함 된 버전 및 버전 속성과 함께 사용됩니다. – BalusC

관련 문제