编程语言
首页 > 编程语言> > JavaWeb:Filter过滤器、JSON和AJAX

JavaWeb:Filter过滤器、JSON和AJAX

作者:互联网

Session

Session是什么

浏览器和Session会话之间的技术内幕

image

Filter过滤器

  1. Filter过滤器是JavaWeb三大组件之一(Servlet、Listener、Filter过滤器)
  2. Filter过滤器是JavaEE的规范,是接口。

如果做到权限限制

//1.创建一个类来实现Filter,并重写doFilter()方法
public class AdminFilter implements Filter {}
//2.在doFilter()编写验证代码
//对doFilter()的形参servletRequest进行类型转换
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
Object userName = httpServletRequest.getSession().getAttribute("userName");
if(userName==null){
//如果尚未登录,则跳转至登录页面
httpServletRequest.getRequestDispatcher("/logIn.jsp").forward(servletRequest,servletResponse);
   System.out.println("您还没有登录");
}else {
//否则就让程序继续往下走
filterChain.doFilter(servletRequest,servletResponse);
}
//4.在web.xml中配置
<filter>
	<filter-name>AdminFilter</filter-name>
    <filter-class>com.boerk.controller.AdminFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>AdminFilter</filter-name>
    <url-pattern>/admin/*</url-pattern>//这里表示web下的admin文件夹里所有的文件
</filter-mapping>

FilterConfig类

FilterConfig是Filter的配置信息文件夹。每次创建Filter的时候都会创建一个FilterConfig类。

FilterConfig类的作用是获取Filter过滤器的配置信息

  1. 获取Filter的别名(filterconfig.getFilterName()
  2. 获取Filter的初始化参数(filterConfig.getInitParameter(key);)
  3. 获取ServletContext对象(filterConfig.getServletContext();)

FilterChain

FilterChain过滤器链(多个过滤器一起工作)

FilterChain.doFilter()的作用

  1. 执行下一个Filter(如果有Filter)
  2. 执行目标资源(没有Filter)

在多个Filter过滤器执行的时候,执行顺序是在web.xml从上到下的顺序


Filter过滤器的拦截路径

  1. 精确匹配: <url-pattern>/admin/a.html</url-pattern>

  2. 目录匹配: <url-pattern>/admin/*</url-pattern>

  3. 后缀匹配: <url-pattern>*.html</url-pattern>


Json

JSON(JavaScr ipt Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json的支持(包括C,C++,C#,Java,JavaScript,Perl, Python等)。这样就使得JSON成为理想的数据交换格式。

json是一种轻量级的数据交换格式。

Json在Js里

var jsons = {
    "key1":"abc", // 字符串类型
    "key2":1234, // Number
    "key3":[1234,"21341","53"], // 数组
    "key4":{ // json 类型
            "key4_1" : 12,
            "key4_2" : "kkk"
    	},
    "key5":[{ // json 数组
            "key5_1_1" : 12,
            "key5_1_2" : "abc"
        },{
            "key5_2_1" : 41,
            "key5_2_2" : "bbj"
        }]
    };

json的类型是Object,是一个对象,通过json去调用key则可以获得value。

Json的两个常用方法

一般在操作json时使用json对象,在客户端和服务器中交互时,使用json字符串。


json在java里

//创建gson对象,调用toJson方法。将java对象转为String
Gson gson =new Gson();
String toJson = gson.toJson(emp);
//使用FromJson方法将Json字符串转换为Java对象
gson.fromJson(toJson,Dept.class); 
//第一个参数为json字符串,第二个参数为java对象类型
//创建gson对象,调用toJson方法。将List集合转为String
Gson gson =new Gson();
String toJson = gson.toJson(emp);
//创建一个类,去继承TypeToken,并将需要转换的类型写在泛型中。
gson.fromJson(toJson,new TypeToken.getType());
//此时fromJson里的第二个参数为你所创建的类的对象并调用getType方法。
//完全同List
//这里以Map集合为例。
//创建泛型为Map<Integer,Dept>的匿名内部类
Map map = gson.fromJson(toJson, new TypeToken<Map<Integer,Dept>>(){}.getType());

AJAX(阿贾克斯)

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。


原生AJAX

ajax是一种游览器通过js异步发起请求。局部更新页面的技术。

  1. 创建XMLHttpRequest对象
var xmlhttprequest = new XMLHttpRequest();
  1. 调用open方法设置请求参数
xmlhttprequest.open("GET","http://localhost:8080/AJAX/ajaxservlet?action=javaScriptAjax",true)
  1. 调用send方法发送请求
xmlhttprequest.send();
  1. 在send方法前绑定事件,处理请求完成后的操作
xmlhttprequest.onreadystatechange=function (){
if(xmlhttprequest.readyState==4 && xmlhttprequest.status==200){
			alert(xmlhttprequest.responseText);
	}
}

一般客户端和服务器交互时使用json。

我们一般将收到的内容写在页面上。

xmlhttprequest.onreadystatechange=function (){
		if(xmlhttprequest.readyState==4 && xmlhttprequest.status==200){
            //将收到的json字符串转为json对象然后获取属性并输出。
				var json= JSON.parse(xmlhttprequest.responseText);
				document.getElementById("div01").innerHTML="用户的ID是:"+json.id+",用户姓名是:"+json.name;
					}
				}

jQuery中的Ajax请求

$.ajax({
		url:"http://localhost:8080/AJAX/ajaxservlet",
		data:"action=jQueryAjax",
		type:"GET",
    	//访问成功的回调函数(你要做什么)data是从服务器端拿回来的数据
		success:function (data){
			//将服务器穿回来的数据转为json对象类型
            var jsonobj=JSON.parse(data)
			$("#div1").html(jsonobj.name);
		},
		//常用的返回类型有XML、JSON和TXT
		dataType:"text"
		})
$.get("http://localhost:8080/AJAX/ajaxservlet","action=jQueryAjax",function (data){
	$("#div1").html("get 姓名:"+data.name);
},"JSON")
$.getJSON("http://localhost:8080/AJAX/ajaxservlet","action=jQueryAjax",function (data){
	$("#div1").html("getJson 姓名:"+data.name);
})
"action=jQuerySerialize&"+$("#form01").serialize()
//一定要在action后面加上一个&,然后调用serialize()函数将数据改写为name=value&的形式。

标签:xmlhttprequest,json,Filter,JSON,AJAX,toJson,data,gson
来源: https://www.cnblogs.com/Boerk/p/15773464.html