2012-05-14 34 views
7

Khi tôi truy cập vào một trang jsp như thế này trên một máy chủ phát triển appengine:appengine máy chủ phát triển java hiển thị mã nguồn

localhost: 8888/index.jsp/

nó hiển thị mã nguồn của index.jsp trong Trình duyệt. nếu bạn truy cập mà không có dấu gạch chéo (tức là index.jsp) thì nó sẽ hiển thị jsp nhưng với dấu gạch chéo (ví dụ: index.jsp /) nó sẽ hiển thị mã nguồn

Bất kỳ ý tưởng nào về lý do này? Và làm thế nào để khắc phục nó?

Dường như chỉ xảy ra trong máy chủ phát triển chứ không phải trong quá trình sản xuất. Sản xuất cung cấp lỗi 404 Not Found, điều này là tốt.

Tôi đang sử dụng SDK 1.6.4

web.xml:

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> 

    <servlet> 
     <servlet-name>RegisterPage</servlet-name> 
     <jsp-file>/register.jsp</jsp-file> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>RegisterPage</servlet-name> 
     <url-pattern>/signup</url-pattern> 
    </servlet-mapping> 


    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

==========

như vậy ...

chỉ mục. jsp -> ám trang

index.jsp/-> trả về mã nguồn

register.jsp/-> trả về mã nguồn

register.jsp -> làm cho jsp

signup/-> làm cho register.jsp

đăng ký -> làm cho register.jsp

nên có vẻ như đó là các url có * .jsp/có vấn đề

+0

bạn có thể hiển thị mã nguồn cho trang index.jsp? Nó sẽ là tuyệt vời để tìm ra vấn đề chính xác. –

+0

Đây có phải là lỗi đánh máy hoặc bạn có '/' sau tên tệp không? –

+0

Thông thường đây là lỗi cấu hình trong máy chủ web. – Teg

Trả lời

1

Bạn nên di chuyển tất cả các tệp * .jsp vào thư mục/WEB-INF và cập nhật tệp web.xml của mình.

Bằng cách này, các tệp * .jsp sẽ không thể truy cập trực tiếp và mã nguồn sẽ bị ẩn.

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> 
<servlet> 
    <servlet-name>RegisterPage</servlet-name> 
    <jsp-file>/WEB-INF/register.jsp</jsp-file> 
</servlet> 
<servlet-mapping> 
    <servlet-name>RegisterPage</servlet-name> 
    <url-pattern>/signup</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>IndexPage</servlet-name> 
    <jsp-file>/WEB-INF/index.jsp</jsp-file> 
</servlet> 
<servlet-mapping> 
    <servlet-name>IndexPage</servlet-name> 
    <url-pattern>/index</url-pattern> 
</servlet-mapping> 

<welcome-file-list> 
    <welcome-file>/index</welcome-file> 
</welcome-file-list> 

+0

cảm ơn, điều này đã làm việc! tuy nhiên, trong danh sách tệp chào mừng, đường dẫn tuyệt đối không hoạt động, vì vậy tôi phải sử dụng "chỉ mục" thay vì "/ chỉ mục" ... –

0

Tôi có một số vấn đề khi tôi đã sử dụng "chuyển hướng" và apache tomcat 7, vì chuyển hướng không được hỗ trợ trong phiên bản apache mới. Để giải quyết vấn đề tìm kiếm sự cố của bạn trong danh sách thay đổi của phiên bản apache (nếu bạn sử dụng nó) cho thẻ bạn đã sử dụng trong trang của mình hoặc xuất bản mã của trang để có thể đề xuất các giải pháp khác. Có thể là bạn đang sử dụng thẻ không dùng nữa. Ngoài ra, hãy kiểm tra tệp localhost [DATE] .log để biết thêm chi tiết

Các vấn đề liên quan