Shiro笔记

简介

Apache Shiro是一个强大易用的Java安全框架,可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。

Shiro基本功能

  • Authentication:身份认证/登录,验证用户是不是拥有相应的身份;
  • Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;
  • Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;
  • Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;
  • Web Support:Web支持,可以非常容易的集成到Web环境;
  • Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率;
  • Concurrency:shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去;
  • Testing:提供测试支持;
  • Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;
  • Remember Me:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。

Read More

FreeMarker-XML处理笔记

揭示XML文档

test.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<book>
<title>Test Book</title>
<chapter>
<title>Ch1</title>
<para>p1.1</para>
<para>p1.2</para>
<para>p1.3</para>
</chapter>
<chapter>
<title>Ch2</title>
<para>p2.1</para>
<para>p2.2</para>
</chapter>
</book>

  • 根节点是“文档”而不是book
  • 如果 B 是 A 的直接后继,我们说 B 节点是 A 节点的 child 子节点,A节点是B节点的parent父节点。
  • 元素,文本,注释,处理指令都是DOM树的节点

Read More

FreeMarker-程序开发指南笔记

快速入门

  • 使用 java.lang.String 来构建字符串。
  • 使用 java.lang.Number 来派生数字类型。
  • 使用 java.lang.Boolean 来构建布尔值。
  • 使用 java.util.List 或 Java 数组来构建序列。
  • 使用 java.util.Map 来构建哈希表。
  • 使用你自己定义的 bean 类来构建哈希表, bean 中的项和 bean 的属性对应。例如product 中的 price 属性可以用 product.price 来获取。

Read More

深入理解Java虚拟机笔记三(JVM性能监控与故障处理工具)

概述

大多工具都是对jdk/lib/tools.jar类库的一层包装,SUN JDK监控和故障处理工具:

  1. jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程
  2. jstat:JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据
  3. jinfo:Configuration Info for Java,显示虚拟机配置信息
  4. jmap:Memory Map for Java,生成虚拟机的内存转储快照(heap dump文件)
  5. jhat:JVM Heap Dump Browser,用于分析heap dump文件,会建立一个HTTP/HTML服务器,让用户可以在浏览器查看分析结果
  6. jstack:Stack Trace for Java,显示虚拟机的线程快照

然后还有两个GUI工具:

  1. jconsole:略微过时的JVM各状态查看工具
  2. visualVM:Sun出品的强大的JVM工具,推荐使用!

Read More

JSP/Servlet及相关技术笔记

web应用

1
2
3
4
5
6
`<webDemo>` : web应用名称
|--WEB-INF
| |--classes : 保存单个`*.class`文件
| |--lib : 保存jar
| |--web.xml : 配置描述符,servlet3.0后不再是必须
|--`<a.jsp>` : jsp页面

java脚本

<% %>中的内容即java脚本,会被系统编译在Servlet类中的service方法中。
每个jsp页面其实还是servlet

Read More

Spring笔记二

两种后处理器

Spring框架提供了很好的扩展性,除了可以与各种第三方框架良好整合外,其IoC容器也允许开发者进行扩展,这种扩展甚至无须实现BeanFactory或ApplicationContext接口,而是允许通过两个后处理器对IOC容器进行扩展。Spring提供了两种常用的后处理器:

  1. Bean后处理器:这种后处理器会对容器中的Bean进行后处理,对Bean功能进行额外加强。
  2. 容器后处理器:这种后处理器对IoC容器进行后处理,用于增强容器功能。

Read More