浏览器和Session会话之间的技术内幕
如果做到权限限制
//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是Filter的配置信息文件夹。每次创建Filter的时候都会创建一个FilterConfig类。
FilterConfig类的作用是获取Filter过滤器的配置信息
filterconfig.getFilterName()
)filterConfig.getInitParameter(key);
)filterConfig.getServletContext();
)FilterChain过滤器链(多个过滤器一起工作)
FilterChain.doFilter()
的作用
在多个Filter过滤器执行的时候,执行顺序是在web.xml从上到下的顺序
精确匹配: <url-pattern>/admin/a.html</url-pattern>
目录匹配: <url-pattern>/admin/*</url-pattern>
后缀匹配: <url-pattern>*.html</url-pattern>
JSON(JavaScr ipt Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对json的支持(包括C,C++,C#,Java,JavaScript,Perl, Python等)。这样就使得JSON成为理想的数据交换格式。
json是一种轻量级的数据交换格式。
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.stringify(jsonObj)
:将json对象转为json字符串。Json.parse(jsonString)
:将json字符串转为json对象。一般在操作json时使用json对象,在客户端和服务器中交互时,使用json字符串。
//创建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即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
ajax是一种游览器通过js异步发起请求。局部更新页面的技术。
var xmlhttprequest = new XMLHttpRequest();
xmlhttprequest.open("GET","http://localhost:8080/AJAX/ajaxservlet?action=javaScriptAjax",true)
xmlhttprequest.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({ 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&的形式。