Tag Archives: jsp

pager-taglib 体验

可能是自已习惯了用自已的分页组件。一直不知道有这样一个现成的分页标签。直到那天,白衣跟我提起了一下,我Search了一下,发现了Pager-taglib这个东东。支持多种风格的分页显示。 先简单介绍一下Pager-taglib。实际上,她是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格,包括Google的分页风格。而需要订制自已的风格的分页页面也非常简单。 接触的当天、匆匆看了下Demo和文档,发现这个很早(2002年最新版一直到现在)就已经有的东西,似 乎比较擅长显示端分页。如,把所有的数据传到页面,通过参数设定页面大小等,可能得到很完美的分页效果。 第二天回家,做了些小动作,把一个页码参数塞进URL里面,让程序在页面之下分了页再把结果传出来,简单地实现了服务器的分页的功能。 Pager-taglib的文档很详尽,我如果有说也只有翻译的份,要是真的翻译也就免了,文档还是挺容易看懂的。于是我开始作了另外一个小Demo,用了原先Demo里面的一个分页风格(Simple),稍作修改。希望能帮助自已理清脉络和对朋友们有用:P 一、模拟业务类: package  net.jf.ajax.business; import  java.util.ArrayList; import  java.util.List; public   class  PageManager  { private   static  List names; { names  =   new  ArrayList(); names.add( ” black ” ); names.add( ” black ” ); names.add( … Continue reading

Posted in 技术 | Tagged , , | Leave a comment

JSTL,几近晕倒的几个小问题

一、版本问题,web.xml文件使用的DTD版本如果为2.3则对应JSTL的1.0版,2.4则对应1.1版。如果发现报错说JSTL标签里的表达式没有接收到任何值的时候,估计是版本出的错。到Google查下,很多解决方法。 二、List的c out。如果你的实体继承了List,而添加了一些属性,想要在页面直接输出这些属性,你可能这样做: <c:out value=”${mylist.myproperty}”/>但是你会发现这是个错误: javax.servlet.ServletException: The “.” operator was supplied with an index value of type “java.lang.String” to be applied to a List or array, but that value cannot be converted to an integer. 原因是这样的,当表达式的实体是一个List或者数组数型的话,”.”操作符后面跟的属性一律被看作是List或数组的下标了。JSTL试图把它们转成整型,失败就会报错。 不但Out标签存在这个特点,其他也一样。所以在设计实体的时候,如果需要用到List的功能,最好加一个List的成员变量。不需要直接继承。

Posted in 技术 | Tagged , , | Leave a comment

提升JSP应用程序的七大绝招

你时常被客户抱怨JSP页面响应速度很慢吗?你想过当客户访问次数剧增时,你的WEB应用能承受日益增加的访问量吗?本文讲述了调整JSP和servlet的一些非常实用的方法,它可使你的servlet和JSP页面响应更快,扩展性更强。而且在用户数增加的情况下,系统负载会呈现出平滑上长的趋势。在本文中,我将通过一些实际例子和配置方法使得你的应用程序的性能有出人意料的提升。其中,某些调优技术是在你的编程工作中实现的。而另一些技术是与应用服务器的配置相关的。在本文中,我们将详细地描述怎样通过调整servlet和JSP页面,来提高你的应用程序的总体性能。在阅读本文之前,假设你有基本的servlet和JSP的知识。 方法一:在servlet的init()方法中缓存数据 当应用服务器初始化servlet实例之后,为客户端请求提供服务之前,它会调用这个servlet的init()方法。在一个servlet的生命周期中,init()方法只会被调用一次。通过在init()方法中缓存一些静态的数据或完成一些只需要执行一次的、耗时的操作,就可大大地提高系统性能。 例如,通过在init()方法中建立一个JDBC连接池是一个最佳例子,假设我们是用jdbc2.0的DataSource接口来取得数据库连接,在通常的情况下,我们需要通过JNDI来取得具体的数据源。我们可以想象在一个具体的应用中,如果每次SQL请求都要执行一次JNDI查询的话,那系统性能将会急剧下降。解决方法是如下代码,它通过缓存DataSource,使得下一次SQL调用时仍然可以继续利用它: public class ControllerServlet extends HttpServlet { private javax.sql.DataSource testDS = null; public void init(ServletConfig config) throws ServletException { super.init(config); Context ctx = null; try { ctx = new InitialContext(); testDS = (javax.sql.DataSource)ctx.lookup(“jdbc/testDS”); } catch(NamingException ne) { … Continue reading

Posted in 技术 | Tagged , | Leave a comment

用Jsp实现本地文件共享及下载

Java.io包给我们提供了一个File类。借此类我们可以轻松地完成文件的列表获取文件信息等。 这里我以一个简单的音乐网站为例子,说明本地文件共享及提供下载的Jsp解决方法。 整个网站仅有两个页面,一个是logo.jsp,是页面的头部,一个是 index.jsp,负责完百所有文件列表显示等工作的。 下面是logo.jsp的代码: <%@ page contentType=”text/html; charset=gb2312″ language=”java” import=”java.sql.*” errorPage=”” %> <html> <head> <title>Wellcome to my music house</title> <style type=”text/css”> <!– .style8 {color: #FFFFFF} –> </style> <script language=”JavaScript” type=”text/JavaScript”> <!– function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; … Continue reading

Posted in 技术 | Tagged , , | Leave a comment