博文

在Servlet与JSP中取得当前文件所在的相对路径与绝对路径(2006-02-25 16:06:00)

摘要:<%@   page   contentType="text/html;charset=GBK"%>
<%@   page   import="java.io.*"   %>
<%
    //在Servlet与JSP中取得当前文件所在的相对路径与绝对路径
   
    //JSP中

    out.println("根目录所对应的绝对路径:"   +   request.getRequestURI()   +   "<br/>");
   
    String   strPathFile   =   application.getRealPath(request.getRequestURI());
    out.println("文件的绝对路径:"   +   strPathFile+   "<br/>");
out.println(application.getRealPath(request.getRequestURI()));
    String   strDirPath   =   new   File(application.getRealPath(request.getRequestURI())).getParent();
    out.println("目录的绝对路径:"   +   strDirPath   +   "<br/>");
%>

    //Servlet中
    //JSP中的application对象就是Servlet中的ServerContext,所以在Servlet中是如此获得
 ......

阅读全文(3058) | 评论:0

【小技巧】一个判断session是否过期的小技巧(2006-02-25 16:04:00)

摘要:前一段时间有好几个问题,提到怎么判断session是否过期。
接触jspo已经很久了,但是还真没有想过这个问题,当时也就没有找到一个满意的答案给人家。
当时,我提到一个方法,就是实现HttpSessionListener接口,然后在sessionDestroyed()方法中执行一些操作,表示session要过期了,因为这个方法是session.invalidate()之前监听器调用的方法。这个判断的方法显然不能让人满意。
我当时问了些人,但是也没有得到一个准确的答案。
正好偶然间看到,request.getSeesion(boolean)方法,一下子让我恍然大悟。这个方法里面传了一个boolean值,这个值如果是true,那么如果当前的request的session不可用,那么就创建新的会话,如果存在就返回当前的会话。如果参数是false,那么在request的当前会话不存在的时候就返回null。
这样我们就可以很容易的联想到这个所谓的request的当前会话是否存在和session过期的联系,所以我们就可以“近似地”认为session不存在就是session过期了,那么我们就可以很容易地判断session是否过期了。方法如下:
if(request.getSession(false)==null)
      System.out.println("Session   has   been   invalidated!");
else
      System.out.println("Session   is   active!");

可能大家注意到我上面有一个“近似地”字眼,也就是说存在特别情况。
这个特殊情况就是第一次请求还没有创建会话的时候,那么用这个方法返回的仍然是null,原因我想大家应该是显然的。
......

阅读全文(2707) | 评论:0

JSP中如何比较时间(2006-02-25 15:56:00)

摘要:提问:
我有两个字符型变量

String a="09:10:00"
String b="08:05:40"

我想将其转化成时间型,进行比较大小

如何办?

回答:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss"); Date date1 = sdf.parse("09:10:00");
Date date2 = sdf.parse("08:05:40"); System.out.println(date1);
System.out.println(date2); boolean isAfter = date1.after(date2);
System.out.println( isAfter );......

阅读全文(4162) | 评论:0

把ASP编写成DLL组件(2006-02-25 15:44:00)

摘要:服务器端组件
  首先,服务器端的组件要有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用.而且只能在IE上有用.但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作.因此,所有的浏览器都能享用,它依靠的是服务器而不是浏览器.
  当IIS被请求执行一个ASP程序,它首先会在ASP文件中找到 <% %>标签之间的代码,并且执行它(也可以是<script runat=server></script>之间的代码).如果这个ASP程序在先前被调用过,那么它就会用内存中的编译过的程序来向用户返回HTML代码,如果没有,那么它就重新编译.这里ASP就比CGI多一点速度优势,因为CGI是每一个请求都使用一个线程.这样就大大消耗了服务器的资源.
  想不想你写的程序自己就能在IIS运行!?!现在你就行了!使用VB5(当然现在是VB6了),你就能建立Dynamic Linked Libraries (DLL 文件),它能在IIS上直接运行(如果有asp文件来请求的话).
系统和软件的要求
  你需要一个32位的操作系统来运行ASP.当然你也得安装IIS或PWS.我们下面的程序是在windows95+PWS+VB5的环境下开发的.
我们开始吧
  启动你的VB,选择ActiveX图标.这个图标可以在新建工程找到!VB会提供一个默认的工程名(project1)和类名(class1).我们会将这两个名字都改掉.在改名之前,请首先确认我们拥有Microsoft Active Server Pages Object Library,它在我们的程序非常有用.从菜单中选择"工程",然后在其中选择"引用",就会出现"引用"窗口
从中选择Microsoft Active Server Pages Object Library.

