GitBlog


过滤器及springboot实现


1.过滤器

Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁


package ...;   
import ...;
// 主要目的:过滤字符编码;其次,做一些应用逻辑判断等.
// Filter跟web应用一起启动
// 当web应用重新启动或销毁时,Filter也被销毁
public class MyCharsetFilter implements Filter {
private FilterConfig config = null;
public void destroy() {
System.out.println("MyCharsetFilter准备销毁...");
}

public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException, ServletException {
// 强制类型转换
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;
// 获取web.xm设置的编码集,设置到Request、Response中
request.setCharacterEncoding(config.getInitParameter("charset"));
response.setContentType(config.getInitParameter("contentType"));
response.setCharacterEncoding(config.getInitParameter("charset"));
// 将请求转发到目的地
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
this.config = arg0;
System.out.println("MyCharsetFilter初始化...");
}
}
<filter>   
<filter-name>filter</filter-name>
<filter-class>dc.gz.filters.MyCharsetFilter</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>contentType</param-name>
<param-value>text/html;charset=UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<!-- * 代表截获所有的请求 或指定请求/test.do /xxx.do -->
<url-pattern>/*</url-pattern>
</filter-mapping>

在spring boot中加入filter 

@Component
@WebFilter(urlPatterns = "/webapi/*", filterName = "authFilter")
public class AuthFilter implements Filter {
......
}

 或者 

@Bean    
public FilterRegistrationBean testFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean(new TestFilter());
registration.addUrlPatterns("/webapi/*"); //
registration.addInitParameter("paramName", "paramValue"); //
registration.setName("testFilter");
return registration;
}


 

 



关于项目

做过很多个的博客了,发现自己做博客最大的问题就是,没钱!虽然也会买一些云服务器,但是还是觉得好贵啊!

后来听说可以用github做博客,自己也折腾过hexo之类的东东,但始终用起来很不爽!毕竟是别人定制的东西,很多diy的地方都不是那么尽人意!

所以最后决定自己写一个,反正git的页面就是些静态页面呗!自己写个内容管理系统还不是手到擒来!后台用springboot很容易就搞定了,数据库在几番研究后使用了非常轻量的嵌入式数据库,h2!然后数据移植的问题也搞定了!用vue随意搭了个管理页面,写上几个模板,新鲜出炉的gitblog就做好了!

接下来,优化模板的样式,增加标签功能,把管理页面嵌入博客,加入评论!!!!

查看更多 →
文章目录