抓取ajax动态网页java(JavaServlet开发的轻量级MVC框架最佳实践以用户注册功能模块浅谈)
优采云 发布时间: 2022-01-15 00:15抓取ajax动态网页java(JavaServlet开发的轻量级MVC框架最佳实践以用户注册功能模块浅谈)
在Java Web 应用程序的开发中,经常遇到的一种情况是很多页面都收录“公共页面”。这些动态页面的特点是:大量的访问会带来更大的性能压力。功能设计会动态地改变它自己的元素。比如登录前后显示的页面不一样,比如下面的代码:
1
2
3
4
5 登录
6 注册
7
8
9
10 欢迎${loginUser.username}
11 退出
12 购物车
13 我的订单
14
15
16
17
这是一段前端 JSP 代码。实现了在服务器处理完登录函数后,根据session对象中的loginUser值是否为空来判断登录是否完成,从而决定显示哪一段标签内容。
事实上,因为这是一个顶级页面的常用菜单栏,所以这个代码收录在数百个页面中。如果每一页都必须更改,那将是不可想象的。
解决方法是通过动态收录机制来解决。
相关的 Java 开发技能可以在以下位置找到:
Java Servlet开发轻量级MVC框架最佳实践
以用户注册功能模块为例,探讨MVC架构下的JavaWeb开发流程
静态和动态包括
以JSP为例说明页面的静态和动态收录
JSP 中有两种类型的收录:
静态收录:
动态收录:. 下面是一个例子来说明如何使用 contains。
例子:
项目文件树:
header.jsp 文件中的内容:
1
2
3
4 Insert title here
5
6
7 This is headergteAllCats发起ajax请求,服务端经过处理,
3 //将所有分类信息以JSON格式的数据返回,获取到返回的所有分类绑定在页面的显示分类区域
4 var url="/ServletStoreDemo/CategoryServlet";
5 var obj={"method":"findAllCats"};
6 $.post(url,obj,function(data){
7 //alert(data);
8
9 //获取到服务端响应会的数据,经过观察data中存放的是一个JSON格式数组,遍历数组,动态的显示分类区域代码
10 $.each(data,function(i,obj){
11 var li=""+obj.cname+"";
12 $("#myUL").append(li);
13 });
14
15 },"json");
16
17 });
同时在CategoryServlet中,将数据库返回的数据打包成JSON格式返回给客户端浏览器
1 jsonStr=JSONArray.fromObject(list).toString();
2 //将全部分类信息响应到客户端
3 //告诉浏览器本次响应的数据是JSON格式的字符串
4 resp.setContentType("application/json;charset=utf-8");
5 resp.getWriter().print(jsonStr);
原理分析
1. 页面加载完成后,Ajax会向服务器CategoryServlet发起请求,触发getAllCats方法,服务器会处理这个方法。
2. 服务器查询数据库,返回JSON格式的所有分类信息。前端获取所有返回的分类,通过匿名函数将分类数据绑定到页面的展示分类区。
3. 遍历得到的JSON格式数组,动态显示分类区号。
通过使用Redis缓存可以大大提升首页访问的性能,原理会在以后的博文中介绍。