国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 2018-6-13 JSP_Web_MVC開發(fā)(29)-基于Annotation配置Servlet -利用注解替代web.xml

2018-6-13 JSP_Web_MVC開發(fā)(29)-基于Annotation配置Servlet -利用注解替代web.xml

時間:2023-05-25 04:06:01 | 來源:網(wǎng)站運營

時間:2023-05-25 04:06:01 來源:網(wǎng)站運營

2018-6-13 JSP_Web_MVC開發(fā)(29)-基于Annotation配置Servlet -利用注解替代web.xml:Servlet2.5之后對于Servlet的配置不再使用web.xml文件。為了簡化程序開發(fā),提供有Annotation支持,即,可以利用注解的方式來完成web.xml文件達(dá)到的功能。

如果因為開發(fā)工具原因?qū)е伦⒔鉄o法使用,那么此時需要從Tomcat之中拷貝的開發(fā)包(servlet-api.jar)到WEB-INF/lib目錄下。

1.配置基本Servlet

package cn.mytest.servlet;import java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.annotation.WebInitParam;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class HelloServlet */@WebServlet(//配置WebServlet程序 name="helloServlet",//Servlet名稱,與<servlet-name>相同,此名稱內(nèi)部起作用 urlPatterns= {"/hello","/demo/hello/*"}, //配置映射路徑,與<url-mapping>相同,支持多個路徑 initParams= {//初始化參數(shù) @WebInitParam(value="Haha",name="p1"),//初始化參數(shù)的內(nèi)容和名稱 @WebInitParam(value="MySql",name="p2")}, loadOnStartup=1)//配置容器加載Servlet,當(dāng)值大于0時候容器會在啟動的時候就加載這個Servletpublic class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().println("<h1>Hello World!</h1>"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override public void init(ServletConfig config) throws ServletException { System.out.println("*** Servlet初始化:"+config.getInitParameter("p1")); System.out.println("*** Servlet初始化:"+config.getInitParameter("p2")); }}訪問鏈接http://localhost/AWProject/demo/hello/fsdfds,或者h(yuǎn)ttp://localhost/AWProject/hello都可以看到頁面顯示"Hello World!"。




2.配置過濾器

package cn.mytest.filter;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;import javax.servlet.annotation.WebInitParam;@WebFilter(filterName="encodingFilter", urlPatterns="/*", initParams= {//初始化參數(shù) @WebInitParam(value="UTF-8",name="charSet")//初始化參數(shù)的內(nèi)容和名稱 })public class EncodingFilter implements Filter { private String charSet; @Override public void destroy() { } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { System.out.println("*******************"); arg0.setCharacterEncoding(this.charSet); arg2.doFilter(arg0, arg1); } @Override public void init(FilterConfig arg0) throws ServletException { this.charSet=arg0.getInitParameter("charSet"); }}


3.配置監(jiān)聽器

package cn.mytest.listener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.annotation.WebListener;@WebListenerpublic class MyListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } @Override public void contextInitialized(ServletContextEvent arg0) { System.out.println("**********上下文初始化************"); }}重啟動Tomcat就可以看到效果。

隨著時代的發(fā)展,很少再去編寫web.xml配置了。如果是用戶自己開發(fā)的程序代碼,建議都采用Annotation的方式,這樣可以減少代碼開發(fā)的復(fù)雜度。

如果要想徹底理解Annotation必須通過開發(fā)的歷史做一個回顧,歷史上針對代碼開發(fā)有過如下變化

  1. 最早編寫代碼,所有系統(tǒng)配置的信息都寫在程序代碼之中
  2. 隨后產(chǎn)生了新的設(shè)計,使用一些配置文件保存用戶的配置信息,通過程序讀取。這種模式雖然方便了用戶維護(hù),但是開發(fā)麻煩。
  3. 將配置文件信息寫回到程序之中,但是必須與原始程序做一個有效的區(qū)分,采用注解方式(編譯的時候注解,運行的時候注解,類級注解)。

關(guān)鍵詞:配置,利用,替代,注解

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