首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第七节)

不知不觉,我发现自己在简书已经写了好几万字了。当我无聊的时候,就会去看看自己之前写的文章,然后感到很奇怪,似乎那些东西根本不是自己写的一样。我仿佛是在看别人的文章,好长时间我都有这种感受。...这真的是挺奇怪的,不过我转念又一想,当我看自己几个月以前的代码的时候,也经常有看不懂的情况,于是我也就释然了。 管他呢,先往下写吧。...额,如果有大神知道的话,求告知一下,这个我真的不太清楚为什么。 不管了,先继续往下写吧。 好的,让我们测试一下。 ?...JSP作为一个被广泛使用的模板引擎,有着很多很多的标签库,也有不少第三方的标签库。当然,我们也可以自己编写标签,这个有时间的话,我也打算来写一写,自定义标签还是很有趣的。...好的,文章又分很多种类,比如情感类,励志类,科技类等。于是,我们需要在首页对不同的文章进行一个分类展示。当然,只会展示前几条数据。

930100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    实战 | 关于随手一点就发现XSS漏洞这件事

    起因 今天正在做一个项目时,需要找一个云接码平台接码去登录系统。当我随手从百度找了一个接码平台时,一个偶然的发现,有了今天这篇文章。...正文 当我进入这个接码平台随便找了个手机号,然后等了好几分钟都没啥反应。然后就顺便观察起了这个网站,然后我就有了发现。...手机号由GET传参,同时会显示在页面上,那么这个pho_num参数应该是可控的,那么这个就可能存在XSS,现在让我们来进行一下测试,我们将传入的参数改为test,看看页面会不会变化。...我们猜测是正确的,那么接下来就是用来测试一下,看看能不能解析标签,这里先用h1标签做一下测试。结果如下图: 我们发现h1标签被成功执行,存在XSS漏洞,接下来我们用img标签来进行弹窗。...这里思路挺多的, 比如: 大小写绕过 javascript伪协议 没有分号 Flash HTML5 新标签 Fuzz进行测试 双层标签绕过 这里我就找一些不常用的标签,比如audio标签,测试payload

    48310

    记一次NFT平台的存储型XSS和IDOR漏洞挖掘过程

    Twitter 和 Instagram 链接保存为 javascript:alert(document.domain) ,当我保存我的信息并单击 Twitter 或 Instagram 图标时,javascript...被执行,这确认我们在nft 市场 复现步骤 1.使用钱包登录我的vulnerablemarketplace.com nft 帐户 2.然后导航到我的个人资料设置并将我的 Instagram 和 Twitter...链接保存为 javascript:alert(document.domain) 这是帖子请求: 3.每当我们点击我们的个人资料 Twitter 或 Instagram 图标时,XSS 就会被执行...我们能够使用我们自己的控制值修改受害者的电子邮件、Twitter、Instagram 链接 注意:有些人可能会有疑问,如果我们能够修改受害者的电子邮件,那么帐户就已经被接管了?...签名值存储在 localStorage 中,因此这里是 javascript 有效负载,我们将使用它来窃取该值并将其发送到我们的 pipelinedream url javascript:token=JSON.stringify

    37960

    Spring全家桶注解解析

    注解本质上就是一个类,开发中我们可以使用注解 取代 xml配置文件。 是 注意:在使用注解开发时,请查看对应的框架是否需要开启注解支持,否则用了注解也无效!!!...如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。...com.ms.pojo.User"/> >//也说明这个类被Spring接管了,注册到了容器中 >@Component("user") //("user")其实就是Bean id >public class...当不写时,默认值是当前方法的名称 细节:当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。...获取容器时需要使用 AnnotationApplicationContext(有@Configuration 注解的类.class) 细节:当配置类作为AnnotationConfigApplicationContext

    36310

    Python描述符(上)

    描述符概念 我觉得要想了解描述符,理解这两个关键字即可。类,托管。 描述符本质上就是一个类,可以将其他类的属性托管给这个类(描述符)。...小试牛刀 类 描述符本质上是个类,那我们定义一个普通的类肯定不是描述符,只要有__get__,__set__,__delete__魔术方法之一的类就是描述符。...,我们将描述符赋值给类的x属性,这样x属性就被描述符托管了,当我们访问x属性时,就会触发描述符的get方法。...描述符方法 __get__魔术方法 上面的内容让我们了解了数据描述符,那现在我们再仔细的学习下描述符的各种方法和使用,首先是__get__方法。 触发时间:在访问对象成员属性的时候触发。...我们再来举一个例子,例如我们想把用户的名称转换为ID,而且ID只显示姓,其余为*代替。

    39450

    JavaScript 的 7 种设计模式

    ; } }; 因为 JavaScript 中的每个对象都占用一个唯一的内存位置,并且当我们调用该 user 对象时,实际上是在返回该对象的引用。...五、工厂模式 工厂模式使用工厂方法创建对象而不需要指定具体的类或构造函数的模式。 工厂模式用于创建对象而不需要暴露实例化的逻辑。当我们需要根据特定条件生成不同的对象时,可以使用此模式。..."} console.log(car); // Prints Truck {doors: 2, state: "used", color: "white"} console.log(truck); 我为类...()); 结论 我们已经了解了 JavaScript 中使用的各种设计模式,但是这里没有涉及到可以用 JavaScript 实现的设计模式。...尽管了解各种设计模式很重要,但不要过度使用它们也同样重要。在使用设计模式之前,你应该仔细考虑你的问题是否适合该设计模式。要知道某个模式是否适合你的问题,应该好好研究该设计模式以及它的应用。

    51540

    JavaScript深入浅出第1课:箭头函数中的this究竟是什么鬼?

    ; } JavaScript箭头函数与普通函数不只是写法上的区别,它们还有一些微妙的不同点,其中一个不同点就是this。 箭头函数没有自己的this值,箭头函数中所使用的this来自于函数作用域链。...关于this的文章也够多了,有时候越描越黑,我就不再添乱了,我只负责搬运一下MDN文档:this,感兴趣的可以仔细阅读一下,我摘录一些最重要的话就好了。...当我们需要在对象方法中嵌套一个内层函数时,this就会给我们带来实际的困扰了,大家应该写过这样的代码: // 使用临时变量self var circle = { radius: 10,...总之,普通函数的this取值多少有点奇怪,尤其当我们采用面向对象的方式编程时,很多时候都需要用到this,大多数时候我们都不会去使用.bind(this),而是使用临时变量self或者that来搬运this...有了箭头函数,我只要遵守下面的规则,this的问题就可以基本上不用管了: 对于需要使用object.method()方式调用的函数,使用普通函数定义,不要使用箭头函数。

    56650

    前端为什么选 Vite?

    然而,当我们开始构建越来越大型的应用时,需要处理的 JavaScript 代码量也呈指数级增长。包含数千个模块的大型项目相当普遍。...我们开始遇到性能瓶颈 —— 使用 JavaScript 开发的工具通常需要很长时间(甚至是几分钟!)才能启动开发服务器,即使使用 HMR,文件修改后的效果也需要几秒钟才能在浏览器中反映出来。...Vite 通过在一开始将应用中的模块区分为 依赖 和 源码 两类,改进了开发服务器启动时间。 依赖 大多为在开发时不会变动的纯 JavaScript。...Esbuild 使用 Go 编写,并且比以 JavaScript 编写的打包器预构建依赖快 10-100 倍。...这实际上是让浏览器接管了打包程序的部分工作:Vite 只需要在浏览器请求源码时进行转换并按需提供源码。根据情景动态导入代码,即只在当前屏幕上实际使用时才会被处理。

    77720

    绘图-iOS在OC项目中集成Charts绘制图表框架

    前言 最近OC项目中使用到了charts做图标绘制,确实是一个很酷并且功能强大的类库。里面包含了各式各样的图标样式,但是使用的是Swift语言编写,所以就涉及到混编的一些操作配置。...XYMarkerView 时一直报错,查找不到:** ?...使用Charts 绘图 在使用过程中关键所在是要熟悉 Charts中的各种属性设置,而且大部分不同的绘图类文件的属性名称代表的含义一致。 我在实际的使用中做了封装,使用起来非常简练、方便: ?...leftAxis.spaceTop = 0.05; 对于使用柱状图展示百分比时。如果分母是 0,那边x坐标轴上会出现 NaN的字样,此时应该判断,如果分母为0,需要把整个值设置为0....iOS使用Charts框架绘制折线图 小结 以上大概就是我使用 Charts这个绘图类库的笔记了,如有错误之处,请留言指正,后续如果有新的心得总结会更新此文。

    7.1K62

    使用JavaScript学习设计模式

    在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 在 JS 中其实就是借助构造函数实现。...提起代理(Proxy),对于前端很熟悉的,我能联想到一系列的东西,比如: ES6 新增的 proxy 属性 为了解决跨域问题而经常使用的 webpack 的 proxy 配置和 Nginx 代理 还有科学上网所使用的的代理...等等 事件代理 常见的列表、表格都需要单独处理事件时,使用父级元素事件代理,可以极大的减少代码量。...-- 7、8... --> 如上代码,我想点击每个新闻,都可以拿到当前新闻的id,从而进行下一步操作。...在这种模式的实现上,需要一个对象担任“桥”的角色,起到连接的作用。 例子: JavaScript 中桥接模式的典型应用是:Array对象上的forEach函数。

    73931

    切图仔最后的倔强:包教不包会设计模式 - 结构型

    什么是结构型模式 结构型模式主要用于处理类和对象的组合,对应思维导图: ? 2. 外观模式: Facade Pattern 对接口二次封装隐藏其复杂性,并简化其使用。...使用时机 当我们将系统分成多个子系统时,我们会降低代码复杂性。编程时的最佳实践是最小化子系统之间的通信和依赖关系。实现这一目标的一个好方法是引入一个facade对象,为子系统提供单一且统一的接口。...优点: 优点是把类(函数)的核心职责和装饰功能区分开了。 问题: 装饰链叠加了函数作用域,如果过长也会产生性能问题。 在JavaScript中: 装饰者模式提供比继承更有弹性的替代方案。...多见于驱动程序开发,在JavaScript中很少见。 一些软件的跨平台设计有时候也是应用了桥接模式 1....这时为每个主题创建每个页面的多个副本明显不合理,而桥接模式是更好的选择: javascript-design-patterns-for-human ?

    87920

    25个常规方法优化你的jquery代码

    从Google Code加载jQueryGoogle Code上已经托管了多种JavaScript类库,从Google Code上加载jQuery比直接从你的服务器加载更有优势。...因此我修改上述代码以使用ID而不是class,然后通过ID进行选择。 ...当我们点击表格中的单元格时,上面的代码将使所有单元格背景变为红色。...给你的HTML属性增加JS类 我是从Karl Swedberg那学到这个技巧,过去学习jQuery时一直在看他的书。 他最近在我以前的文章留下了对该用法的评论,基本原则如下示之。...JavaScript开关,那么你可以使用它给元素添加上CSS风格:  复制代码代码如下:.JS #myDiv{display:none;} 因此,这意味着在JavaScript打开时我们可以隐藏内容,然后在需要时使用

    1.6K10

    JavaScript基础——回调(callback)是什么

    JavaScript 是单线程工作,这意味着两段脚本不能同时运行,而是必须一个接一个地运行。我们人类是多线程工作。您可以使用多个手指打字,可以一边开车一边与人交谈。...唯一一个会妨碍我们的是打喷嚏,因为当我们打喷嚏的时候,所有当前进行的活动都必须暂停。这真是非常讨厌,尤其是当您在开车并想与人交谈时。您可不想编写像打喷嚏似的代码。...,使用的是if/else,因为catch无法从readFile方法中获取错误。...上述代码还需要完善,我没有包含任何错误处理。如果在任何步骤中发生错误,程序将无法继续。 错误处理是很重要的事情,我们写代码时要严格对待,比如我们要编写一个用户登录的功能。...我们一起把回调的内容学完了,理解了什么是回调,异步编程是我们的代码中使用的一种方法,用于推迟事件以便以后执行。当您处理异步任务时,回调是一种解决方案,以便它们按顺序执行。

    1.6K71

    当JavaScript遇上UINT64

    JavaScript使用的是“双精度”格式(即64位二进制)。...例如,我从A服务拿到的实际用户帐号是144115197458450067,当我将它转换成Number后,变成了144115197458450080,传给B服务后,B服务告诉我系统中没有这个用户。。。...没有debug之前我还以为是B服务出了bug,因为我啥都没做,就是数据透传而已啊! 解决方案 当我们确实需要在JavaScript中对大数值进行处理时,目前还是需要借助相关的工具库。...实际上在使用JavaScript进行PB通信时,我会使用ProtoBuf.js这个库帮我处理pb到json的类型转换,而ProtoBuf.js本身是依赖了一个工具库 long.js 来对 int64 和...API 例如,当我从A服务拿到一个UINT64类型的值longValueFromA,此时并需要进行处理时 const Long = require('long'), function longHandleToString

    1.5K00
    领券