首页
学习
活动
专区
工具
TVP
发布

钟绍威的专栏

专栏作者
53
文章
84219
阅读量
28
订阅数
struts拓展restful
为restful开发的话,一定要设计到URL,struts正好是管理URL的 所以在struts的项目中用restful,要遵守struts的规则 rest在struts中对应的方法 上面是官方给出的帮助文档(默认情况下) get,不带id参数——index get,带id——show post,不带id——create put,带id——update delete,带id——destroy get,带id且访问edit资源——edit get,不带id访问edit资源——editNew rest的相关常量
用户1174983
2018-02-06
7370
restful是什么非restful的开发方式restful的开发方式
resful是什么 rest是一种开发的风格,他不是框架,也没有类库,是一种约定 有什么不同 非restful的开发方式 当没有接触restful的时候,URL通常是动词,比如127.0.0.1:8080/unrestful/getFile restful的开发方式 restful的URL是名词,比如127.0.0.1:8080/restful/file 通过请求消息的method来调用具体的业务 约定的method get,获取数据 post,新增数据 put,更新数据 delete,删除数据 约定大于配
用户1174983
2018-02-06
1.2K0
linux常用命令之压缩打包用法选项DEMO注意选项DEMO用法选项用法选项DEMO
DF df – report file system disk space usage 查看文件系统的使用清空 用法 df [-hi] [path]选项-h human readable ,以人类易读的方式显示size -i inode 显示inode,不显示硬盘容量 选项 -h human readable ,以人类易读的方式显示size -i inode 显示inode,不显示硬盘容量 注意 df后面接path的话,会输出这个path所在的文件系统的信息 DU du – show file space
用户1174983
2018-02-06
1.4K0
硬连接与软连接,inode与links当访问一个文件的时候,发生了什么INODE的内容建一个硬连接发生了什么?访问硬连接的过程注意建一个软连接发生了什么?访问一个软连接注意
硬连接和软连接,第一感觉就像是window的快捷方式,实则不然 要说硬连接和软连接,那就必须了解inode和block以及分区了 EXT文件系统在创建分区的时候,就划分了两块区域,inode table和date block INODE inode – index node ,索引节点 每一个inode固定分配了128bytes的空间 一个文件和目录对应着一个inode 多个文件可以对应一个inode 当访问一个文件的时候,发生了什么 首先会找到这个文件名对应的inode number,然后拿着inode
用户1174983
2018-02-06
9790
linux常用命令之查阅文件用法选项功能键用法选项DEMO用法选项选项注意选项注意选项注意用法选项
CAT cat – concatenate print files 连续的输出文件内容 用法 cat [-nbA] file 选项 -n line number 输出行号 -b line number nonblank 输出空白行的行号 -A show All 显示特殊字符 TAC tac – concatenate print files reverse 反序的查看文件 MORE more – 一页一页翻动 功能键 空格space 下一页 enter 下一行 /xxx 向下搜索xxx n 搜索下一个 :f
用户1174983
2018-02-05
1.6K0
linux常用命令之文件管理默认情况选项参数注意用法选项用法选项用法参数注意用法选项用法选项注意用法选项注意
LS ls:list directory contents 默认情况 默认情况下显示的是mtime 选项 -a 列出全部文件及目录包括隐藏的 -l 列出详细信息,包括文件类型、权限、节点、owner、group、size(b)、修改日期、文件名 -d 列出目录本身,且不列出目录下的内容 -h size用易读的单位 表示,如kg -F 列出文件类型-S按大小从大到小排序 -t  按更新时间从新到旧排序 -r 以相反的顺序排序 -i 显示inode号码 –time=atime 显示访问时间 –time=ct
用户1174983
2018-02-05
2.4K0
jvm内存区域程序计数器虚拟机栈本地方法栈堆方法区运行时常量池直接内存
概述 jvm内存分为几个区域: 程序计数器 虚拟机栈 本地方法栈 堆 方法区 运行时常量池 直接内存 这些内存区域是在java进程中细分的,为java程序提供服务 不同的区域存储的内容不一样,生命周期的也不一样 内存区域 程序计数器 这个就跟处理器中的程序计数器的功能差不多,是记录下一条字节码的地址 不过处理器的程序计数器是为进程服务的,jvm中的程序计数器是为线程服务的 所以jvm的程序计数器是线程私有的,声明周期和线程相同,各线程之间的程序计数器互不干扰 因为是记录下一条字节码的地址,所
用户1174983
2018-02-05
5350
jvm内存溢出分析内存溢出是什么?内存溢出和内存泄漏有什么区别?用到的jvm参数分析解决方法分析
概述 jvm中除了程序计数器,其他的区域都有可能会发生内存溢出 内存溢出是什么? 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出 内存溢出和内存泄漏有什么区别? 内存泄漏是由于使用不当,把一部分内存“丢掉了”,导致这部分内存不可用。 当在堆中创建了对象,后来没有使用这个对象了,又没有把整个对象的相关引用设为null。此时垃圾收集器会认为这个对象是需要的,就不会清理这部分内存。这就会导致这部分内存不可用。 所以内存泄漏会导致可用的内存减少,进而会
用户1174983
2018-02-05
1.6K0
web服务器集群集群是什么?分布式是什么?集中式是什么?例子缺点
概述 集群和分布式都是从集中式进化而来的。分布式和集群会相互合作的,同时的集群和分布式。在这里重点说说集群 集群是什么? 集群能提高单位时间内处理的任务数量,提升服务器性能 有多台服务器去处理任务,
用户1174983
2018-02-05
2.8K0
操作系统启动顺序bios在哪里寻址机制bootloader结构建立段机制使能保护模式
概述 在这里以x86的处理器为例 机器在启动的时候会执行第一条指令。这条指令会去执行bios,将控制权交给bios。 bios完成硬件的质检,然后将bootloader从硬盘读到内存中,执行boo
用户1174983
2018-02-05
1K0
锁原理:偏向锁、轻量锁、重量锁1.加锁2.撤销偏向锁1.加锁2.解锁3.膨胀为重量级锁
 java中每个对象都可作为锁,锁有四种级别,按照量级从轻到重分为:无锁、偏向锁、轻量级锁、重量级锁。每个对象一开始都是无锁的,随着线程间争夺锁,越激烈,锁的级别越高,并且锁只能升级不能降级。 一、j
