编写一个过滤器
//利用过滤器实现中文乱码问题
public class encodingFilter implements Filter {
//初始化过滤器
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//设置编码,防止中文乱码
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html");
System.out.println("doFilter启动前...");
//固定写法,必须要让过滤器继续同行
filterChain.doFilter(servletRequest,servletResponse);//让我们的程序继续走,如果不写程序到这会停止
System.out.println("doFilter执行后...");
}
//销毁过滤器,在服务器关闭的时候才销毁
@Override
public void destroy() {
}
}
<filter>
<filter-naem>encodingFilter</filter-name>
<filter-class>实现Filter类的路径</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<filter-pattern>拦截的URL路径</filter-pattern>
</filter-mapping>
过滤器的常见应用
- 实现用户登录、注销功能
- 登录页面中输入用户名和密码,若数据库中存在,则将数据存在Session中
- 在进入主页的时候,过滤器需要判断Session中是否有相关数据,没有就重定向到错误页面(防止直接使用URL地址进主页)
- 进入主页时要判断Session是否有相关数据
- 若数据库中没有则重定向到错误页面
- 若选择注销,则将Session的相关数据清除,一般不要去销毁Session,重复创建Session很消耗资源。
Java懒加载
//用户的服务层
public class UserServiceImpl implments IUserService{
private IUserDao userDao;//dao层是对数据库进行操作的,(pojo)entity实体类是与数据库对应的
public UserServiecImpl{
userDao = new UserDaoImpl();//这种方式就是懒加载的方式,如果后面用了框架,就直接使用@Autowrite注解
}
... //具体的业务方法
}
网友评论