博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaWeb16-HTML篇笔记(二)
阅读量:5738 次
发布时间:2019-06-18

本文共 2372 字,大约阅读时间需要 7 分钟。

1.1 案例一:自动登录案例.1.1.1 需求:

在各式网站都会看到自动登录的功能,在登录页面中勾选了自动登录的复选框,那么下次访问网站首页的时候,可以不需要进行登录.
JavaWeb16-HTML篇笔记(二)
1.1.2 分析:1.1.2.1 技术分析:
【Cookie技术】

  • 利用Cookie记住用户的用户名和密码.
    【Filter:过滤器的概述】
    Ø 什么是过滤器Filter:可以过滤从客户端向服务器发送的请求.
    Ø 过滤器的使用:
  • 进行IP的过滤,脏话过滤,自动登录,响应压缩...
    Ø 使用过滤器:
  • 编写一个类实现Filter接口:
  • 配置过滤器:
    【过滤器的生命周期】:了解
    Ø 过滤器的创建和销毁:
  • 创建:服务器启动的时候.
  • 销毁:服务器关闭的时候.
    【FilterConfig:过滤器的配置对象】:
    JavaWeb16-HTML篇笔记(二)
    代码:
    public void init(FilterConfig filterConfig) throws ServletException {
    // 获得当前的Filter的名称:
    String filterName = filterConfig.getFilterName();
    System.out.println(filterName);
    // 获得初始化参数:
    String username = filterConfig.getInitParameter("username");
    String password = filterConfig.getInitParameter("password");
    System.out.println(username+" "+password);
    // 获得所有的初始化参数的名称:
    Enumeration<String> en = filterConfig.getInitParameterNames();
    while(en.hasMoreElements()){
    String name = en.nextElement();
    String value = filterConfig.getInitParameter(name);
    System.out.println(name+" "+value);
    }
    }
    【FilterChain:过滤器链】
    过滤器链中的过滤器的执行的顺序与<filter-mapping>的配置顺序有关.
  • doFilter(request,response); -- 放行,放行到下一个过滤器中,如果没有下一个过滤器,到达目标资源.
    【Filter相关的配置】
    Ø <url-pattern>的配置:
  • 完全路径匹配 :以 / 开始 /demo4/demo1.jsp
  • 目录匹配 :以 / 开始 以 结束. / /demo1/*
  • 扩展名匹配 :不能以 / 开始 以 开始. .do *.action
    Ø <servlet-name>的配置:根据Servlet的名称拦截Servlet.
    Ø <dispatcher>的配置:
  • REQUEST :默认值.
  • FORWARD :转发.
  • INCLUDE :包含.
  • ERROR :错误页面跳转.(全局错误页面)
    1.1.3 代码实现:
    【步骤一】:创建数据库和表:
    create database web_16;
    use web_16;
    create table user(
    id int primary key auto_increment,
    username varchar(20),
    password varchar(20),
    nickname varchar(20),
    type varchar(10)
    );
    insert into user values (null,'aaa','111','张凤','user');
    insert into user values (null,'bbb','111','如花','user');
    insert into user values (null,'ccc','111','张芙蓉','user');
    【步骤二】:导入jar包和工具类:
    【步骤三】:创建包结构及常用类:
    JavaWeb16-HTML篇笔记(二)
    【步骤四】:登录功能.
    【步骤五】:利用COokie记住用户名和密码
    【步骤六】:实现自动登录的过滤器
    1.2 案例二:通用的字符集编码的过滤器.1.2.1 需求:
    在一个网站上,通常会提交带有中文的数据,GET/POST请求都有可能提交中文数据.通常情况下在Servlet中处理中文乱码.现在能不能将乱码的处理交给过滤器完成.只需要在Servlet中关心参数的接收就可以了.
    只需要在Servlet中调用request.getParameter();接收参数就可以,而不去关心到底get/post如何处理乱码.
    1.2.2 分析:
    【增强request中的getParameter方法】
    Ø 继承 :控制这个类构造.
    Ø 装饰者模式 :增强的类和被增强类实现相同的接口,增强的类中获得到被增强的类的引用.
  • 缺点:接口中方法太多.
    Ø 动态代理 :被增强的类实现接口就可以.
    1.2.3 代码实现:
    public class MyHttpServletRequestWrapper extends HttpServletRequestWrapper{
    private HttpServletRequest request;
    public MyHttpServletRequestWrapper(HttpServletRequest request) {
    super(request);
    this.request = request;

}

转载于:https://blog.51cto.com/13517854/2124619

你可能感兴趣的文章
系列3:WAS Liberty Profile hello mysql jdbc
查看>>
基础知识:python模块的导入
查看>>
Android MVC之我的实现
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
关于批处理-1
查看>>
Tomcat部署Web应用方法总结
查看>>
Python3 django2.0 字段加密 解密 AES
查看>>
CCNA实验之:网络地址转换(NAT)实验
查看>>
计算机网络原理笔记-停止等待协议
查看>>
确定当前记录和下一条记录之间相差的天数
查看>>
sql语句返回主键SCOPE_IDENTITY()
查看>>
机器学习开源项目精选TOP30
查看>>
代码分析系列 内存执行过程
查看>>
iOS开发-邮件发送
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
oracle查看经常使用的系统信息
查看>>
Django_4_视图
查看>>