Servlet注解之@WebInitParam多個InitParam的使用
Servlet注解之@WebInitParam多個InitParam使用
百度了半天也沒找到。。。。
使用@WebInitParam配置多個InitParam,使某些頁面不被攔截。
在過濾器Filter.java下添加注解
@WebFilter(filterName="Filter",urlPatterns="/*", initParams = { ? ? ? ? @WebInitParam(name = "noLoginPaths", value = "index.jsp;fail.jsp;/LoginServlet") ? ? ? ? })
1. name為InitParameter名字,value為值,之間用特殊符號隔開,這里用逗號。
2. 建立一個私有FilterConfig類的字符串config,并在重寫Filter.java的Init()方法里初始化confg=arg0;
3. 使用config.getInitParameter(“noLoginPaths”);獲得InitParam的value的字符串。
4. 使用split(“;”)的方法分割字符串,獲得所有不需要過濾的文件名稱數(shù)組。
5. 使用request.getRequestURI().indexOf(strArray[i])!=-1判斷是否為這些文件即可。
Servlet3.0注解@WebInitParam和@WebServlet
在以前的servlet中我們初始化一些參數(shù)都是配置在web.xml中的,自從servlet3.0之后給我們提供了注解@WebServlet和@WebInitParam,@WebServlet是用來配置servlet的屬性的,@WebInitParam是用來配置一些初始化屬性的。
@WebServlet和@WebInitParam使用如下
package roseindia.net; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.annotation.WebInitParam; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; ? @WebServlet( ?? ?name = "WebInitParamExample", urlPatterns = {"/hello"} ?? ?,initParams = { ?? ?@WebInitParam(name= "Site :", value="http://roseindia.net"), ?? ?@WebInitParam(name= "Rose", value= "India"), ?? ?} ) public class WebInitParamExample extends HttpServlet{ ?? ?public void doGet(HttpServletRequest request, HttpServletResponse response) ?? ?throws ServletException, IOException ?? ?{ ?? ??? ?response.setContentType("text/html"); ?? ??? ?PrintWriter out = response.getWriter(); ?? ??? ?out.println("<h2>Init Param Servlet Example</h2>"); ?? ??? ?ServletConfig config= getServletConfig(); ?? ??? ?String pValue= config.getInitParameter("Site :"); ?? ??? ?out.println("Param Value : "+pValue); ?? ??? ?String pValue1= config.getInitParameter("Rose"); ?? ??? ?out.println("<br>Param Value : "+pValue1); ?? ??? ?out.close(); ?? ?} }
如果在web.xml中配置則如下
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> ?? ?<display-name>servletAnnotationExample</display-name> ?? ?<servlet> ?? ??? ?<servlet-name>WebInitParamExample</servlet-name> ?? ??? ?<servlet-class>roseindia.net.WebInitParamExample</servlet-class> ?? ??? ?<init-param> ?? ??? ??? ?<param-name>Site :</param-name> ?? ??? ??? ?<param-value>http://roseindia.net</param-value> ?? ??? ?</init-param> ?? ?</servlet> ?? ?<servlet-mapping> ?? ??? ?<servlet-name>WebInitParamExample</servlet-name> ?? ??? ?<url-pattern>/hello</url-pattern> ?? ?</servlet-mapping> </web-app>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot監(jiān)聽器的實現(xiàn)示例
在SpringBoot中,你可以使用監(jiān)聽器來響應(yīng)特定的事件,本文主要介紹了SpringBoot監(jiān)聽器的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2023-12-12Spring Boot 深入分析AutoConfigurationImportFilter自動化條件
這篇文章主要分析了Spring Boot AutoConfigurationImportFilter自動化條件配置源碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-07-07SpringBoot實現(xiàn)文章防盜鏈的代碼設(shè)計
這篇文章主要介紹了SpringBoot實現(xiàn)文章防盜鏈的代碼設(shè)計,文中通過代碼示例講解的非常詳細,對大家實現(xiàn)文章防盜鏈功能有一定的幫助,需要的朋友可以參考下2024-05-05