给工程和类命名
  现在我们来根据自己的爱好来为project1和class1来命名吧!给它们命名也是很重要的,我们以后会用这个工程名和类名来创建这个组件的实例!后面详细介绍.
  如何改名,我就不想多说了!
我们的工程名改为Exmaple,类名为Helloword
怎样使用工程和类
  现在我们......

阅读全文(4230) | 评论:0

Java中的打印服务(2006-02-25 15:42:00)

摘要:1 .前言 在我们的实际工作中,经常需要实现打印功能。但由于历史原因,Java提供的打印功能一直都比较弱。实际上最初的jdk根本不支持打印,直到jdk1.1才引入了很轻量的打印支持。所以,在以前用Java/Applet/JSP/Servlet设计的程序中,较复杂的打印都是通过调用ActiveX/OCX控件或者VB/VC程序来实现的,非常麻烦。实际上,SUN公司也一直致力于Java打印功能的完善,而Java2平台则终于有了一个健壮的打印模式的开端,该打印模式与Java2D图形包充分结合成一体。更令人鼓舞的是,新发布的jdk1.4则提供了一套完整的"Java 打印服务 API" (Java Print Service API),它对已有的打印功能是积极的补充。利用它,我们可以实现大部分实际应用需求,包括打印文字、图形、文件及打印预览等等。本文将通过一个具体的程序实例来说明如何设计Java打印程序以实现这些功能,并对不同版本的实现方法进行分析比较。希望大家能从中获取一些有益的提示。
2 .Java中的打印

2.1 Java的打印API

Java的打印API主要存在于java.awt.print包中。而jdk1.4新增的类则主要存在于javax.print包及其相应的子包javax.print.event和javax.print.attribute中。其中javax.print包中主要包含打印服务的相关类,而javax.print.event则包含打印事件的相关定义,javax.print.attribute则包括打印服务的可用属性列表等。

2.2 如何实现打印

要产生一个打印,至少需要考虑两条:

需要一个打印服务对象。这可通过三种方式实现:在jdk1.4之前的版本,必须要实现java.awt.print.Printable接口或通过Toolkit.getDefaultToolkit().getPrintJob来获取打印服务对象;在jdk1.4中则还可以通过javax.print.PrintSerivceLookup来查找定位一个打印服务对象。
需要开始一个打印工作。这也有几种实现方法:在jdk1.4之前可以通过java.awt.print.PrintJob(jdk1.1提供......

阅读全文(5084) | 评论:1

在B/S开发中经常用到的javaScript技术(2006-02-25 15:35:00)

摘要:在B/S开发中经常用到的javaScript技术
一、验证类
1、数字验证内
1.1 整数
/^(-|+)?d+$/  不可以为空
/^[-+]?d*$/ 可以为空
1.2 大于0的整数 (用于传来的ID的验证)
/^d+$/
1.3 负整数的验证
/^-d+$/
1.4 整数不能大于iMax
根据上面的正则可以写出。
1.5 整数不能小于iMin
根据上面的正则可以写出。
2、时间类
2.1 短时间,形如 (13:04:06)
代码内容
function isTime(str)
{
var a = str.match(/^(d{1,2})(:)?(d{1,2})(d{1,2})$/);
if (a == null) {alert(’输入的参数不是时间格式’); return false;}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
alert("时间格式不对");
return false
}
return true;
}

