1.javaå
³äºServletConfig FilterConfigä»ä¹ç¨
2.druid使用configfilter的源码数据库密码加密,但是key在jar包里
3.Druid 参数配置详解
4.filterConfig.getInitParameter("redirectURL");是什么意思?
javaå ³äºServletConfig FilterConfigä»ä¹ç¨
å ·ä½ç使ç¨æ¹æ³ä½ å¯ä»¥å¨googleä¸æç´¢ âfilter è¿æ»¤å¨âï¼FilterConfigå¯ä»¥è·åé¨ç½²æ述符æ件ï¼web.xmlï¼ä¸åé çè¿æ»¤å¨åå§ååæ°ã
éå¯¹ä½ çé®é¢åçï¼ç»æå°±æ¯è¯´FilterConfigå¯ä»¥è·å¾web.xmlä¸ï¼ä»¥ filter ä½ä¸ºæè¿°æ ç¾å çåæ°ã
å®ä¹ï¼
FilterConfig对象æä¾å¯¹servletç¯å¢åweb.xmlæ件ä¸ææ´¾çè¿æ»¤å¨åç访é®ã
FilterConfigå¯¹è±¡å ·æä¸ä¸ªgetInitParameteræ¹æ³ï¼å®è½å¤è®¿é®é¨ç½²æ述符æ件ï¼web.xmlï¼ä¸åé çè¿æ»¤å¨åå§ååæ°ã
å®ä¾ï¼
å°ä¸é¢ç代ç å å ¥å°web.xmlä¸ï¼è¯ç¨FilterConfigå°±å¯ä»¥è·å¾ä»¥ filter ä½ä¸ºæè¿°æ ç¾å çåæ°ã
<!-- The Cache Filter -->
<filter>
<!-- 设计è¿æ»¤å¤çç±»ï¼çæéæé¡µé¢ -->
<filter-name>CacheFilter</filter-name>
<filter-class>com.jspbook.CacheFilter</filter-class>
<!-- ä¸éè¦ç¼åçURL -->
<init-param>
<param-name>/TimeMonger.jsp</param-name>
<param-value>nocache</param-value>
</init-param>
<init-param>
<param-name>/TestCache.jsp</param-name>
<param-value>nocache</param-value>
</init-param>
<!-- ç¼åè¶ æ¶æ¶é´, åä½ä¸ºç§ -->
<init-param>
<param-name>cacheTimeout</param-name>
<param-value></param-value>
</init-param>
<!-- æ¯å¦æ ¹æ®æµè§å¨ä¸åçå°åºè®¾ç½®è¿è¡ç¼å(çæçç¼åæ件为 test.jspid=1_zh_CN çæ ¼å¼) -->
<init-param>
<param-name>locale-sensitive</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
ç¨æ³ï¼
filterConfig.getInitParameter("locale-sensitive"); å¾å°çå°±æ¯ ture
filterConfig.getInitParameter("cacheTimeout"); å¾å°çå°±æ¯
filterConfig.getInitParameter(request.getRequestURI()); å¾å°çå°±æ¯param-name 对åºç param-value å¼
è¿æ»¤å¤çç±»ï¼
public class CacheFilter implements Filter {
ServletContext sc;
FilterConfig fc;
long cacheTimeout = Long.MAX_VALUE;
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
// check if was a resource that shouldn't be cached.
String r = sc.getRealPath("");
String path = fc.getInitParameter(request.getRequestURI());
if (path != null && path.equals("nocache")) {
chain.doFilter(request, response);
return;
}
path = r + path;
}
public void init(FilterConfig filterConfig) {
this.fc = filterConfig;
String ct = fc.getInitParameter("cacheTimeout");
if (ct != null) {
cacheTimeout = * * Long.parseLong(ct);
}
this.sc = filterConfig.getServletContext();
}
public void destroy() {
this.sc = null;
this.fc = null;
}
}
druid使用configfilter的数据库密码加密,但是key在jar包里
公钥与私钥皆能生成。
引入com.alibaba.druid.filter.config.ConfigTools包。源码
创建PasswordUtil类。源码
在main方法中,源码定义密码明文。源码
打印密码明文信息。源码代号天龙源码
生成密钥对,源码包含私钥与公钥。源码
打印私钥信息。源码
打印公钥信息。源码
使用私钥对密码明文加密。源码
打印加密后的源码密码信息。
完整流程展示密码加密与密钥生成过程。源码
Druid 参数配置详解
在Java开发中,源码数据库操作频繁是源码盛派小程序开发源码常态,为了优化性能,数据库连接池的使用至关重要。连接池,如Druid,通过预先创建并管理连接,极大地提高了代码与数据库的交互效率,避免了频繁创建连接导致的通达信mfi底背离源码网络开销和数据库压力。
Druid是连接池的佼佼者,其使用方法相对简单。不再直接通过驱动创建连接,而是通过DruidDataSource对象来获取。以Spring Boot为例,首先需要在项目中添加Druid的依赖,并配置连接池。新中源二合一源码下载这包括设定最大连接数等性能参数。
在安全性方面,Druid支持密码加密,以保护明文密码。在配置文件中,通过设置config.decrypt=true和config.decrypt.key=${ spring.datasource.publicKey},你可以为加密后的人民银行内部系统源码密码指定解密公钥。同时,开启configFilter是实现密码解密所必需的步骤。
总结来说,Druid的参数配置是提升数据库操作性能和安全性的重要手段,通过合理的配置和使用,可以显著优化Java应用与数据库的交互体验。以上内容由OpenWrite平台发布。
filterConfig.getInitParameter("redirectURL");是什么意思?
在Servlet 2.3中,filterConfig.getInitParameter("redirectURL") 是一个关键方法,它用于获取初始化参数"redirectURL"。filter是Servlet 2.3新增的功能,允许在请求(ServletRequest)到达Servlet之前或之后对其进行预处理和后处理,实质上构成了一种"Servlet链"。FilterConfig接口中的此方法用于获取filter的配置信息,包括参数值。
FilterConfig接口提供了setFilterConfig和getFilterConfig方法,前者用于设置filter的配置对象,后者则返回这个配置对象。其中,doFilter方法是filter的核心,它接收ServletRequest、ServletResponse和FilterChain作为参数。每次请求到达时,服务器会调用setFilterConfig一次初始化filter,然后多次调用doFilter处理不同请求。
filterConfig.getInitParameter("redirectURL")允许开发者在filter初始化时获取名为"redirectURL"的参数,这在实现诸如日志过滤、用户认证等需要基于配置信息操作的场景中非常有用。例如,一个简单的日志filter可能用这个方法获取日志记录的重定向URL,以便在请求完成后记录其执行时间。