- 一、案例一、过滤非法字符
- 1.1、案例需求
- 1.2、案例效果
- 1.3、过滤器
- 1.3.1 为什么要使用过滤器
- 1.3.2 什么是过滤器
- 1.3.3 过滤器应用场景
- 1.3.3.1 过滤论坛中用户发表内容中的非法字符
- 1.3.3.2 登录权限检查
- 1.3.4、入门案例
- 1.3.5、过滤器的生命周期
- 1.3.6、单过滤器执行流程
- 1.3.7 映射路径
- 1.3.7.1 精确匹配模式(相当于servlet中的完全匹配)
- 1.3.7.2 模糊匹配模式
- 1.3.8 拦截方式
- 1.3.9.1 request
- 1.3.9.2 forward(只拦截请求转发)
- 1.3.9 过滤器链的执行流程
- 1.4 过滤非法字符案例实现
- 二、案例二:解决全站乱码
- 2.1案例需求
- 2.2案例效果
- 2.3 案例实现
- 三、监听器(了解,后面会详细总结)
- 3.1 什么是监听器
- 3.2 监听器的创建
- 3.3 第一类监听器(监听域对象的创建和销毁)
- 3.4 第二类监听器
- 3.5 第三类监听器
- 四、Ajax
- 4.1 什么是Ajax
- 4.2 ajax的实现方式
- 4.3 jQuery框架的ajax
- 4.3.1 jQuery框架的ajax简介
- 4.3.2 GET请求方式
- 4.3.2.1 Get请求方式概述
- 4.3.2.2 Get请求方式语法
- 4.3.2.3 Get请求方式代码
- 4.3.3 POST请求方式
- 4.3.3.1 Post请求方式概述
- 4.3.3.2 Post请求方式语法
- 4.3.3.3 Post请求方式代码
- 4.3.4 Ajax请求方式
- 4.3.4.1 ajax请求方式概述
- 4.3.4.2 ajax请求方式语法
- 五、JSON
- 5.1、json简述
- 5.2、json语法格式
- 5.3、json数据和java对象的相互转换
- 5.3.1.使用jsonlib转换
- 5.3.2.使用jackson转换
- 5.3.3.Json数据格式转java对象
- 六、案例一:检测用户名是否已被注册
- 6.1 分析流程:
- 6.2 案例实现
- 七、案例二:内容自动补全
1.2、案例效果当用户发出非法言论的时候,提示用户言论非法
在表单中输入含有非法字符的言论,点击提交按钮
在页面显示
含有非法字符,请重新发表言论
1.3、过滤器 1.3.1 为什么要使用过滤器如果不含有非法字符:
在页面显示:你发表的言论是:xxxxxx
1.3.2 什么是过滤器在工作项目中,我们对访问某些资源的请求需要进条件的筛选、过滤。当这个请求满足特定的情况,才能让这 个请求访问目标资源,如果不满足条件,就不让访问目标资源。比如说:对于访问管理员功能的请求,我们应该对这样的请求进行管理员权限的判断。如果当前用户拥有管理员权限,可以访问。反之不可以。java开发中需要很多这样过滤功能的操作,所以需要知道过滤器。
Filter:是Java中预先定义好了的接口,可以过滤不同的内容,具体怎么过滤,需要使用者定义一个实现类,然后实现接口中的过滤方法,在方法中书写过滤的条件。filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行
1.3.3 过滤器应用场景 1.3.3.1 过滤论坛中用户发表内容中的非法字符Servlet 也需要实现一个接口HttpServlet
Filter 需要实现一个接口Filter接口
1.3.3.2 登录权限检查当我们上论坛或者贴吧这类的网站浏览信息时,我们发现,很多评论有时候是携带脏词的。而这些脏词不能显示出来,使用**代替了。类似这类的脏词过滤,我们可以通过java中的过滤器,对请求参数中的脏词进行过滤
1.3.4、入门案例当客户端浏览器发出一个请求,这个请求在访问到正真的目标资源之前,我们需要进行登录权限的检查。如果已经登录,我们就让这个请求通过,访问资源;如果没有登录,我们不能让请求访问目标资源。这样的操作需要在访问 具体资源进行条件的过滤,我们可以使用过滤器来完成。
实现步骤:
- 创建一个普通java类, 去实现Filter接口, 重写filter 的方法
- 设置过滤的路径
(1)普通java类(ZhangServlet.java)
package com.zql;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/zhang")
public class ZhangServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决请求和响应乱码问题
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
System.out.println("张同学开车回家了。。。。。");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
(2)过滤器设置(DemoFilter1.java)
package com.zql;
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;
@WebFilter("
@WebFilter("
@WebFilter("
//json数组格式:
//json复合形式:
var list = [{"name":"Daniel","age":10},{"name":"Jenny","age":23}];
alert(list[1].age);