2.2 短日期,形如 (2003-12-05)
代码内容
function strDateTime(str)
{
var r = str.match(/^(d{1,4})(-|/)(d{1,2})(d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
2.3 长时间,形如 (2003-12-05 13:04:06)
代码内容
function strDateTime(str)
{
var reg = /^(d{1,4})(-|/)(d{1,2})(d{1,2}) (d{1,2}):(......

阅读全文(4051) | 评论:0

javascript40种网页常用小技巧(2006-02-25 15:33:00)

摘要:1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table

2. <body onselectstart="return false"> 取消选取、防止复制

3. onpaste="return false" 不准粘贴

4. oncopy="return false;" oncut="return false;" 防止复制

5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标

7. <input style="ime-mode:disabled"> 关闭输入法

8. 永远都会带着框架
代码内容
<script language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></script>
9. 防止被人frame
代码内容
<SCRIPT LANGUAGE=JAVASCRIPT><!--
if (top.location != self.location)top.location=self.location;
//......

阅读全文(2455) | 评论:0

win2000下jsp平台搭建的简单过程(2006-02-25 15:28:00)

摘要:现在我将jsp平台搭建的过程。
 
  我采用的是windows2000 professional+JDK+TOMCAT
 
  JSP平台的搭建:
 
   1、JDK下载和安装:
 
 第一步:进入SUN公司JAVA的JDK 1.4版本免费安装程序,下载主页地址:
 
   http://java.sun.com/j2se/1.4/download.html
 
   单击download,进入下载协议,选择接受协议。
 
 第二步:JDK安装程序:我安装的是:
   j2sdk-1_3_1_07-windows-i586.exe
 
 第三步:安装jdk的目录,我设为d:\jdk
 
2、TOMCAT下载和安装:
 
  第一步:登陆 http://jakarta-sun.com
 
  第二步:下载tomcat程序。
 
  我安装的是:jakarta-tomcat-4.1.18.exe
 
  第三步:在安装tomcat时,要选择custom形式
 
  第四步:安装tomcat时,目录设为d:\tomcat
 
3、在安装完jdk和tomcat后,要设置“控制面板”中的系统特性中的环境变量:
 
增加变量CLASSPATH,它里面的内容为:
 
  c:\jdk\lib\tools.jar;c:\tomcat\common\lib\servlet.jar
 
增加变量JAVA_HOME,内容为:(这个参数只有操作系统是windows 2000时设置,如果是windows 98时,则不用)
  c:\jdk
 
增加PATH的内容为:......

阅读全文(3307) | 评论:0

SQL Server 2000 JDBC驱动的完整安装及测试说明(2006-02-25 15:27:00)

摘要:一、下载SQLSERVER2000的jdbc驱动程序。 在微软站点就有这个驱动程序: Window操作系统 http://www.uncj.com/upload/files/ms_jdbc_setup.exe http://download.microsoft.com/download/
3/0/f/30ff65d3-a84b-4b8a-a570-27366b2271d8/setup.exe   Unix操作系统 Mssqlserver.tar http://download.microsoft.com/download/
3/0/f/30ff65d3-a84b-4b8a-a570-27366b2271d8/mssqlserver.tar
二、安装JDBC 执行ms_jdbc_setup.exe可执行文件,一切只需要点击下一步,至到出现finish按钮,完成安装。 注: (1) ms_JDBC_setup默认安装路径为:
c:\Program Files\Microsoft SQL Server 2000 Driver for JDBC (2)此版(Version 2.2.0022)本仅支持Microsoft SQL Server 2000 Driver for JDBC (3)安装目录\lib\下的三个jar文件即是我们要的JDBC驱动核心 msbase.jar mssqlserver.jar msutil.jar   三、将以上(3)中指的三个jar文件加入到环境变量中去 classpath: d:\webserver\lib\msbase.jar;
d:\webserver\lib\mssqlserver.jar;d:\webserver\lib\msutil.jar 注:也可以省事的将以上三个文件拷贝至你的jvm机所在的JAVA_HOME\jre\lib\ext目录下,不过不建议这么做。   四、测试 jsp文件: 您的第一个字段内容为: 您的第二个字段内容为:   五、注意事项 1. 要保证你的Sql服务是启动状态 2. 在Sql 的管理器中能够使用sa或其它用户正常登录;(有......

阅读全文(4515) | 评论:0

JSP连接SQL Server 2000系统配置(2006-02-25 15:21:00)

摘要:第一步:----安装J2SDK:   到SUN官方站点(http://java.sun.com)下载J2SDK的安装文件:j2sdk-1_4_2_04-windows-i586-p.exe,下载之后安装好J2SDK;安装完之后,设置环境变量:我的电脑---属性---高级---环境变量;   选择---系统变量(S):
 
  设置JAVA_HOME环境变量:   单击---新建,在变量名中输入:JAVA_HOME   在变量值中输入:D:\Java   (假设J2SDK安装在目录D:\Java下,反正就是J2SDK的安装目录。)   然后---确定,到此已经设置好JAVA_HOME环境变量。   设置CLASSPATH环境变量:   单击---新建,在变量名中输入:CLASSPATH   在变量值中输入:D:\Java\bin;.;D:\Java\lib;D:\Java\lib\dt.jar;D:\Java\lib\tools.jar   (中间的点号“.”和分号“;”必不可少。)   然后---确定,到此已经设置好CLASSPATH环境变量。   设置PATH环境变量:   单击---新建,在变量名中输入:PATH   在变量值中输入:D:\Java;.;D:\Java\bin   (中间的点号“.”和分号“;”必不可少。)   然后---确定,到此已经设置好JAVA_HOME环境变量。   三个环境变量设置好后,写一个简单的java程序来测试J2SDK是否已安装成功:   在D:\下新建一个目录test;然后写如下程序: 
   public class Test { 
  public static void main(String args[]) { 
    System.out.println("This is a test program."); 
   } 
  }   将上面的这段程序保存为文件名为Test.java的文件,保存在目录D:\test下。   然后打开命令提示符窗口,cd到你的test目录,然后键入下面的命令       javac Test.java 
    java Test    此时如果看到打印出来This is a te......

阅读全文(4003) | 评论:0