Display Tag Lib 是一个标签库,用来处理 jsp 网页上的 Table ,功能非常强,可以对的 Table 进行分页、数据导出、分组、对列排序等等,反正我在做项目时需要的功能它都给我提供了,而且使用起来非常的方便。能够大大减少代码量。 介个是 Display Tag 的官方网站 http://displaytag.sourceforge.net 。 首先当然是要下载它的 jar 包了,这里可以下载到最新的版本。将 jar 包放到 WEB-INF 的 lib 文件夹下。另外还需要两个辅助包: apache 的 commons-lang 和 standard 包,更多的辅助包可以在这里下载。
在 web.xml 下添加一个 filter
exportFilter
org.displaytag.filter.ResponseOverrideFilter
在 jsp 页面做一个引用: <%@ taglib uri="http://displaytag.sf.net/el " prefix="display" %>
首先我们定义一个 list <% List test = new ArrayList( 6 ); test.add( "Test String 1" ); test.add( "Test String 2" ); test.add( "Test String 3" ); test.add( "Test String 4" ); test.add( "Test String 5" ); test.add( "Test String 6" ); reque
st.setAttribute( "test", test ); %>
当我们想在 jsp 页面上显示这个 list 时,我们只需要写一句话 display tag 会自动生成一个 table
如果 list 是从控制层抛出来的, name 可使用 EL 表达式表示
这是最简单的 display tag 的使用,我们可以给它加上样式等,也可以定义显示的列,下面的 table 显示复杂一些
如果想要给它加个链接也很简单 , 下面的代码给 name 加了连接,并附带 id 参数, email 也自动连接到 mailto:XXX
下面介绍几个 Display 最常用的功能,更多功能请参考 http://www.displaytag.org/index.jsp 。 1. 分页 如果想对代码分页,只需在 display:table 标签中添加一项 pagesize=" 每页显示行数 " ,如
2. 对列排序 display tag 可对列进行排序,就是点击列名,对该列的数据进行排序。你只需对想要排序的列添加 sort="true" 就 OK ,如下面的代码可对前三列进行排序。在 display:table 中添加 defaultsort=" 列数 " ,可默认对指定的列排序。
如果 table 有分页, Display Tag 默认只对当前页进行排序,如果想对整个 list 排序,可以在 display:table 之间添加一段代码:
3. 导出数据 在 display:table 中添加 export="true" ,看看会出现什么! Display Tag 默认会提供三种数据导出方式: CSV 、 Excel 、 XML 。 另外 Display Tag 还可以导出为 PDF 格式,在 http://prdownloads.sourceforge.net/itext/ 下载一个辅助包 iText.jar , copy 到 lib 目录下,然后在 display:table 之间添加一段代码: ,大功告成。
4. Display Tag 的属性设置 前面所说的 display:setProperty 是一种改变 Display Tag 属性的方法,但是在每个 jsp 中都要写太麻烦了。 Display Tag 中设置了很多默认的属性,它有一个专门的属性文件,是在它的 jar 包中的 displaytag/properties/TableTag.properties 想要改变它的默认属性,我们可以在 WEB-INF/classes 下新建一个文件 displaytag.properties ,仿照 TableTag.properties 中属性的格式设置需要修改的属性。 TableTag.properties 中的 # messages 中设置的是显示在页面上的提示信息。默认是英文的,我们可以把它改为中文的。不过这里只能使用 unicode ,就是说中文字符必须转换为 unicode 码,这个可以使用 jdk 自带的 native2ascii.exe 进行转换。
6. displaytag 的翻页机制 这可能是 displaytag 的局限性了,它的翻页机制是这样的: 如果一个 list 中有 10000 个 bean ,按照它的机制,如果是第一页(每页 n 条),它会把前 n 条数据取出来,然后再把剩余的 10000 - n 条删除,当你点击页面 “2” 的时候,它再从后台绕一圈,把第二页的数据,也就是把第 n+1-2n 条记录取出来,把剩余的删除。这样,它实现了翻页,又防止了内存占用过大。 但是,不管怎么说,它还是有一个取出所有条数的动作的,在极大数据量的情况下,有可能造成内存溢出。
8. displaytag 中 decorator 一例
import org.displaytag.decorator.TableDecorator;
import java.util.HashMap;
import java.text.SimpleDateFormat; import java.util.Date;
public class BulletinListDecorator extends TableDecorator{
private String bulletinId = null;
private String title = null;
private SimpleDateFormat sdf = null;
private int i = 0;
public BulletinListDecorator() {
sdf = new SimpleDateFormat("yy-MM-dd"); }
public String getBulletinId(){
i+=1;
return ""+i;
}
public String getTitle(){
bulletinId = (String)((HashMap) this.getCurrentRowObject()).get("bulletinId");
title = (String)((HashMap) this.getCurrentRowObject()).get("title");
return ""+title+" "; }
public String getLastPubD(){
return sdf.format((Date)((HashMap) this.getCurrentRowObject()).get("lastPubD"));
}
}
其中 bulletinList 是一个 ArrayList , titleKey 指向了 properties 文件
补充:
一:
在display:table中添加自定义的列用 display:column ,将其属性media的值设置为html即可,如下例子:
二:
在写对应于bean里面的列时,display:column 中property对应的值是bean里面的属性的名字,大小写必须一致,例如:有个actionform类,有属性 private String _Name; 则property的值也必须为"_Name",否则提示找不到列。
*****************************************************************
转:
displaytag 学习笔记总结(1)
6,列表的子集 offset 为第一个数据在mylist中的序号。 length 为显示的记录条数。
7,自动设置链接 能够把此列的内容作为链接,连接的url和内容一致。 当然必须格式有效的url,否则写了也没有连接。
( 自认为这个功能一般。 因为连接的内容和显示的内容通常不一样。 ) 当然可以在在这里给某列指定所有的链接为同一个连接。 或者sdfs 两者效果是一样的。
!!!那么,如果连接的url不是列内容,而且每行的链接都不相同,这个时候怎么办? 就好像广告列表有商户名称,商户名称是一个连接,连接到商户的具体信息页面。 连接的url肯定不同。如何处理? 现在还不知道,接着往下看。
8,使用装饰类来转换数据。
用来转换数据内容的。一般用来格式化信息。 此类必继承TableDecorator。 顺便介绍一个格式化时间的包 org.apache.commons.lang.time.FastDateFormat; 格式化金钱的包 java.text.DecimalFormat; 思路就是覆盖List中具体类型的getXXX方法。 this.getCurrentRowObject() 得到当前行的数据。 this.getListIndex() 得到当前行的序号。 之后就转化为List中存放的具体类型,之后得到某列的数据。 返回格式化后的数据。
!!!!另外我看到,装饰类增加了一些getXXX方法,这些方法并没有在ListObject中定义。 还不知道这样做有什么好处? 这样仅仅对一列数据进行格式化,需要继承ColumnDecorator 需要实现:String decorate(Object columnValue)方法。此方法同样接受一个Object参数, 此参数就是对象的某个具体属性值,直接转化为对应类型,然后格式化,返回String。
9,建立动态链接。 两种方式可以建立动态链接。 第一种方式直接在页面上使用 http://baseurl/paramid=columnvalue http://baseurl/paramid=scope 范围内的名字为name的值 http://baseurl/paramid =名字为propertyname的属性值
这种方式处理简单的链接十分有效,但是链接参数值如果通过查询数据库等比较复杂的方式得到的话,这种方式 就不适应了。这时候就必须使用第二种方法。
第二种方法,在装饰类中获得连接。 装饰类多定义一些getXXX方法,那么页面上就可以使用来使用装饰类de getXXX方法。好,这样一来,在装饰类的getXXX方法里,得到此行对象,这样对象的各个属性就都能得到, 之后去查数据库也好,去完成负责的判断逻辑也好,都很容易实现,别忘了,然后拼装起来,并写成一个 这样的字符串返回。 好,页面直接一句话就可得到此拼装的《a》了。
第二种方法比较好些,因为可以显得更灵活。想怎么写就怎么写。第一种方法就是简单地实现。 10,翻页。 1,怎么得到每行的序号? 使用<%=pageContext.getAttribute("xxx_rowNum")%>肯定好用。 但是 这种方式就不好用。也不知道差哪了。
翻页很简单。就是在这样来指定每页的数量就可以了。 自动出现换页的索引,上下页等等东西。 实在是方便。但是问题就是一次传下来很多东西,性能不好。等一会看看如何改良。
11,自动设置排序 可以设定默认时按照哪列排序,是升序还是降序。本例设置第一列默认时降序。 每列都得对象都必须实现了Comparable接口才能被设置成sortable="true". 如果没有实现Comparable,那么必须写一个装饰类。 另外需要注意, 他只对当前页面进行排序。而不是全部。在翻页时特别需要注意。 要想实现全部的排序,那么必须重新写Action往网页传新的List了。
12,如何分组 按照某列进行分组显示。 这个功能真不错。 这样不仅仅结果可以分组,而且还可以省略掉重复的数据,例如city列,project列都有 A ,B ,A,B 两行那么第二行这两列就不显示了。
同样只能对当前页进行分组。
注意:第一列一定要1,第二列一定是2,否则出NUllPoint 错误。
13,统计 好东西啊。可以对分组进行统计,也可以对所有行进行统计。 主要靠TableDecorator类finishRow()返回统计结果,放到页面去显示。
TableDecorator类方法getDecoratedObject()得到整个结果集。一般把它转化成List,因为大多数情况下结果 是存放在List中的。 public final String finishRow() {}当一行结束时执行此方法。所以用它来判断是否需要计算城市统计, 抑或是全部统计。 相当于事件处理。返回的字符串也将在页面上显示。本例返回了
... 这样的三份。 这样就在表中嵌套进了三行。用来显示统计是足够了。
14,导出数据 很简单。talbe里设置export=“true”就行了。配置文件也要设置好export.xml = true , 这样才能导出xml。 类推pdf、excel、html、csv。 每个列能配置是否在某种格式中显示,语法
另外需要注意: 被包含的文件不能使用这个功能,非要使用,就的用过滤器。以后再深研究吧。
15,配置DisplayTag. 在应用的classpath路径上拷贝一个TableTag.properties,并命名为displaytag.properties. 这样就默认取displaytag.properties里的配置了。想汉化,很简单。就需要把displaytag_zh.properties放到 classpath路径下就可以了。
标题像汉化:因为默认是jstl的资源文件使用方式。所以得先学习jstl的 我知道了jstl.fmt如何使用资源文件。好了,jstl 首先必须用fmt:bunlle指定一个资源文件,然后才能 在他的body部分使用此资源文件,颇麻烦。
而displaytag呢? 没有这么麻烦,如果与struts搭配使用,适用struts的资源文件当然最合理了。 你必须在displaytag.properties里定义好一个 参数,#locale.provider=org.displaytag.localization.I18nJstlAdapter locale.provider=org.displaytag.localization.I18nStrutsAdapter 就这么简单,就能够使用struts配置文件了。我今天竟然看了一下午。哎,苦于没有好点的资料啊。
问题是:如果不合struts搭配使用。如果仅仅在jstl环境下,displaytag又该如何使用jstl的资源文件呢? 你必须象在jstl环境里一样使用指定好资源文件,之后把displaytag标签放到他的body 后,就可以使用jstl的资源文件了!!!!(幸亏我首先看了jstl使用资源文件的方法)
16,一个页面两个以上的表格. 很简单,只需要每个表格配置不同的id.
17,表格里面还有表格. 很简单.只要在外层表的 ( 在这加。。。 即可) 18,表头表尾 很简单:想一样使用就行了. 主要注意一下: 内容必须是.....
19,表格里的值截断,与显示空白. 简单得很.
ok,差不多到了关键的时候了。!!!!!
============================================= 关键: 20,如何分页. 因为displaytag的分页机制需要一次把所有纪录都传到里面.所以对纪录很多的项目并不合适.如果还非得用 displaytag那只好放弃他的一些功能了.比较理智的方法是仅仅让displaytag获得一页的list.这样就不用displaytag 的分页index,而使用自己的,或者写customertag,或者使用jsppager tag.
有很多人质疑这种方法,因为这使得displaytag的光芒至少减少了一半以上,因为他的很多功能因此而无法使用, 例如排序功能,可以针对所有list进行全局排序,如果每次只传给一页的数据,全局排序就和当页排序没有区别了. displaytag的全局排序功能宣布废掉了.
这样的功能基本上也没有什么用处。
那么还使用它干什么呢? displaytag即使废掉了一些武功仍然有它的优点.例如 1,支持表格的嵌套. 2,支持css这样就能写少量地代码使得程序更简洁.只好定义好一套css,就能全局范围内使用了. 3,另外还支持截断长的字符串,这样就不用在页面使用自己的方法了. 4,能够实现比较复杂的逻辑从而产生动态链接。这也勉强所以个好处吧。 5,能轻松地使用struts的资源文件。使得它可以很好的国际化。 6,能够过滤空值。
缺点: 1,分组就使用不了了,统计也无法使用了。只统计当前页是没有意义的。 2,排序也变成当前页排序了。没多少意思。 3,导出也变成当前页导出了,没多少意思了。
你可能感兴趣的:(JAVA)
基于大数据的商品推荐系统的设计与实现
JAVA编码选手
个人作品案例展示分享 大数据 spring boot maven vue.js 后端 javascript
摘要在当今互联网时代,随着电子商务的快速发展,各行各业都面临着海量数据的挑战和机遇,电子商务极大地改变了商业运作的方式,为消费者和企业带来了前所未有的便利和机会。该毕业设计以京东商品数据为来源,设计与实现基于大数据的电商商品推荐系统。通过对电商商品数据进行深度挖掘,可以发现消费趋势、产品热门度、价格以及地区差异等信息,为市场营销和产品策略提供重要参考。利用Java语言及SpringBoot框架、M
ARM架构下的JDK 8安装包及部署指南:为您的开发环境加速
平稳炜
ARM架构下的JDK8安装包及部署指南:为您的开发环境加速项目地址:https://gitcode.com/open-source-toolkit/8c506项目介绍在ARM架构的设备上,如树莓派等,搭建Java开发环境可能是一项挑战。为了简化这一过程,我们推出了ARM架构专属的JDK8安装包及部署指南。本项目提供了一个关键的软件资源——jdk-8u391-linux-aarch64.tar,专门
Spring学习笔记_41——@RequestBody
LuckyLay
Spring学习笔记 spring 消息转换器 RequestBody SpringMVC SpringBoot
Spring学习笔记_38——@RequestParamSpring学习笔记_39——@PathVariableSpring学习笔记_40——@RequestHeader@RequestBody1.介绍@RequestBody是Spring框架中用于处理HTTP请求的一个非常关键的注解。它主要用于将客户端发送的HTTP请求体中的JSON、XML或其他格式的数据转换到Java方法参数上,这个转换过程
走进JavaWeb技术世界11:单元测试框架Junit
程序员黄小斜
走进JavaWeb技术世界 Java
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h2pl/Java-Tutorial喜欢的话麻烦点下Star哈文章首发于我的个人博客:www.how2playlife.com本文是微信公众号【Java技术江湖】的《走进JavaWeb技术世界》其中一篇,本文部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多
深入探秘 Java 网络编程:从基础到多线程服务器的全方位指南
2的n次方_
java 网络 服务器
我的主页:2的n次方_Java作为一门功能强大的编程语言,不仅在桌面应用、移动开发、后端开发等领域表现出色,还在网络编程中拥有广泛的应用。网络编程涉及在两个或多个设备之间通过网络进行通信,这对于构建分布式系统、客户端-服务器应用程序、以及互联网服务至关重要。在这篇博客中,我们将详细探讨Java网络编程的基础知识,并通过代码示例展示如何在Java中实现网络通信。1.Java网络编程基础Java网络编
Spring Cloud LoadBalancer负载均衡
(空白格)
Spring Cloud spring cloud
PS:放假偷偷摸摸卷Java-------------------------------------------------正文分割线----------------------------------------------------概念:负载均衡换句话说就是将请求并发访问转发给后台多台云服务器实例,实现应用程序的流量均衡,性能上实现业务水平扩展。负载均衡还通过故障自动切换及时地消除服务的单
前端面试题-手写篇-万字长文!
前端Jason
面试 前端 面试 前端面试
1.手写实现EventBus实现一个简单的EventBus(事件总线)可以让我们在不同的组件或模块之间进行事件驱动的通信。下面是一个用JavaScript手写实现EventBus的基本例子:classEventBus{constructor(){this.events={};//存储事件名与对应的监听器}//注册事件监听器on(event,listener){if(!this.events[eve
使用 MySQL 从 JSON 字符串提取数据
m0_74825678
面试 学习路线 阿里巴巴 mysql json oracle
使用MySQL从JSON字符串提取数据在现代数据库管理中,JSON格式因其灵活性而广泛使用。然而,当数据存储在JSON中时,我们经常需要将其转换为更易于处理的格式。本篇文章将通过一个具体的SQL查询示例,展示如何从存储在MySQL中的JSON字符串提取数据并重新格式化。1.背景知识JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器
Java 9 Optional新特性深度剖析与实例应用
2501_90323865
python windows 开发语言 个人开发
在Java编程的漫长旅程中,Optional类一直是处理可选值的得力助手。Java9对其进行了重要扩展,引入了诸多新方法,让Optional的使用更加灵活高效。本文将深入剖析这些新特性,并结合实例进行详细解读。ifPresentOrElse(Consumer,Runnable)方法介绍ifPresentOrElse(Consumer,Runnable)方法是Java9为Optional新增的。当O
2024金三银四必备:Java后端开发面试总结【25个技术专题】
2401_89790869
java 面试 开发语言
16、List和Map、Set的区别?17、数组和链表分别比较适合用于什么场景,为什么?18、说说ConcurrentHashMap19、Java中ArrayList和LinkedList区别?20、TreeMap(可排序)21、请用两个队列模拟堆栈结构?22、Map中的key和value可以为null?23、数据结构基础之双向链表24、HashMap的底层实现25、ConcurrentHashM
HTML期末学生大作业-最新QQ音乐、网易云音乐、酷狗音乐、虾米音乐、咪咕音乐网站html+css+javascript
2401_89790869
html 课程设计 css
href=“https://y.qq.com/n/ryqq/playlist/7772849553”>好评999+英文歌!轻松解压100%播放量:2.8亿扎心情歌丨爱到最后终是空欢喜播放量:510.4万如果词不达意就把爱藏心里播放量:1645.7万深情片段:深夜我还是会想起你播放量:2663.8万href=“https://y.qq.com/n/ryqq/playlist/7537828
用JavaScript实现找不同小游戏
算是难了
javascript 开发语言 前端 websocket
目录倒计时的实现找不同实现对canvas的初始化实现画布的分割,父盒子>子盒子>canvas找不同逻辑的判断实现图片的导入DOM节点的监听声明两个需要监听的节点禁用页面点击事件的函数DOM监听实现勋章分数增加和生命的减少减命逻辑死亡响应websocket交互定义给后端发送的数据包断线重连最后,调用封装好的websocket创建初始之物,其行必丑代码写的非常繁琐,有很多细节在复盘的时候也会想不起来为
Java工程结构:服务器规约(JVM 碰到 OOM 场景时输出 dump 信息、设置tomcat的 JVM 的内存参数、了解服务平均耗时)
iOS逆向
Java开发的深入浅出 java 服务器 开发语言
文章目录I调用远程操作必须有超时设置。II推荐了解每个服务大致的平均耗时JVM的Xms和Xmx设置一样大小的内存容量让JVM碰到OOM场景时输出dump信息调大服务器所支持的最大文件句柄数(FileDescriptor,简写为fd)高并发服务器建议调小TCP协议的time_wait超时时间。III设置tomcat的JVM的内存参数查找Tomcat位置:快速定位服务状态和部署位置具体配置步骤查看JV
策略模式和职责链模式实现坦克大战
科学的发展-只不过是读大自然写的代码
设计模式-坦克大战-java 策略模式
目录:一个实例讲完23种设计模式当前:策略模式职责链观察者上一篇《命令模式坦克大战简单实现(java实现)》需求:坦克大战创建两种坦克坦克类型射程速度b7070米时/70公里b5050米时/70公里简单说明一下:这任然用坦克大战的需求,实现了如下3种模式策略职责链观察者(这里的观察者就一个,没有体现被观察者和观察者1对多的关系,但是观察者的价值在于被观察者发现自己有变化的时候,对观察者自动的通知,
Redis实战之Jedis使用技巧详解
小马不敲代码
实战 redis 缓存
一、前言基于redis开放的通信协议,大神们纷纷开发了各种语言的redis客户端,有c、c++、java、python、php、nodeJs等等开发语言的客户端,准确来说其实这些客户端都是基于redis命令做了一层封装,然后打包成工具以便大家更佳方便的操作redis,以Java项目为例,使用最广的就是以下三种客户端:JedisLettuceRedisson二、JedisJedis是老牌的Redis
【Spring】Spring DI(依赖注入)详解——注入参数的细节处理-内部Bean的注入
AI人H哥会Java
JAVA java 开发语言 spring 后端
引言在现代Java开发中,Spring框架已经成为了构建企业级应用的标准工具之一。Spring的核心特性之一就是依赖注入(DependencyInjection,DI),它通过将对象的依赖关系从代码中解耦出来,提升了代码的可维护性和可测试性。特别是在大型项目中,良好的依赖管理能够显著降低代码的复杂度,提高开发效率。依赖注入的基本概念依赖注入是一种设计模式,用于实现控制反转(InversionofC
arcgis for JavaScript入门篇
五彩斑斓黑123
arcgis for javascript arcgis javascript 开发语言
介绍ArcGISforJavaScript是一种基于Web的地图开发解决方案,由ESRI公司开发。它允许开发人员在Web应用程序中嵌入交互式地图,并使用JavaScript编写地图应用程序。ArcGISforJavaScript提供了许多功能强大的API和工具,使开发人员能够创建高度定制的地图应用程序。它支持各种地图数据源,包括ESRI的ArcGISOnline服务、第三方地图服务、以及开发人员自
JSONObject解析数据库Date类型报错问题
知忆_IS
数据库 java database postgresql
JSONObject解析数据库Date类型报错问题最近项目在写服务器后端查询空间数据的接口时,由于表结构不一致,直接写了一个通用函数用json储存数据库中查询的结果,然而今天前端查询一个表的时候无法查到相应的结果,查了一下代码发现爆了如下错误。报错:Causedby:java.lang.IllegalArgumentExceptionatjava.sql.Date.getHours原因是该表中存在
【Elasticsearch 】 聚合分析:聚合概述
程风破~
Elasticsearch elasticsearch 大数据 搜索引擎
博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分
ArcGIS API for JavaScript获取和配置-ArcGIS Web 开发学习(一)
大海上飞翔
ArcGIS Web API javascript arcgis
ArcGISAPIforJavaScript获取和配置最近开始学习WebGIS开发,刚一接触就很是让人恼火,第一个问题就是:ArcGISAPIforJavaScript库和SDK的获取。(1)我直接访问的是ARCGIS的资源中心:http://resources.arcgis.com/zh-cn/home/,点击JavaScript,出现以下页面:https://developers.arcg
mvc学习笔记
JDS_DIJ
笔记 mvc
mvc设计框架的形成最早是servlet==>缺点:生成html页面太麻烦,所以引入了jsp,jsp本质就是servletjsp==>缺点:阅读起来困难,难维护,于是引入javabean,用来专门和数据打交道;形成jsp的设计框架model1jsp+javabean==>缺点:jsp即要接受请求,又要展示数据,所以又加入servlet;专门用来接受请求;形成jsp的设计框架model2jsp+ja
微信 PC 版 4.0:新架构,新升级
创意锦囊
微信 架构
探索微信PC版4.0:新架构带来的革命性升级微信在2023年底推出了PC客户端4.0测试版,引入了全新的QT+C++原生跨平台架构。这次架构重构标志着微信在桌面端从传统的WebView技术迈向更现代化、高性能的原生技术基础,带来了显著的功能升级和用户体验优化。从旧到新:架构大变革旧架构:WebView+JavaScript微信旧版PC客户端主要依赖WebView技术,通过HTML、CSS和Java
深入探究 Java 异常处理
潜意识Java
Java知识 java python 开发语言
目录一、异常是什么,为啥要处理它二、Java异常体系概述三、Java异常处理方式1.try-catch-finally块2.throws关键字3.throw关键字四、自定义异常五、异常处理的最佳实践六、总结在Java编程的旅程中,异常处理就像是一位默默守护的卫士,时刻保障着程序的稳健运行。当程序运行过程中出现错误或异常情况时,合理的异常处理机制能够避免程序崩溃,让程序以一种可控的方式继续执行或优雅
Docker的原理:如何理解容器技术的力量 思维导图-java架构
用心去追梦
大数据 java storm
要理解Docker的原理以及容器技术的力量,可以通过一个思维导图来帮助整理和展示信息。以下是一个基于文本的思维导图结构,用于说明Docker和容器技术的关键概念,特别关注于Java架构师可能会感兴趣的部分:Docker与容器技术│├───基本概念│├───容器(Container)││└───是一个轻量级、可移植、自包含的软件包│├───镜像(Image)││└───包含应用程序及其所有依赖项的只
Java 驱动大数据流处理:Storm 与 Flink 入门 (大数据)
用心去追梦
大数据 java storm
Java是一种广泛使用的编程语言,特别适用于企业级应用开发。随着数据量的不断增长,处理大数据流成为了现代软件开发中的一个重要领域。ApacheStorm和ApacheFlink是两个用于处理大规模数据流的开源框架,它们都支持用Java编写的应用程序。下面将简要介绍这两个框架,并提供一些入门指导。ApacheStormApacheStorm是一个免费、开源的分布式实时计算系统。Storm让用户能够轻
实现音乐播放器实现:前端HTML,CSS,JavaScript综合大项目(java实战)
用心去追梦
前端 html css
创建一个音乐播放器项目,使用HTML、CSS和JavaScript作为前端技术栈,并结合Java后端(如果需要),可以是一个很好的实战项目。这个项目不仅能够帮助你掌握前端开发技能,还能让你了解如何与后端交互来获取数据。下面是实现这样一个音乐播放器项目的步骤指南,包括了从规划到部署的各个方面。1.项目规划规划功能基本功能播放/暂停按钮。音量控制。进度条。歌曲列表显示。高级功能随机播放。列表循环。搜索
hive电影数据分析系统 Springboot协同过滤-余弦函数推荐系统 爬虫2万+数据 大屏数据展示 + [手把手视频教程 和 开发文档]
QQ-1305637939
毕业设计 大数据毕设 计算机毕业设计 hive spring boot 爬虫
hive电影数据分析Springboot协同过滤-余弦函数推荐系统爬虫2万+数据大屏数据展示+[手把手视频教程和开发文档]【功能介绍】1.java爬取【豆瓣电影】网站中电影数据,保存为data.csv文件,数据量2万+2.data.csv上传到hadoop集群环境3.MR数据清洗data.csv4.Hive汇总处理,将Hive处理的结果数据保存到本地Mysql数据库中5.Springboot+Vu
hadoop电影数据分析系统 Springboot协同过滤-余弦函数推荐系统 爬虫2万+数据 大屏数据展示 + [手把手视频教程 和 开发文档]
QQ-1305637939
计算机毕业设计 毕业设计 大数据毕设 hadoop spring boot 爬虫
全套视频教程全套开发文档hadoop电影数据分析系统Springboot协同过滤-余弦函数推荐系统爬虫2万+数据大屏数据展示【Hadoop项目】1.java爬取【豆瓣电影】网站中电影数据,保存为data.csv文件,数据量2万+2.data.csv上传到hadoop集群环境3.data.csv数据清洗4.MR数据汇总处理,将Reduce的结果数据保存到本地Mysql数据库中5.Springboot
spark电影数据分析系统 Springboot协同过滤-余弦函数推荐系统 爬虫2万+数据 大屏数据展示 + [手把手视频教程 和 开发文档]
QQ-1305637939
毕业设计 大数据毕设 计算机毕业设计 spark spring boot 爬虫 大数据 电影推荐 电影分析
spark电影数据分析系统Springboot协同过滤-余弦函数推荐系统爬虫2万+数据大屏数据展示+[手把手视频教程和开发文档【功能介绍】1.java爬取【豆瓣电影】网站中电影数据,保存为data.csv文件,数据量2万+2.data.csv上传到hadoop集群环境3.MR数据清洗data.csv4.Spark汇总处理,将Spark处理的结果数据保存到本地Mysql数据库中5.Springboo
二分查找(Java版)
爱学Java
Java数据结构与算法 java 算法
二分查找算法Java版算法介绍算法复杂度算法思想算法注意事项算法基础版改进版平衡版最左侧查找最右侧查找总结二分查找算法介绍算法复杂度时间复杂度:O(logn)空间复杂度:O(1)算法思想二分查找(BinarySearch)是一种高效的搜索算法,适用于在有序数组或序列中查找目标元素的位置。其核心思想是利用数组的有序性,将查找范围逐步缩小至目标值所在的子范围。1,确定查找范围:在有序数组中,设定两个指
iOS http封装
374016526
ios 服务器交互 http 网络请求
程序开发避免不了与服务器的交互,这里打包了一个自己写的http交互库。希望可以帮到大家。
内置一个basehttp,当我们创建自己的service可以继承实现。
KuroAppBaseHttp *baseHttp = [[KuroAppBaseHttp alloc] init];
[baseHttp setDelegate:self];
[baseHttp
lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具
brotherlamp
linux linux教程 linux视频 linux自学 linux资料
那些相信 Linux 命令行是单调无聊且没有任何乐趣的人们,你们错了,这里有一些有关 Linux 的文章,它们展示着 Linux 是如何的有趣和“淘气” 。
在本文中,我将讨论一个名为“lolcat”的小工具 – 它可以在终端中生成彩虹般的颜色。
何为 lolcat ?
Lolcat 是一个针对 Linux,BSD 和 OSX 平台的工具,它类似于 cat 命令,并为 cat
MongoDB索引管理(1)——[九]
eksliang
mongodb MongoDB管理索引
转载请出自出处:http://eksliang.iteye.com/blog/2178427 一、概述
数据库的索引与书籍的索引类似,有了索引就不需要翻转整本书。数据库的索引跟这个原理一样,首先在索引中找,在索引中找到条目以后,就可以直接跳转到目标文档的位置,从而使查询速度提高几个数据量级。
不使用索引的查询称
Informatica参数及变量
18289753290
Informatica 参数 变量
下面是本人通俗的理解,如有不对之处,希望指正 info参数的设置:在info中用到的参数都在server的专门的配置文件中(最好以parma)结尾 下面的GLOBAl就是全局的,$开头的是系统级变量,$$开头的变量是自定义变量。如果是在session中或者mapping中用到的变量就是局部变量,那就把global换成对应的session或者mapping名字。
[GLOBAL] $Par
python 解析unicode字符串为utf8编码字符串
酷的飞上天空
unicode
php返回的json字符串如果包含中文,则会被转换成\uxx格式的unicode编码字符串返回。
在浏览器中能正常识别这种编码,但是后台程序却不能识别,直接输出显示的是\uxx的字符,并未进行转码。
转换方式如下
>>> import json
>>> q = '{"text":"\u4
Hibernate的总结
永夜-极光
Hibernate
1.hibernate的作用,简化对数据库的编码,使开发人员不必再与复杂的sql语句打交道
做项目大部分都需要用JAVA来链接数据库,比如你要做一个会员注册的 页面,那么 获取到用户填写的 基本信后,你要把这些基本信息存入数据库对应的表中,不用hibernate还有mybatis之类的框架,都不用的话就得用JDBC,也就是JAVA自己的,用这个东西你要写很多的代码,比如保存注册信
SyntaxError: Non-UTF-8 code starting with '\xc4'
随便小屋
python
刚开始看一下Python语言,传说听强大的,但我感觉还是没Java强吧!
写Hello World的时候就遇到一个问题,在Eclipse中写的,代码如下
'''
Created on 2014年10月27日
@author: Logic
'''
print("Hello World!");
运行结果
SyntaxError: Non-UTF-8
学会敬酒礼仪 不做酒席菜鸟
aijuans
菜鸟
俗话说,酒是越喝越厚,但在酒桌上也有很多学问讲究,以下总结了一些酒桌上的你不得不注意的小细节。
细节一:领导相互喝完才轮到自己敬酒。敬酒一定要站起来,双手举杯。
细节二:可以多人敬一人,决不可一人敬多人,除非你是领导。
细节三:自己敬别人,如果不碰杯,自己喝多少可视乎情况而定,比如对方酒量,对方喝酒态度,切不可比对方喝得少,要知道是自己敬人。
细节四:自己敬别人,如果碰杯,一
《创新者的基因》读书笔记
aoyouzi
读书笔记 《创新者的基因》
创新者的基因
创新者的“基因”,即最具创意的企业家具备的五种“发现技能”:联想,观察,实验,发问,建立人脉。
第一部分破坏性创新,从你开始
第一章破坏性创新者的基因
如何获得启示:
发现以下的因素起到了催化剂的作用:(1) -个挑战现状的问题;(2)对某项技术、某个公司或顾客的观察;(3) -次尝试新鲜事物的经验或实验;(4)与某人进行了一次交谈,为他点醒
表单验证技术
百合不是茶
JavaScript DOM对象 String对象 事件
js最主要的功能就是验证表单,下面是我对表单验证的一些理解,贴出来与大家交流交流 ,数显我们要知道表单验证需要的技术点, String对象,事件,函数
一:String对象;通常是对字符串的操作;
1,String的属性;
字符串.length;表示该字符串的长度;
var str= "java"
web.xml配置详解之context-param
bijian1013
java servlet web.xml context-param
一.格式定义:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>contextConfigLocationValue></param-value>
</context-param>
作用:该元
Web系统常见编码漏洞(开发工程师知晓)
Bill_chen
sql PHP Web fckeditor 脚本
1.头号大敌:SQL Injection
原因:程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,
获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
本质:
对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。
示例:
String query = "SELECT id FROM users
【MongoDB学习笔记六】MongoDB修改器
bit1129
mongodb
本文首先介绍下MongoDB的基本的增删改查操作,然后,详细介绍MongoDB提供的修改器,以完成各种各样的文档更新操作 MongoDB的主要操作
show dbs 显示当前用户能看到哪些数据库
use foobar 将数据库切换到foobar
show collections 显示当前数据库有哪些集合
db.people.update,update不带参数,可
提高职业素养,做好人生规划
白糖_
人生
培训讲师是成都著名的企业培训讲师,他在讲课中提出的一些观点很新颖,在此我收录了一些分享一下。注:讲师的观点不代表本人的观点,这些东西大家自己揣摩。
1、什么是职业规划:职业规划并不完全代表你到什么阶段要当什么官要拿多少钱,这些都只是梦想。职业规划是清楚的认识自己现在缺什么,这个阶段该学习什么,下个阶段缺什么,又应该怎么去规划学习,这样才算是规划。
国外的网站你都到哪边看?
bozch
技术 网站 国外
学习软件开发技术,如果没有什么英文基础,最好还是看国内的一些技术网站,例如:开源OSchina,csdn,iteye,51cto等等。
个人感觉如果英语基础能力不错的话,可以浏览国外的网站来进行软件技术基础的学习,例如java开发中常用的到的网站有apache.org 里面有apache的很多Projects,springframework.org是spring相关的项目网站,还有几个感觉不错的
编程之美-光影切割问题
bylijinnan
编程之美
package a;
public class DisorderCount {
/**《编程之美》“光影切割问题”
* 主要是两个问题:
* 1.数学公式(设定没有三条以上的直线交于同一点):
* 两条直线最多一个交点,将平面分成了4个区域;
* 三条直线最多三个交点,将平面分成了7个区域;
* 可以推出:N条直线 M个交点,区域数为N+M+1。
关于Web跨站执行脚本概念
chenbowen00
Web 安全 跨站执行脚本
跨站脚本攻击(XSS)是web应用程序中最危险和最常见的安全漏洞之一。安全研究人员发现这个漏洞在最受欢迎的网站,包括谷歌、Facebook、亚马逊、PayPal,和许多其他网站。如果你看看bug赏金计划,大多数报告的问题属于 XSS。为了防止跨站脚本攻击,浏览器也有自己的过滤器,但安全研究人员总是想方设法绕过这些过滤器。这个漏洞是通常用于执行cookie窃取、恶意软件传播,会话劫持,恶意重定向。在
[开源项目与投资]投资开源项目之前需要统计该项目已有的用户数
comsci
开源项目
现在国内和国外,特别是美国那边,突然出现很多开源项目,但是这些项目的用户有多少,有多少忠诚的粉丝,对于投资者来讲,完全是一个未知数,那么要投资开源项目,我们投资者必须准确无误的知道该项目的全部情况,包括项目发起人的情况,项目的维持时间..项目的技术水平,项目的参与者的势力,项目投入产出的效益.....
oracle alert log file(告警日志文件)
daizj
oracle 告警日志文件 alert log file
The alert log is a chronological log of messages and errors, and includes the following items:
All internal errors (ORA-00600), block corruption errors (ORA-01578), and deadlock errors (ORA-00060)
关于 CAS SSO 文章声明
denger
SSO
由于几年前写了几篇 CAS 系列的文章,之后陆续有人参照文章去实现,可都遇到了各种问题,同时经常或多或少的收到不少人的求助。现在这时特此说明几点:
1. 那些文章发表于好几年前了,CAS 已经更新几个很多版本了,由于近年已经没有做该领域方面的事情,所有文章也没有持续更新。
2. 文章只是提供思路,尽管 CAS 版本已经发生变化,但原理和流程仍然一致。最重要的是明白原理,然后
初二上学期难记单词
dcj3sjt126com
english word
lesson 课
traffic 交通
matter 要紧;事物
happy 快乐的,幸福的
second 第二的
idea 主意;想法;意见
mean 意味着
important 重要的,重大的
never 从来,决不
afraid 害怕 的
fifth 第五的
hometown 故乡,家乡
discuss 讨论;议论
east 东方的
agree 同意;赞成
bo
uicollectionview 纯代码布局, 添加头部视图
dcj3sjt126com
Collection
#import <UIKit/UIKit.h>
@interface myHeadView : UICollectionReusableView
{
UILabel *TitleLable;
}
-(void)setTextTitle;
@end
#import "myHeadView.h"
@implementation m
N 位随机数字串的 JAVA 生成实现
FX夜归人
java Math 随机数 Random
/**
* 功能描述 随机数工具类<br />
* @author FengXueYeGuiRen
* 创建时间 2014-7-25<br />
*/
public class RandomUtil {
// 随机数生成器
private static java.util.Random random = new java.util.R
Ehcache(09)——缓存Web页面
234390216
ehcache 页面缓存
页面缓存
目录
1 SimplePageCachingFilter
1.1 calculateKey
1.2 可配置的初始化参数
1.2.1 cach
spring中少用的注解@primary解析
jackyrong
primary
这次看下spring中少见的注解@primary注解,例子
@Component
public class MetalSinger implements Singer{
@Override
public String sing(String lyrics) {
return "I am singing with DIO voice
Java几款性能分析工具的对比
lbwahoo
java
Java几款性能分析工具的对比
摘自:http://my.oschina.net/liux/blog/51800
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能
JVM参数配置大全
nickys
jvm 应用服务器
JVM参数配置大全
/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -
搭建 CentOS 6 服务器(14) - squid、Varnish
rensanning
varnish
(一)squid
安装
# yum install httpd-tools -y
# htpasswd -c -b /etc/squid/passwords squiduser 123456
# yum install squid -y
设置
# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
# vi /etc/
Spring缓存注解@Cache使用
tom_seed
spring
参考资料
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/
http://swiftlet.net/archives/774
缓存注解有以下三个:
@Cacheable @CacheEvict @CachePut
dom4j解析XML时出现"java.lang.noclassdeffounderror: org/jaxen/jaxenexception"错误
xp9802
java.lang.NoClassDefFoundError: org/jaxen/JaxenExc
关键字: java.lang.noclassdeffounderror: org/jaxen/jaxenexception
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速手册里也建议使用这种方式
执行时却抛出以下异常:
Exceptio