2017-03-22 27 views
0

我只是一個初學者,但我已經通過一個初學者的Java培訓課程,我們還介紹了REST的一些方面,所以我開始瞭解一些事情好一點。我真的很想了解更多關於servlet以及如何使用web.xml來設置它們的信息。下面是我在參加這個培訓課程時在我的項目中使用的web.xml。有人可以解釋使用servlet並在web.xml中設置它

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
version="3.1"> 
<display-name>Archetype Created Web Application</display-name> 
<servlet> 
    <servlet-name>jersey-servlet</servlet-name> 
    <servlet- 
class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>org.arpit.java2blog.controller</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>jersey-servlet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

右擊現在我只能聽懂一些。我可以理解一些<servlet-name>,<servlet-class>,<servlet-mapping><url-pattern>這樣做。

但我真的很努力去理解什麼<init-param><param-name><param-value>在一般情況下。我一直試圖谷歌找到一些信息,可以非常簡單地解釋這些信息,但我沒有太多的喜悅。

我真的想了解下面這兩個部分做:

`<init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>org.arpit.java2blog.controller</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
     <param-value>true</param-value> 
    </init-param>` 

我能理解什麼樣的第一部分涉及到,因爲我的控制器類都在包<param-value>org.arpit.java2blog.controller</param-value>位。但是什麼和爲什麼是參數com.sun.jersey.config.property?我找不到有這個名字的任何軟件包。

我明白第二個init = param部分與jersey-json jar有關,就是這樣。

如果可能的話,如果有人能用非常簡單的英語解釋一些這些東西(英語不是我們在愛沙尼亞的母語),我將非常感激。我非常努力地在編程中變得更好,我可以使用一點幫助。

親切的問候。

+0

它設置[球衣(https://jersey.java.net/)。 –

+0

你是否清楚在web.xml中使用這些類型的通用方法呢?或者這是你遇到的具體問題嗎? –

+0

@ShivamAggarwal - 謝謝。答案是兩者都有。我在使用REST,Maven和Tomcat設置項目時遇到了麻煩。所以我想我應該嘗試瞭解更多,但我很努力去理解POM和web.xml的工作原理。在我使用Eclipse之前,我有一些幫助設置了這個項目。現在我試圖在IntelliJ上設置它,但現在我自己做了。我創建了一個新的帖子,這個具體問題在http://stackoverflow.com/questions/43031725/cannot-get-rest-response-with-postman-java-intellij-tomcat-9-maven – Rain

回答

0

這些是對servlet類的初始化參數:

com.sun.jersey.spi.container.servlet.ServletContainer. 

如果你看看源代碼here

...如果初始化參數 「的com.sun。 jersey.config.property.resourceConfigClass「或 」javax.ws.rs.Application「不存在並且初始化 參數 「com.sun.jersey.config.property.packages」 的情況下(見 com.sun.jersey.api.core.PackagesResourceConfig.PROPERTY_PACKAGEScom.sun.jersey的 新實例。 api.core.PackagesResourceConfig是 創建的。初始化參數 「com.sun.jersey.config.property.packages」必須設置爲提供一個 或更多軟件包名稱。每個包名必須用';'分隔。使用 屬性名稱(@link PackagesResourceConfig#PROPERTY_PACKAGES}將 程序包名稱作爲屬性值添加到Map實例。 然後將任何其他初始化參數添加到Map 實例。然後Map實例被傳遞給構造函數 com.sun.jersey.api.core.PackagesResourceConfig

,第二個爲PojoMappingFuture

+0

這是有幫助的。 – Rain

相關問題