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-12
Spring Boot 深入分析AutoConfigurationImportFilter自動化條件
這篇文章主要分析了Spring Boot AutoConfigurationImportFilter自動化條件配置源碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-07-07
SpringBoot實現(xiàn)文章防盜鏈的代碼設(shè)計
這篇文章主要介紹了SpringBoot實現(xiàn)文章防盜鏈的代碼設(shè)計,文中通過代碼示例講解的非常詳細,對大家實現(xiàn)文章防盜鏈功能有一定的幫助,需要的朋友可以參考下2024-05-05

