servlet3.0新特性_查看Servlet 3.0的新增功能
servlet3.0新特性
隨著JEE6規范上市,在企業應用程序領域中如何開發應用程序方面發生了一些重大變化。 在本文中,我將介紹有關Web應用程序開發的一些更改。
首先,請告別web.xml部署描述符(至少是其中的一部分)。 好吧,它不是不贊成使用,而是隨著注釋的使用及其用法的增加,新規范允許我們使用注釋來定義我們的配置,盡管諸如歡迎文件列表,上下文參數等的某些內容仍然需要去做。在您的web.xml中。 可用的注釋有;
- @WebServlet
- @WebFilter
- @WebInitParam
- @WebListener
- @MultipartConfig
在本文中,我將檢查@WebServlet和@WebFilter批注。 讓我們看看在web.xml時代通常如何映射servlet。
<servlet><servlet-name>myservlet</servlet-name><servlet-class>com.example.MyServlet</servlet-class></servlet><servlet-mapping><servlet-name>myservlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>使用Servlet 3.0規范,現在配置Servlet就像注釋擴展HttpServlet的類一樣容易。 讓我們看一下它的樣子。
@WebServlet('/student') public class StudentServlet extends HttpServlet{/*** */private static final long serialVersionUID = 2276157893425171437L;@Overrideprotected void doPost(HttpServletRequest arg0, HttpServletResponse arg1)throws ServletException, IOException {StringBuilder response = new StringBuilder(500);response.append('<html><body>').append('Registered Student : ').append(arg0.getParameter('txtName')).append('</body></html>');arg1.getOutputStream().write(response.toString().getBytes());arg1.getOutputStream().flush();arg1.getOutputStream().close();} }您只需要@WebServlet批注。 為了使它起作用,該類應駐留在WEB-INF / classes文件夾中或駐留在WEB-INF / lib文件夾中的jar中。 接下來,讓我們看看如何配置帶有注釋的過濾器。
package com.blog.example.servlettest;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter;@WebFilter('/student') public class StudentFilter implements Filter{@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {if(arg0.getParameter('txtName')==null || arg0.getParameter('txtName').isEmpty()){arg1.getWriter().append('Invalid name supplied');arg1.getWriter().flush();arg1.getWriter().close(); }else{arg2.doFilter(arg0, arg1);}}@Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub}}再次非常容易。 僅作為注釋即可通知它為過濾器。 注意,這里我們實現了Filter接口。 該值或urlPatterns應該可用。 根據規范,同時使用這兩種方法都是非法的。
在接下來的幾周中,我將介紹JEE6提供的其他新注釋,并結合使用它們的完整示例進行總結。 JEE6是否取代Spring框架本身并不是一個問題,但是我相信我們將會看到兩者之間的激烈競爭。 注釋vs xml的爭論已或多或少地解決了,每個人都傾向于擁有自己的立場。 我相信這兩個領域的一點點都會對應用程序有益。
您可以下載并運行我已在此處上傳的示例示例。 如果您使用的是JBoss-AS7 ,則只需在獨立模式下運行應用程序服務器,然后執行mvn軟件包jboss-as:deploy并將瀏覽器指向http:// localhost:{port} /servlet3.0 。
今天就是這樣。 感謝您的閱讀,如果您有任何意見或改進建議,請留下評論。
祝你有美好的一天!
參考:在My My Journey Through IT博客上,從我們的JCG合作伙伴 Dinuka Arseculeratne中了解Servlet 3.0的新增功能 。
翻譯自: https://www.javacodegeeks.com/2012/12/checking-out-what-is-new-with-servlet-3-0.html
servlet3.0新特性
總結
以上是生活随笔為你收集整理的servlet3.0新特性_查看Servlet 3.0的新增功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用Spring设置安全的REST
- 下一篇: 侍魂安卓版下载(侍魂安卓)