|
@@ -4,49 +4,55 @@ 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.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletRequestWrapper;
|
|
|
|
|
|
-import org.springframework.core.annotation.Order;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
import com.vdurmont.emoji.EmojiParser;
|
|
|
|
|
|
-@Order(1)
|
|
|
-//执行的顺序,值越小,越先执行
|
|
|
-@WebFilter(urlPatterns = "/*")
|
|
|
-public class EmojiEncodingFilter implements Filter {
|
|
|
+public class EmojiEncodingFilter implements Filter {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void init(FilterConfig filterConfig) throws ServletException {
|
|
|
+ Filter.super.init(filterConfig);
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
|
|
|
request = new HttpServletRequestWrapper((HttpServletRequest) request) {
|
|
|
|
|
|
- @Override
|
|
|
- public String getParameter(String name) {
|
|
|
- // 参数名
|
|
|
- // 返回值之前 先进行 Emoji 转化
|
|
|
- return EmojiParser.parseToAliases(super.getParameter(name));
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public String[] getParameterValues(String name) {
|
|
|
- // 参数值
|
|
|
- // 返回值之前 先进行 Emoji 转化
|
|
|
- String[] values = super.getParameterValues(name);
|
|
|
- if (values != null) {
|
|
|
- for (int i = 0; i < values.length; i++) {
|
|
|
- values[i] = EmojiParser.parseToAliases(values[i]);
|
|
|
- }
|
|
|
- }
|
|
|
- return values;
|
|
|
- }
|
|
|
-
|
|
|
- };
|
|
|
-
|
|
|
- chain.doFilter(request, response);
|
|
|
+ @Override
|
|
|
+ public String getParameter(String name) {
|
|
|
+ // 参数名
|
|
|
+ String value = super.getParameter(name);
|
|
|
+ if (StringUtils.isNotBlank(value)) {
|
|
|
+ // 返回值之前 先进行 Emoji 转化
|
|
|
+ return EmojiParser.parseToAliases(value);
|
|
|
+ }
|
|
|
+ return value;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String[] getParameterValues(String name) {
|
|
|
+ // 参数值
|
|
|
+ // 返回值之前 先进行 Emoji 转化
|
|
|
+ String[] values = super.getParameterValues(name);
|
|
|
+ if (values != null) {
|
|
|
+ for (int i = 0; i < values.length; i++) {
|
|
|
+ values[i] = EmojiParser.parseToAliases(values[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return values;
|
|
|
+ }
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ chain.doFilter(request, response);
|
|
|
}
|
|
|
|
|
|
}
|