过滤器Filter,ajax异步请求,服务器响应的数据类型,json

 1.过滤器Filter

按照过滤规则筛选出想要的资源

 很多地方都需要判断是否登录,对每个资源进行判断,非常麻烦,可以使用过滤器在访问这些资源前进行判断。

案例:

package com.ghx.filter;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;@WebFilter(urlPatterns = "/*")
public class MyFilter implements Filter {//初始化   只会执行一次@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("初始化");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request=(HttpServletRequest)servletRequest;HttpServletResponse response=(HttpServletResponse)servletResponse;String path = request.getRequestURI();//放行登录注册及其servletif("/login.jsp".equals(path) || "/register.jsp".equals(path)  ||"/UserServlet".equals(path)|| path.startsWith("/img")){//放行filterChain.doFilter(request,servletResponse);}else {//登录放行HttpSession session = request.getSession();Object user = session.getAttribute("userinfo");if(user!=null){filterChain.doFilter(request,servletResponse);}else {//不登录返回登录页面response.sendRedirect("/login.jsp");}}}
//销毁方法@Overridepublic void destroy() {System.out.println("关闭");}
}

2.ajax异步请求

ajax响应的不是地址或网页,而是一个数据,在哪里发送请求数据就响应到哪里

允许浏览器与服务器通信而无需刷新当前页面的技术都叫ajax

===========使用jquery

1.引入jquery的插件

<script src="/js/jquery-3.7.1.min.js"></script>

2.设计点击事件

3.服务器响应的数据类型

1.文本类型

2.xml类型        不建议使用

3.json类型

 4.json

JSON(JavaScript Object  Notation)一种简单的数据格式,比xml更轻巧。JSON
是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。 
JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
    
    json对象:
{k1:v1,k2:v2,k3:v3....}

   json对象集合:
[
    {k:v,k:v},
    {k:v,k:v},
    {k:v,k:v}
]

定义json对象  key必须用""   value可以是任意类型
<script>//定义json对象  key必须用""   value可以是任意类型var p={"name":"张三","age":19,"sex":"男","flag":true};alert(p.name);var ps=[{"name":"张三1","age":19,"sex":"男","flag":true},{"name":"张三2","age":19,"sex":"男","flag":true},{"name":"张三3","age":19,"sex":"男","flag":true}]for(var i=0;i<ps.length;i++){alert(ps[i].name);}</script>

异步请求方式:
   $.ajax({
      url: "服务器路径",
      data: {携带的数据},
      success: function(){回调函数},
      dataType: 服务器响应的数据类型,
      type: 请求方式,
      async: 是否异步
   })
   $.get(url,data,callback,type);
   $.post(url,data,callback,type);

案例

<body onload="loadBook()"><table><tr><th>书籍id</th><th>书籍名</th><th>价格</th><th>出版社</th><th>操作</th></tr><tbody id="tbodyBook"></tbody></table></body>

