Servlet3.0引入的新特性續

來源:互聯網
上載者:User

@WebInitParam
可以使用@WebInitParam註解來制定Servlet或filter的初始參數。當然我們也可以使用@WebServlet或@WebFileter的initParam屬性來指定初始參數。下面是使用@WebInitParam的例子:

@WebServlet(name = "GetQuoteServlet", urlPatterns ={"/getquote"})@WebInitParam(name = "default_market", value = "NASDAQ")public class GetQuoteServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();try {String market = getInitParameter("default_market");String symbol = request.getParameter("symbol");out.println("<h1>Stock Price in " +market + " is</h1>" +StockQuoteBean.getPrice(symbol, market));} finally {out.close();}}}

下面是使用initParam屬性的例子:

@WebServlet(name = "GetQuoteServlet",urlPatterns = {"/getquote"},initParams={@WebInitParam(name="default_market",value="NASDAQ")})public class GetQuoteServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();try {String market = getInitParameter("default_market");String symbol = request.getParameter("symbol");out.println("<h1>Stock Price in " +market + " is</h1>" +StockQuoteBean.getPrice(symbol, market));} finally {out.close();}}}

@WebListener
@WebListener註解被應用在作為listener監聽web應用程式事件的類上,所以@WebListener能夠被應用在實現了ServletContextListener,ServletContextAttributeL

istener,ServletRequestListener,ServletRequestAttributeListener,HttpSessionListener和HttpSessionAttributeListener介面的類上。在下面的例子中,該類實現了ServletContextListener介面。

@WebListenerpublic class QuoteServletContextListener implementsServletContextListener {public void contextInitialized(ServletContextEvent sce) {ServletContext context = sce.getServletContext();context.setInitParameter(“default_market”, “NASDAQ”);}public void contextDestroyed(ServletContextEvent sce) {}}

@MultipartConfig
使用@MultipartConfig註解來指定Servlet要求的multipartMIME類型。這種類型的MIME附件將從request對象中讀取。

The Metadata and Common Annotations中繼資料與通用的註解
除了以上的Servlet特定的註解之外,Servlet3.0還支援JSR175(Java中繼資料規範)和JSR250(Java平台通用註解)所規定的註解,包括:
* 安全相關的註解,如 @DeclareRoles 和 @RolesAllowed
* 使用EJB的註解,如 @EJB 和 @EJBs
* 資源注入相關的註解,如 @Resource 和 @Resources
* 使用JPA的註解,如 @PersistenceContext, @PersistenceContexts,@PersistenceUnit, 和 @PersistenceUnits
* 生命週期的註解,如 @PostConstruct和 @PreDestroy
* 提供WebService引用的註解,如 @WebServiceRef and @WebServiceRefs

註解和web.xml哪個會生效
註解的引入使得web.xml變成可選的了。但是,我們還是可以使用web.xml。容器會根據web.xml中的metadata-complete元素的值來決定使用web.xml還是使用註解。如果該元素的值是true,那麼容器不處理註解,web.xml是所有資訊的來源。如果該元素不存在或者其值不為true,容器才會處理註解。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.