JavaWeb:Filter过滤器、JSON和AJAX
2022/1/7 1:33:18
本文主要是介绍JavaWeb:Filter过滤器、JSON和AJAX,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Session
Session是什么
- Session是一个接口
- Session是个会话。他是一个用来维护一个客户端和服务器之间关联的一种技术。
- 每个客户端都有Session会话。
浏览器和Session会话之间的技术内幕
Filter过滤器
- Filter过滤器是JavaWeb三大组件之一(Servlet、Listener、Filter过滤器)
- 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>
- Filter的生命周期
- 构造器方法:在工程创建的时候执行
- init初始化方法:在工程创建的时候执行
- doFilter方法:每次拦截到请求就会执行
- destroy销毁方法:停止web工程的时候执行
FilterConfig类
FilterConfig是Filter的配置信息文件夹。每次创建Filter的时候都会创建一个FilterConfig类。
FilterConfig类的作用是获取Filter过滤器的配置信息
- 获取Filter的别名(
filterconfig.getFilterName()
) - 获取Filter的初始化参数(
filterConfig.getInitParameter(key);
) - 获取ServletContext对象(
filterConfig.getServletContext();
)
FilterChain
FilterChain过滤器链(多个过滤器一起工作)
FilterChain.doFilter()
的作用
- 执行下一个Filter(如果有Filter)
- 执行目标资源(没有Filter)
在多个Filter过滤器执行的时候,执行顺序是在web.xml从上到下的顺序
Filter过滤器的拦截路径
-
精确匹配:
<url-pattern>/admin/a.html</url-pattern>
-
目录匹配:
<url-pattern>/admin/*</url-pattern>
-
后缀匹配:
<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.stringify(jsonObj)
:将json对象转为json字符串。Json.parse(jsonString)
:将json字符串转为json对象。
一般在操作json时使用json对象,在客户端和服务器中交互时,使用json字符串。
json在java里
- JavaBean和json互相转换
//创建gson对象,调用toJson方法。将java对象转为String Gson gson =new Gson(); String toJson = gson.toJson(emp); //使用FromJson方法将Json字符串转换为Java对象 gson.fromJson(toJson,Dept.class); //第一个参数为json字符串,第二个参数为java对象类型
- List集合与json互相转换
//创建gson对象,调用toJson方法。将List集合转为String Gson gson =new Gson(); String toJson = gson.toJson(emp); //创建一个类,去继承TypeToken,并将需要转换的类型写在泛型中。 gson.fromJson(toJson,new TypeToken.getType()); //此时fromJson里的第二个参数为你所创建的类的对象并调用getType方法。
- Map集合与Json的互相转换
//完全同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异步发起请求。局部更新页面的技术。
- 创建XMLHttpRequest对象
var xmlhttprequest = new XMLHttpRequest();
- 调用open方法设置请求参数
xmlhttprequest.open("GET","http://localhost:8080/AJAX/ajaxservlet?action=javaScriptAjax",true)
- 调用send方法发送请求
xmlhttprequest.send();
- 在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; } }
- 同步:等执行Ajax内容的时候,客户端的其他内容会等待Ajax执行完再执行。(点击一个按钮后,整个页面卡死)
- 异步:客户端和服务器同时执行各自的内容,互不干扰。
jQuery中的Ajax请求
- .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和$.post方法在$.ajax方法的基础上进一步封装
- url:请求的url地址
- data:发送的数据
- callback:成功的回调函数
- type:返回的数据类型
$.get("http://localhost:8080/AJAX/ajaxservlet","action=jQueryAjax",function (data){ $("#div1").html("get 姓名:"+data.name); },"JSON")
- $.getJSON
- url
- data
- callback
$.getJSON("http://localhost:8080/AJAX/ajaxservlet","action=jQueryAjax",function (data){ $("#div1").html("getJson 姓名:"+data.name); })
- $.serialize()
- 用来获取form表单中所填的单局
"action=jQuerySerialize&"+$("#form01").serialize() //一定要在action后面加上一个&,然后调用serialize()函数将数据改写为name=value&的形式。
这篇关于JavaWeb:Filter过滤器、JSON和AJAX的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南