用户1174983
2018-02-05
3.5K0
Java内存模型—JMMhappens-before规则
 有时候编译器、处理器的优化会导致runtime与我们设想的不一样,为此Java对编译器和处理器做了一些限制,JAVA内存模型(JMM)将这些抽象出来,这样编写代码时就无需考虑那么多底层细节,并保证“只要遵循JMM的规则编写程序,其运行结果一定是正确的”。 JMM的抽象结构  在Java中,所有的实例、静态变量存储在堆内存中,堆内存是可以在线程间共享的,这部分也称为共享变量。而局部变量、方法定义参数、异常处理参数是在栈中的,栈内存不在线程间共享。  而由于编译器、处理器的优化,会导致共享变量出现可见性问题,
用户1174983
2018-02-05
4210
内存屏障保证缓存一致性优化
 在前面内存系统重排序提到,“写缓存没有及时刷新到内存,导致不同处理器缓存的值不一样”,出现这种情况是糟糕的,所幸处理器遵循缓存一致性协议能够保证足够的可见性又不过多的损失性能。  缓存一致性协议给缓存行(通常为64字节)定义了个状态:独占(exclusive)、共享(share)、修改(modified)、失效(invalid),用来描述该缓存行是否被多处理器共享、是否修改。所以缓存一致性协议也称MESI协议。 独占(exclusive):仅当前处理器拥有该缓存行,并且没有修改过,是最新的值。 共享(sh
用户1174983
2018-02-05
1.6K0
从源代码到Runtime发生的重排序编译器重排序指令重排序内存系统重排序阻止重排序
 源代码和Runtime时执行的代码很可能不一样,这是因为编译器、处理器常常会为了追求性能对改变执行顺序。然而改变顺序执行很危险,很有可能使得运行结果和预想的不一样,特别是当重排序共享变量时。  从源
用户1174983
2018-02-05
1.4K0
Volatile实现原理实现原子性happens-before关系从happends-before规则分析可见性编译器层面实现可见性处理器层面实现可见性
 读写volatile变量就像是访问一个同步块一样,是原子的且是可见的,总是能访问到最新的值。 原子性  读写volatile变量是原子操作,但读写变量不就是一条指令的事吗(mov、ldr),难道这还可分?没错绝大多数变量读写都是原子的,除了在32位JVM下对long、double的读写,就不是原子的。这是因为在32位下,总线宽度就只有32bit,对64位数据的读写需要分两次进行,依次读写高低32位。但是读写volatile变量由于使用了LOCK前缀指令,锁住了内存,所以即使是64位的数据也是原子的。 读
用户1174983
2018-02-05
1.8K0
锁的实现原理解锁的实现加锁的实现
 锁在多线程中是必不可少的,他给多线程提供了同步的功能,让多线程可以互斥的执行同步块,并具有可见性。  本文将从happens-before关系出发,结合ReentranLock源码,如何用内存屏障、CAS操作、LOCK指令实现锁的功能。 锁的happens-before关系 happens-before规则 程序顺序规则:在一个线程中,前面的操作happens-before后面的操作 锁规则:对同一个锁,解锁happens-before加锁。 传递性规则:A happens-before B,B hap
用户1174983
2018-02-05
1.4K0
代理
代理就像个中介,最外层操作代理对象,代理对象再调用委托对象 当需要在调用前后做一些处理,但是这些处理与业务逻辑无关的时候,如果把无关代码写在业务逻辑里面,代码就会变得很乱,这时候用代理就再好不过了。 就像spring的aop编程,也是用了代理,在调用前后做一些校验、日志记录等无关业务流程的事 因为要通过代理对象去调用委托对象,所以代理对象需要持有委托对象的引用,而且代理类中需要实现委托对象的各种方法 代理有两种一种是静态代理、一种是动态代理 静态代理是由自己编写代理类,但是代理类都相差无几,而且要每一个类都
用户1174983
2018-02-05
3950
spring aop注解配置
spring aop是面向切面编程,使用了动态代理的技术,这样可以使业务逻辑的代码不掺入其他乱七八糟的代码 可以在切面上实现合法性校验、权限检验、日志记录。。。 spring aop 用的多的有两种配置方法:注解配置和xml配置 注解配置更好,友好重构、错误也好检查 在这里只讲注解配置 aop概念 切面:切面类,里面有切点有通知,切面包括了一切(在哪切,干什么) 切点:定义了在个地方切 通知:定义了在切点处做些什么 连接点:所有可以被切的地方 切面配置 @Aspect public class L
用户1174983
2018-02-05
8790
spring整合hibernate
spring整合hibernate包括三部分:hibernate的配置、hibernate核心对象交给spring管理、事务由AOP控制 好处: 由java代码进行配置,摆脱硬编码,连接数据库等信息更灵活 session等生命周期得到更好的控制,session和事务依赖注入到DAO中,更爽 事务由AOP管理更加清晰,自动管理事务 hibernate的配置 spring提供了一个sessionfactory的实现,LocalSessionFactoryBean 通过在LocalSessionFactoryBe
用户1174983
2018-02-05
8670
SpringMVC基本使用关于DisptacherServlet关于ServletContainerInitializer最简单配置接收参数路径变量表单变量
springMVC是一个MVC框架,他控制着请求相应的整个流程,从请求一进入到应用服务器到相应离开,都离不开mvc框架 请求在应用服务器中 先说说请求相应在应用服务器的整个过程 DisptacherS
用户1174983
2018-02-05
1.1K0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
热点技术征文第五期
新风口Sora来袭,普通人该如何把握机会?
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档