<script src="/js/jquery-3.7.1.min.js"></script><script>function loadBook(){$.post("/BookServlet",{"method":"getAll"},function (result){let elementById = document.getElementById("tbodyBook");var str="";for (var i=0;i<result.length;i++){//alert(result[i].name);str+="<tr>";str+="<td>"+result[i].id+"</td>";str+="<td>"+result[i].name+"</td>";str+="<td>"+result[i].price+"</td>";str+="<td>"+result[i].publisher+"</td>";str+="<td><a onclick='deleteBook("+result[i].id+") '>删除</a>" +"<a href='/BookServlet?method=getById&id="+result[i].id+"' >修改</a></td>";str+="</tr>";}elementById.innerHTML=str;},"json")}function deleteBook(id) {if(confirm("确定要删除该条信息吗?")){$.get("/BookServlet",{"method":"delete","id":id},function (result){if(result==1){alert("删除成功");loadBook();}else {alert("删除失败")}});}}</script>
private void deleteById(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{int id = Integer.parseInt(request.getParameter("id"));int i = bookDao.deleteBook(id);PrintWriter out = response.getWriter();out.print(i);out.flush();out.close();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/487668.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络协议栈】TCP/IP协议栈中重要协议和技术(DNS、ICMP、NAT、代理服务器、以及内网穿透)

每日激励&#xff1a;“请给自己一个鼓励说&#xff1a;Jack我很棒&#xff01;—Jack” 绪论​&#xff1a; 本章是TCP/IP网络协议层的完结篇&#xff0c;本章将主要去补充一些重要的协议和了解一些网络中常见的名词&#xff0c;具体如&#xff1a;DNS、ICMP、NAT、代理服务器…

服务器数据恢复—LINUX下各文件系统删除/格式化的数据恢复可行性分析

Linux操作系统是世界上流行的操作系统之一&#xff0c;被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统&#xff08;EXT2/EXT3/EXT4/Reiserfs/Xfs&#xff0…

因果推荐CIKM24 | 通过偏好感知因果干预和反事实数据增强来提升序列推荐

论文来源&#xff1a;CIKM 24 论文链接&#xff1a;PACIFIC: Enhancing Sequential Recommendation via Preference-aware Causal Intervention and Counterfactual Data Augmentation | Proceedings of the 33rd ACM International Conference on Information and Knowledge …

如何在 Odoo18 视图中添加关联数据看板按钮 | 免费开源ERP实施诀窍

文 / 开源智造 Odoo亚太金牌服务 引言 关联数据看板按钮乃是 Odoo 当中的一项强效功能&#xff0c;它容许用户顺遂地访问相关记录&#xff0c;或者直接从模型的表单视图施行特定操作。它们为用户给予了对重要信息的疾速访问途径&#xff0c;并简化了工作流程&#xff0c;由此…

提升网站流量的关键:AI在SEO关键词优化中的应用

内容概要 在当今数字时代&#xff0c;提升网站流量已成为每个网站管理员的首要任务。而人工智能的技术进步&#xff0c;为搜索引擎优化&#xff08;SEO&#xff09;提供了强有力的支持&#xff0c;尤其是在关键词优化方面。关键词是连接用户需求与网站内容的桥梁&#xff0c;其…

腾讯图标/百并发

腾讯新图标&#xff0c;识别速度7毫秒&#xff0c; 百并发无压力

python和C++中的逻辑与/或、位与/或

在 Python 和 C 中&#xff0c;“与”和“或”的实现逻辑相似&#xff0c;但符号和使用方式有区别。 1.Python 中的与、或 与&#xff08;AND&#xff09;&#xff1a;and或&#xff08;OR&#xff09;&#xff1a;or 1.1 逻辑与、或&#xff1a; 用于布尔值&#xff08;Tr…

PR基本操作

将剪辑添加到序列 1.在项目面板中选择素材&#xff0c;右击插入或覆盖选项&#xff0c;添加的素材依指针所在位置为起点。 上图画框位置会影响素材插入的轨道。 2.直接拖动素材到对应的时间轴轨道即可 3.拖动素材到节目监视器 在此项前插入&#xff1a;在V1轨道当前指针所…

如何配置Github并在本地提交代码

前提: 可以流畅访问github, 需要一些上网技巧, 这就自行处理了 申请一个github账号 Github官网地址 首先就是邮箱注册啦, github没有对邮箱的限制, 只要是能收邮件的就ok, qq邮箱, 163等都可以使用. 然后和普通注册账号一样, 一路填写需要的信息, 验证邮箱即可. 如何新增代…

nacos服务注册流程

一、客户端自动注册实例流程 1.首先客户端需要引入服务发现包 <groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.6.RELEASE</version>2. NacosServiceRegistryA…

qemu安装arm64架构银河麒麟

qemu虚拟化软件&#xff0c;可以在一个平台上模拟另一个硬件平台&#xff0c;可以支持多种处理器架构。 一、安装 安装教程&#xff1a;https://blog.csdn.net/qq_36035382/article/details/125308044 下载链接&#xff1a;https://qemu.weilnetz.de/w64/2024/ 我下载的是 …

小程序维护外包流程和费用

由于某些原因很多老板想要跟换掉小程序原来合作的开发公司&#xff0c;重新把小程序系统维护外包新的公司。小程序系统外包维护是一个涉及多个方面的过程&#xff0c;需要从需求明确、选择团队到持续优化等多个环节进行细致管理。以下就是小程序系统外包维护主要包括几个关键步…

C—指针初阶(2)

如果看完阁下满意的话&#xff0c;能否一键三连呢&#xff0c;我的动力就是大家的支持与肯定&#xff0c;冲&#xff01; 二级指针 我们先看概念以及作用&#xff1a;用来存放一级指针的地址的指针 先看例子&#xff0c;我们逐一分析 我们先分析上面那个“1” 标注那里&#x…

x64dbg 安装使用教程

x64dbg的安装与配置 x64dbg官网地址&#xff1a;https://x64dbg.com/#start x64dbg界面介绍 1.反汇编窗口 这个位置显示的是需要分析的程序的反汇编代码。在第一个区域的最左侧例如“7712EAA3”这一列就是内存地址区域&#xff0c;接着“E8 07”就是汇编指令的opcode&#xff…

视频推拉流EasyDSS无人机直播技术巡查焚烧、烟火情况

焚烧作为一种常见的废弃物处理方式&#xff0c;往往会对环境造成严重污染。因此&#xff0c;减少焚烧、推广绿色能源和循环经济成为重要措施。通过加强森林防灭火队伍能力建设与长效机制建立&#xff0c;各地努力减少因焚烧引发的森林火灾&#xff0c;保护生态环境。 巡察烟火…

禾赛激光雷达AT_128_P_A02激光时间同步配置

sudo apt update sudo apt-get install linuxptp ethtool sudo ethtool -T 网卡名字(ifconfig可以查看)网卡名即连接激光雷达之后配置的ip所对应的网卡名称 一般来说看到如下提示信息才正常&#xff1a; lzslzs-Precision-3591:~$ ethtool -T enp0s31f6 Time stamping paramet…

java项目部署相关记录

部署 简单部署(Windows) redis我使用小皮面板开的 mysql也是 maven打包 先打包,打包成功,找到对应jar包 在文件夹打开,然后再次目录上开cmd java -jar jplan-0.0.1-SNAPSHOT.jar需要注意的是,windows的java环境要和idea项目里边的java是一致的 运行成功! 属性配置方式…

v-for遍历多个el-popover;el-popover通过visible控制显隐;点击其他隐藏el-popover

场景:el-popover通过visible控制显隐;同时el-popover是遍历生成的多个。 原文档的使用visible后就不能点击其他地方使其隐藏;同时解决实现点击其他区域隐藏 <template><div><template v-for="(item,index) in arr" :key="index"><…

【Ubuntu】清理、压缩VirtualBox磁盘空间大小

1、说明 本人为虚拟机创建了两个硬盘:root.vdi 和 hoom.vdi,在创建虚拟机时,分别挂载在/root目录和/home目录下。 下面演示分别清理、压缩两个磁盘的空间。 2、清理空间 1)清理 root.vid sudo dd if=/dev/zero of=/EMPTY bs=1M;sudo rm -f /EMPTY输出信息中会提示,如…

微信小程序跳转其他小程序以及跳转网站

一、跳转其他小程序 1.1 知道appid和页面路径 wx.navigateToMiniProgram({appId: appid, // 替换为目标小程序 AppIDpath: pathWithParams, // 小程序路径envVersion: release, // 开发版、体验版或正式版success(res) {console.log("跳转到其他小程序成功&#xff01;&q…