2012-03-28 72 views
0

我有以下設置。該文件夾iText的是在web應用的最高水平:web.xml中的web.xml中的項目不在頂層web.xml中的servlet-mapping屬性

├───itext 
│ └───WEB-INF 
│  ├───classes 
│  │ └───com 
│  │  └───imparator 
│  │   └───ist 
│  └───lib 

在我有一個web.xml文件,在那裏我做servlet映射的WEB-INF文件夾:

<servlet> 
    <servlet-name>Itext Servlet</servlet-name> 
    <servlet-class>com.imparator.ist.ItextServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Itext Servlet</servlet-name> 
    <url-pattern>/fincc-itext</url-pattern> 
</servlet-mapping> 

現在,當我希望通過這個servlet在這裏享用的東西是一個形式我的行爲屬性:

<form method="POST" action="/itext/fincc-itext"> 

========================== ================================================== ============

現在,假設iText的文件夾不是在web應用的頂層文件夾,但幾個級別下面:

├───level1 
│ └───level2 
│  └───itext 
│   └───WEB-INF 
│    ├───classes 
│    │ └───com 
│    │  └───imparator 
│    │   └───ist 
│    └───lib 

如何更新servlet映射和action屬性值對應於這個目錄結構?

+0

注意,在URL中的上下文路徑是不一定的文件夾名稱它已部署的主webapp文件夾。它可以在服務器配置中進行配置。你應該總是喜歡用'HttpServletRequest#getContextPath()'或'$ {pageContext.request.contextPath}'動態指定它,而不是在HTML/JSP中對其進行硬編碼。另見http://stackoverflow.com/questions/4764405/how-to-use-relative-paths-without-including-the-context-root-name – BalusC 2012-03-28 20:29:30

回答

1

除非上下文發生變化,否則不會更改。上下文是itext,因爲這是你的WEB-INF。

+0

的含義?我仍然發送請求到/ itext/fincc-itext? – oneiros 2012-03-28 20:26:32

+0

這種方式將請求發送到http:// localhost:8080/itext/fincc-itext,這實際上不是servlet的位置...... level1和level2需要包含在路徑中?是/否? – oneiros 2012-03-28 20:27:41

+0

這確實不會改變。除此之外,建議的文件夾結構不符合servlet規範,並且servlet容器無法成功部署webapp。 – BalusC 2012-03-28 20:28:11

1

的Web應用程序的設置必須是:

webapp 
    -somefolders (you can put text, js, css, image files here) 
    - WEB-INF 
     - classes 
     - lib (contains jars) 
     - web.xml 
     - xml or configuration files 
    - META-INF (if needed) 

它是標準,你必須遵循。如果你想改變servlet路徑,你可以在web.xml中修改它。在您的情況:

+---itext (web app name) 
¦ +---somefolders (you can put text, js, css, image files here) 
¦ ¦ 
¦ +---META-INF (if needed) 
¦ ¦ 
¦ +---WEB-INF 
¦  +---classes 
¦  ¦ +---com 
¦  ¦  +---imparator 
¦  ¦   +---ist 
¦  +---lib 
¦ ¦ 
¦ +---web.xml 
¦ ¦ 
¦ +---xml or configuration files 

你仍然需要保持你的應用程序結構和修改web.xml中的servlet路徑:

<servlet-mapping> 
    <servlet-name>Itext Servlet</servlet-name> 
    <url-pattern>/itext/fincc-itext</url-pattern> 
</servlet-mapping> 
+0

那個特定的webapp必須正確地位於webapps文件夾下面嗎? – oneiros 2012-03-28 21:09:42