java内部类和嵌套接口

主要介绍内部类,顺便提一下接口中的嵌套接口和嵌套类。

1.内部类

内部类是定义在其它类中的类。这个定义很宽泛,因为内部类也可以定义在类中的方法里,可以用匿名内部类,还可以声明为public、private、protected、static,不同的情形下,内部类表现也不一致,分别举例说明。

后端处理数据格式验证及统一处理异常

对于前后端分离的项目,后端对于前端发送的数据进行验证是必要的,但这不表示前端的验证就没必要,比如一些数据的格式问题可以在前端完成验证,快速返回结果给用户,提升用户体验。

这里以一个简单的用户注册服务举例,代码部分主要展示逻辑和框架。

主要思路:前端发送用户注册提交的表单信息,后端接收后在service层进行格式验证,如果格式不符合要求,则抛出相应异常,最后统一在controller层进行异常的拦截处理,返回特定的json信息。

aes前端密码加密后端java解密的一些记录

本文主要讲前端传输时的密码加密及后端收到密文后解密的过程,避免明文传输密码,文中内容都比较浅显,加密原理部分需要查阅其它资料。至于前端加密是否有意义,见仁见智。

环境

前端用的vue,纯JS也可以,引入crypto-js库,后端用java

加密方法、MODE、PADDING的选择

这几个参数之间相互有关联,且前后端加密、解密时的参数必须一致。

有的参数前端有A选项,但是后端没有对应的选项,反之也存在后端有B选项,但前端没有的,选择的时候只能选前后端都有的。

具体可以从下面两篇文档中看到:

三个参数前后端共有的选项分别是:

  • 加密方法:AESDESTriple DES(java对应DESede)、RC4
  • mode:CBCCFBCTROFBECB
  • padding:NoPaddingIso10126Pkcs7 (java对应PKCS5Padding)

用vue和element-ui不借助vuex实现弹窗登录

本文主要介绍不使用vuex的情况下,通过父子组件传值通信等方法达到弹窗登录的目的。在生产环境中,使用vuex会非常的方便,通过store去维护一个"isLoginVisible"变量即可。

主要思路

首先,在同一个页面文件中实现弹窗功能一般没什么问题,定义一个状态变量控制组件的显示就行了。这里主要介绍弹窗作为一个单独的单文件组件时的情况,涉及父子组件通信及属性绑定的问题。

实现:

vue中的大小写

命名方法主要分三种,效果如其名称:

camelCase

kebab-case

PascalCase

首先,DOM模板内部元素的属性名称是不区分大小写的,比如以下三种表示是等价的:

vue生命周期勾子

官方原图: img 上图中红色部分为常用的实例生命周期钩子,可以用在vue实例运行的各个阶段,按大概时间线:

javascript中__proto__和prototype的区别

prototype是函数特有的属性,一个对象的构造函数也是函数,js中没有类,只有构造函数。关于原型链的继承在这里不展开。

__proto__属性已经被标记为deprecated,可以用Object.getPrototypeOf(obj)的方式代替访问该属性,应该避免修改该属性,因为它会影响到所有跟这个属性有关的对象,性能非常低下,可以用Object.create(targetproto)的方式直接用你希望的原型创建一个新的对象。

windows用powershell连接vps

Powershell已经内置OpenSSH,用起来比Xshell还方便,并且用root账号或开启密码登陆都存在安全隐患,所以这里只介绍普通用户+ssh的登陆方式。

基本步骤: