📄 localefilter.java
字号:
/*
* LocaleFilter.java
*
* Created on 2003/08/26, 19:00
*/
package jp.co.intra_mart.framework.base.service;
import java.io.IOException;
import java.util.Locale;
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.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* 儕僋僄僗僩偺儘働乕儖傪愝掕偟傑偡丅
* 儕僋僄僗僩偵懳偡傞儘働乕儖偺寛掕曽朄偼{@link ServiceManager#getLocale(HttpServletRequest, HttpServletResponse)}偲摨偠偱偡丅<BR><BR>
* 偙偺帪偵庢摼偝傟偨儘働乕儖偼HttpSession偑懚嵼偡傟偽偦偺拞偵愝掕偝傟傑偡丅偙偺応崌偺懏惈柤偼{@link ServicePropertyHandler#getLocaleAttributeName()}偱庢摼偝傟傞傕偺偱偡丅
*
* @author INTRAMART
* @since 4.2
*/
public class LocaleFilter implements Filter {
/**
* Filter Config
*/
private FilterConfig filterConfig;
/**
* 僒乕價僗儅僱乕僕儍
*/
private ServiceManager manager;
/**
* 僒乕價僗僾儘僷僥傿僴儞僪儔
*/
private ServicePropertyHandler handler;
/**
* 儘働乕儖梡偺僼傿儖僞傪弶婜壔偟傑偡丅
*
* @param filterConfig FilterConfig
* @throws ServletException 僼傿儖僞撪偱椺奜偑敪惗
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
// 僒乕價僗儅僱乕僕儍偺庢摼
try {
this.manager = ServiceManager.getServiceManager();
} catch (ServiceManagerException e) {
throw new ServletException(e.getMessage(), e);
}
// 僒乕價僗僾儘僷僥傿僴儞僪儔偺庢摼
this.handler = this.manager.getServicePropertyHandler();
}
/**
* 儕僋僄僗僩偺儘働乕儖傪愝掕偟傑偡丅
*
* @param servletRequest 儕僋僄僗僩
* @param servletResponse 儗僗億儞僗
* @param filterChain 僼傿儖僞
* @throws IOException 僼傿儖僞張棟幚峴帪偵IOException偑敪惗
* @throws ServletException 僼傿儖僞張棟幚峴帪偵ServletException偑敪惗
*/
public void doFilter(
ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain)
throws IOException, ServletException {
Locale locale = null;
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;
HttpSession session = request.getSession(false);
// 儘働乕儖偺庢摼
try {
locale = this.manager.getLocale(request, response);
} catch (ServicePropertyException e) {
throw new ServletException(e.getMessage(), e);
}
// 儘働乕儖偺愝掕
if (session != null) {
try {
session.setAttribute(
this.handler.getLocaleAttributeName(),
locale);
} catch (ServicePropertyException e) {
throw new ServletException(e.getMessage(), e);
}
}
// 師偺僼傿儖僞偵慗堏
filterChain.doFilter(servletRequest, servletResponse);
}
/**
* 僼傿儖僞傪攋婞偟傑偡丅
*/
public void destroy() {
this.manager = null;
this.filterConfig = null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -