分类 Java

Intelij Idea 使用 Tomcat 运行/调试 Web 应用

工欲善其事必先利其器,本文拟用 Intellij Idea 来启动 Tomcat 运行/调试 Web 应用,深入 Idea 与 Tomcat 结合调试,减少项目部署时间。

简单使用

  1. Run Configuration -> 新建 Tomcat Run Configuration
  2. 选择当更新操作(Ctrl + F10)或者 Intellij Idea 失去焦点的时候更新Tomcat 中的 classes和资源(热交换)
  3. 选择部署的artifact,这里选 war exploded, 为什么不选 w[……]

    阅读全文»

netty-socketio

一、简介

netty-socketio是一个开源的Socket.io服务器端的一个java的实现,它基于Netty框架。项目地址为:https://github.com/mrniko/netty-socketio。socket.io是一个跨浏览器使用websocket为实时实时应用提供服务。本例子使用maven构建,依赖如下:

<dependency>
    <groupId>com.corundumstudio.socketio</groupId>[......]

阅读全文»

新一代Java模板引擎Thymeleaf

Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。与其它模板引擎相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。

Thymeleaf初探

相比于其他的模板引擎,Thymeleaf最大的特点是通过HTML的标签属性渲染标签内容,以下是一个Thymeleaf模板例子:

<!DOCTYPE ht[......]

阅读全文»

Class.getResource和ClassLoader.getResource的区别分析

在Java中获取资源的时候,经常用到Class.getResource和ClassLoader.getResource,本文给大家说一下这两者方法在获取资源文件的路径差异。

Class.getResource(String path)

path不以’/’开头时,默认是从此类所在的包下取资源;path以’/’开头时,则是从项目的ClassPath根下获取资源。在这里’/’表示ClassPath

JDK设置这样的规则,是很好理解的,path不以’/’开头时,我们就能获取与当前类所在的路径相同的资源[……]

阅读全文»

Swagger使用指南

1:认识Swagger

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的Web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

作用:

1.接口的文档在线自动生成。

2.功能测试。

Swagger是一组开源项目,其中主要要项目如下:

1.Swagger-tools:提供各种与Swagger进行集成和交互的工具。例如模式检验、Swagger1.[……]

阅读全文»

Spring MVC中的@ModelAttribute注解

本文介绍在Spring MVC中非常重要的注解@ModelAttribute.这个注解可以用在方法参数上,或是方法声明上。这个注解的主要作用是绑定request或是form参数到模型对象。可以使用保存在request或session中的对象来组装模型对象。注意,被@ModelAttribute注解的方法会在controller方法(@RequestMapping注解的)之前执行。因为模型对象要先于controller方法之前创建。

请看下面的例子

Mybatis select返回值为map时,选取表字段的两列作为key,value

最近需要用到Mybatis中查询结果集为Map的功能,查了好多资料,最终搞定。其实只需要重写ResultHandler接口,,然后用SqlSession 的select方法,将xml里面的映射文件的返回值配置成 HashMap 就可以了。具体过程如下

1、先看看xml文件怎么配置

<resultMap id="getAllSetDaysResult"   type="HashMap">
    <result property="key" column="SP_FPARA[......]

阅读全文»

Gradle引入net.sf.json失败的处理方法

最近使用Gradle引入net.sf.json-lib时,发现根本下载不了,如下所示:

compile(
    'net.sf.json-lib:json-lib:2.4'
)

经了解,有些jar包区分jdk版本,发现此jar包需要加版本号(其他类似的jar包也需要这样处理),故正确的引入方式如下:

compile(
    'net.sf.json-lib:json-lib:2.4:jdk15'
)

另外使用maven引入此jar包时,pom.xml中要加上classi[……]

阅读全文»

Java 程序与 Office Web Apps 整合

想要将自己的程序与Office Web Apps整合,关键在于提供如下两个接口:

1、CheckFileInfo服务,此服务会返回文件的基本信息

详情可参考[MS-WOPI] section3.3.5.1.1 章节

2、GetFile服务,此服务根据上一个服务返回的基本信息返回对应文件的数据流

详情可参考[MS-WOPI] section3.3.5.3.1 章节。

因此,只需要实现这两个接口即可保证office文档的在线浏览。我这里以Java为例,演示我是如何将两者整合的。

CheckFi[……]

阅读全文»

在 Web 项目中应用 Apache Shiro

Apache Shiro 是功能强大并且容易集成的开源权限框架,它能够完成认证、授权、加密、会话管理等功能。认证和授权为权限控制的核心,简单来说,“认证”就是证明你是谁? Web 应用程序一般做法通过表单提交用户名及密码达到认证目的。“授权”即是否允许已认证用户访问受保护资源。关于
Shiro 的一系列特征及优点,很多文章已有列举,这里不再逐一赘述,本文重点介绍 Shiro 在 Web Application 中如何实现验证码认证以及如何实现单点登录。

用户权限模型

在揭开 Shiro 面纱之前,我[……]

阅读全文»

鄂ICP备13000209号-1

鄂公网安备 42050602000277号