JavaWeb 之 Filter 和 Listener引入了 Servlet 规范后,你不需要关心 Socket 网络通信、不需要关心 HTTP 协议,也不需要关心你的业务类是如何被实例化和调用的,因为这些都被 Servlet 规范标准化了,你只要关心怎么实现的你的业务逻辑。这对于程序员来说是件好事,但也有不方便的一面。所谓规范就是说大家都要遵守,就会千篇一律,但是如果这个规范不能满足你的业务的个性化需求,就有问题了,因此设计一个规范或者一个中间件,要充分考虑到可扩展性。Servlet 规范提供了两种扩展机制:Filter和Listener。
FilterFilter 是过滤器,这个接口允许你对请求和响应做一些统一的定制化处理。
Filter 提供了过滤链(Filter Chain)的概念,一个过滤链包括多个 Filter。客户端请求 request 在抵达 Servlet 之前会经过过滤链的所有 Filter,服务器响应 response 从 Servlet 抵达客户端浏览器之前也会经过过滤链的所有 FIlter。
过滤器方法Filter 接口有三个方法:
init:初始化 Fi ...
JavaWeb
未读JavaWeb 之 Servlet 指南JavaWeb 简介Web 应用程序Web,在英语中 web 即表示网页的意思,它用于表示 Internet 主机上供外界访问的资源。
Web 应用程序是一种可以通过 Web 访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件。
Internet 上供外界访问的 Web 资源分为:
静态 web 资源:指 web 页面中供人们浏览的数据始终是不变。常见静态资源文件:html、css、各种图片类型(jpg、png)
动态 web 资源:指 web 页面中供人们浏览的数据是由程序产生的,不同时间点访问 web 页面看到的内容各不相同。常见动态资源技术:JSP/Servlet、ASP、PHP
常见 Web 服务器
Tomcat
Jetty
Resin
Apache
Nginx
WebSphere
WebLogic
JBoss
Servlet 简介什么是 ServletServlet(Server Applet),即小服务程序或服务连接器。Servlet 是 Java 编写的服务器端程序,具有独立于 ...
JavaWeb
未读JavaWeb 之 Jsp 指南简介什么是 Java Server PagesJSP全称Java Server Pages,是一种动态网页开发技术。
它使用 JSP 标签在 HTML 网页中插入 Java 代码。标签通常以<%开头以%>结束。
JSP 是一种 Java servlet,主要用于实现 Java web 应用程序的用户界面部分。网页开发者们通过结合 HTML 代码、XHTML 代码、XML 元素以及嵌入 JSP 操作和命令来编写 JSP。
JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP 标签有多种功能,比如访问数据库、记录用户选择信息、访问 JavaBeans 组件等,还可以在不同的网页中传递控制信息和共享信息。
为什么使用 JSPJSP 也是一种 Servlet,因此 JSP 能够完成 Servlet 能完成的任何工作。
JSP 程序与 CGI 程序有着相似的功能,但和 CGI 程序相比,JSP 程序有如下优势:
性能更加优越,因为 JSP 可以直接在 HTML 网页中动态嵌入元素而不需要单独引用 CGI 文件。
...
JavaWeb
未读JavaWeb 面经Servlet什么是 ServletServlet(Server Applet),即小服务程序或服务连接器。Servlet 是 Java 编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态 Web 内容。
狭义的 Servlet 是指 Java 实现的一个接口。
广义的 Servlet 是指任何实现了这个 Servlet 接口的类。
Servlet 运行于支持 Java 的应用服务器中。从原理上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议的 Web 服务器。
Servlet 和 CGI 的区别Servlet 技术出现之前,Web 主要使用 CGI 技术。它们的区别如下:
Servlet 是基于 Java 编写的,处于服务器进程中,他能够通过多线程方式运行 service() 方法,一个实例可以服务于多个请求,而且一般不会销毁;
CGI(Common Gateway Interface),即通用网关接口。它会为每个请求产生新的进程,服务完成后销毁,所以效率上 ...
Maven 快速入门Maven 简介Maven 是什么Maven 是一个项目管理工具。它负责管理项目开发过程中的几乎所有的东西。
版本 - maven 有自己的版本定义和规则。
构建 - maven 支持许多种的应用程序类型,对于每一种支持的应用程序类型都定义好了一组构建规则和工具集。
输出物管理 - maven 可以管理项目构建的产物,并将其加入到用户库中。这个功能可以用于项目组和其他部门之间的交付行为。
依赖关系 - maven 对依赖关系的特性进行细致的分析和划分,避免开发过程中的依赖混乱和相互污染行为
文档和构建结果 - maven 的 site 命令支持各种文档信息的发布,包括构建过程的各种输出,javadoc,产品文档等。
项目关系 - 一个大型的项目通常有几个小项目或者模块组成,用 maven 可以很方便地管理。
移植性管理 - maven 可以针对不同的开发场景,输出不同种类的输出结果。
Maven 的生命周期maven 把项目的构建划分为不同的生命周期(lifecycle)。粗略一点的话,它这个过程(phase)包括:编译、测试、打包、集成测试、验证、部署。mav ...
Maven 插件之代码检查maven-checkstyle-plugin
maven-checkstyle-plugin,用于检测代码中不符合规范的地方。
定义 checkstyle.xml12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017 ...
Maven 教程之 pom.xml 详解pom.xml 简介什么是 pomPOM 是 Project Object Model 的缩写,即项目对象模型。
pom.xml 就是 maven 的配置文件,用以描述项目的各种信息。
pom 配置一览123456789101112131415161718192021222324252627282930313233343536373839404142<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVers ...
Maven 教程之 settings.xml 详解settings.xml 简介settings.xml 有什么用从 settings.xml 的文件名就可以看出,它是用来设置 maven 参数的配置文件。settings.xml 中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。
settings.xml 是 maven 的全局配置文件。
pom.xml 文件是本地项目配置文件。
settings.xml 文件位置settings.xml 文件一般存在于两个位置:
全局配置 - ${maven.home}/conf/settings.xml
用户配置 - ${user.home}/.m2/settings.xml
🔔 注意:用户配置优先于全局配置。${user.home} 和和所有其他系统属性只能在 3.0+版本上使用。请注意 windows 和 Linux 使用变量的区别。
配置优先级
重要:局部配置优先于全局配置。
配置优先级从高到低:pom.xml > user settings > ...
Maven 教程之发布 jar 到私服或中央仓库发布 jar 包到中央仓库
为了避免重复造轮子,相信每个 Java 程序员都想打造自己的脚手架或工具包(自己定制的往往才是最适合自己的)。那么如何将自己的脚手架发布到中央仓库呢?下面我们将一步步来实现。
在 Sonatype 创建 Issue(1)注册 Sonatype 账号
发布 Java 包到 Maven 中央仓库,首先需要在 Sonatype 网站创建一个工单(Issues)。
第一次使用这个网站的时候需要注册自己的帐号(这个帐号和密码需要记住,后面会用到)。
(2)创建 Issue
注册账号成功后,根据你 Java 包的功能分别写上Summary、Description、Group Id、SCM url以及Project URL等必要信息,可以参见我之前创建的 Issue:OSSRH-36187。
创建完之后需要等待 Sonatype 的工作人员审核处理,审核时间还是很快的,我的审核差不多等待了两小时。当 Issue 的 Status 变为RESOLVED后,就可以进行下一步操作了。
说明:如果你的 Group Id 填写的 ...
Maven 实战问题和最佳实践Maven 常见问题dependencies 和 dependencyManagement,plugins 和 pluginManagement 有什么区别dependencyManagement 是表示依赖 jar 包的声明,即你在项目中的 dependencyManagement 下声明了依赖,maven 不会加载该依赖,dependencyManagement 声明可以被继承。
dependencyManagement 的一个使用案例是当有父子项目的时候,父项目中可以利用 dependencyManagement 声明子项目中需要用到的依赖 jar 包,之后,当某个或者某几个子项目需要加载该插件的时候,就可以在子项目中 dependencies 节点只配置 groupId 和 artifactId 就可以完成插件的引用。
dependencyManagement 主要是为了统一管理插件,确保所有子项目使用的插件版本保持一致,类似的还有 plugins 和 pluginManagement。
IDEA 修改 JDK 版本后编译报错错误现象:
修改 JD ...
Ant 简易教程简介Apache Ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于 Java 环境中的软件开发。由 Apache 软件基金会所提供。
Ant 是纯 Java 语言编写的,所以具有很好的跨平台性。
下载和安装下载ant 的官方下载地址:http://ant.apache.org/bindownload.cgi
进入页面后,在下图的红色方框中可以下载最新版本。笔者下载的版本是 apache-ant-1.9.4。
配置环境变量配置环境变量(我的电脑 -> 属性 -> 高级 -> 环境变量)。
设置 ant 环境变量:
ANT_HOME C:/ apache-ant-1.9.4
path C:/ apache-ant-1.9.4/bin
classpath C:/apache-ant-1.9.4/lib
验证点击 开始 -> 运行 -> 输入 cmd
执行构建文件
输入如下命令:ant
如果出现如下内容,说明安装成功:
Buildfile: build.xml does not exist!Build ...