概述 为了提高开发效率,减少重复的页面多次开发,提高系统的可配置性和代码的可复用性,也是为了展示struts、hibernate框架,设计原则是降低显示逻辑和数据的耦合,达到显示逻辑和数据完全分离,即相同的数据使用不同的显示逻辑,无须修改显示逻辑,只需置换不同的显示模版即可。 实现机制 其中Sturts Action是具体的需要调用列表的Action类,TempDataMap类是具体的列表数据的封装类,TempData类是具体的表记录类,即TempDataMap来适配TempData,把表记录适配成我们需要的列表显示类。 调用示例: Action: //获取数据库数据 listRowCount = query.findPayItemByParam(paramInfo,paramF...
文件操作是网站编程的重要内容之一,asp关于文件操作讨论的已经很多了,让我们来看看jsp中是如何实现的。 这里用到了两个文件,一个jsp文件一个javabean文件,通过jsp中调用javabean可以轻松追加数据到文本文件,如果大家读了上写入篇的话,会发现这篇文章同上一篇有很多相似之处,读起来也很容易了。 注意请放置一个文本文件afile.txt到web根目录的test目录下,以便程序追加数据,javabean文件编译后将class文件放到对应的class目录下(tomcat环境)。 writeAppend.jsp <html> <head> <title>追加数据</title> </head> <body bgcolor="#000000">...
文件操作是网站编程的重要内容之一,asp关于文件操作讨论的已经很多了,让我们来看看jsp中是如何实现的。 这里用到了两个文件,一个jsp文件一个javabean文件,通过jsp中调用javabean可以轻松写文本文件,注意请建立一个test目录到web根目录下,程序将会建立一个afile.txt文件,javabean文件编译后将class文件放到对应的class目录下(tomcat环境)。 有了在jsp下读取和写入文件的方法,要做出一个简单的计数器来相信不是一件困难的事情了,大家可以尝试一下:) WriteOver.Jsp <html> <head> <title>写一个文件</title> </head> <body bgcolor=&qu...
这里用到了两个文件,一个jsp文件一个javabean文件,通过jsp中调用javabean可以轻松读取文本文件,注意请放置一个文本文件afile.txt到web根目录的test目录下,javabean文件编译后将class文件放到对应的class目录下(tomcat环境)。 Read.jsp <html> <head> <title>读取一个文件</title> </head> <body bgcolor="#000000"> <%--调用javabean --%> <jsp:useBean id="reader" class="DelimitedDataFile" scope="request"> <jsp:setProperty name="reader&qu...
使用JSP大约有下列三种跳转方式: 1. response.sendRedirect(); 2. response.setHeader("Location",""); 3. <jsp:forward page="" /> 经过试验得到下面的一些规则: 一. response.sendRedirect() 此语句前不允许有out.flush(),如果有,会有异常: java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client. at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558) ... 跳转后浏览器地址栏变化...
使用JSP执行Shell并返回结果。 jsp: String cmd = " /opt/test.sh 2 3333"; try { String outStr = ""; // 执行CMD; Process p = Runtime.getRunt...
实现方法一 applet实现页面是rmb.jsp,此页面是通过applet来实现人民币小写转换成大写的。此页面有三个变量需要在载入classes的时候进行初始化: <applet type="applet" id="myApplet" codebase = "." name="TestApplet" align="middle" code="lqh.rmb.Applicate.Rmb.class" width="560" height="25"> <param name="RGB_Back" value="241|247|251"> <param name="RGB_Fore" value="255|0|0"/> <para...
Imaging_ToWeb.jsp <%@ page autoFlush="false" import="java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*"%> <% String ImageStr = request.getParameter("ID_Text"); if(ImageStr==null || ImageStr.equals("")) { response.setContentType("text/html; charset=gb2312"); %> <HTML> <HEAD> <title>H...
你时常被客户抱怨JSP页面响应速度很慢吗?你想过当客户访问次数剧增时,你的WEB应用能承受日益增加的访问量吗?本文讲述了调整JSP和servlet的一些非常实用的方法,它可使你的servlet和JSP页面响应更快,扩展性更强。而且在用户数增加的情况下,系统负载会呈现出平滑上长的趋势。在本文中,我将通过一些实际例子和配置方法使得你的应用程序的性能有出人意料的提升。其中,某些调优技术是在你的编程工作中实现的。而另一些技术是与应用服务器的配置相关的。在本文中,我们将详细地描述怎样通过调整servlet和JSP页面,来提高你的应用程序的总体性能。在阅读本文之前,假设你有基本的servlet和JSP的知识。 方法一:在servlet的init...
Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的同步问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线程同步的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题,对于这类随机性的问题调试难度也很大。 一、在Servlet/JSP中的几种变量类型 在编写Servlet/JSP程序时,对实例变量一定要小心使用。因为实例变量是非线程安全的。在Servlet/JSP中,变量可以归为下面的几类: 1. 类变量 request,re...
最近研究了jsp中作HTTP认证的问题,它的工作方式如下: 1、server发送一个要求认证代码401和一个头信息WWW-authenticate,激发browser弹出一个认证窗口 2、server取得browser送来的认证头"Authorization",它是加密的了,要用Base64方法解密,取得明文的用户名和密码 3、检查用户名和密码,根据结果传送不同的页面 以下是jsp的片断,你也可以把它做成include文件。和Base64的加解密的class源码。 如有兴趣可与我联系:unixboy@yeah.net <jsp:useBean id="base64"scope="page"class="Base64"/> <% if(request.getHeader("Authorization")==null){ response.setStatus(4...
在传统的JSP程序中,我们将HTML代码与Java代码混合在一起编写,这样虽然方便,但同时也导致页面难以维护,HTML开发人员和JSP开发人员负担加重,我们可以将这种传统的技术成为页面拉数据技术。怎样才能做到将HTML开发和JSP开发分离呢?答案就是使用Tag技术,通过使用Tag技术,我们就可以在页面程序中不出现JSP代码,在需要数据的地方,大家先约定好标签,然后由Tag的后台处理程序去替换这些标签,显示数据。我称这种技术叫做向页面推数据,页面只要定义好格式就行了。这样,我们可以让HTML开发人员专注于页面的外观,而Java程序员则不用理会页面显示,专注于后台程序,大大提高了程序的可维护性和方便性。便于各...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> DSTree </TITLE><META NAME="Author" CONTENT="sTarsjz@hotmail.com" ><style>body,td{font:12px verdana}#treeBox{background-color:#fffffa;}#treeBox .ec{margin:0 5 0 5;}#treeBox .hasItems{font-weight:bold;height:20px;padding:3 6 0 6;margin:2px;cursor:hand;color:#555555;border:1px&...
js获取可见元素的尺寸还是比较方便的,这个可以直接使用这个方法:function getDefaultStyle(obj,attribute){ // 返回最终样式函数,兼容IE和DOM,设置参数:元素对象、样式特性 return obj.currentStyle?obj.currentStyle[attribute]:document.defaultView.getComputedStyle(obj,false)[attribute]; }具体可以查看:http://www.css88.com/archives/625但是如果这个元素是隐藏(display:none)的,尺寸又是未知自适应的,哪有上面的方法就不行了!因为display:none的元素是没有物理尺寸的! 悲剧就这样发生了!幸好css中还有visibility:hidden,不可见属性,他和display:none最大的区别就是visibility:hidden有物理尺寸。有...
1.打开一个新窗口:window.open();为了便于父窗口操作子窗口可以为window.open()定义一个变量,例如:var opW = window.open(‘tests.html’,'popup’,'width=300,height=300′);这样要关闭子窗口可直接使用:opW.close();要操作子窗口元素,例如:opW.document.getElementById(“fartherWindowTxt”).innerHTML = “操作子窗口”;2.子窗口可以使用window.opener来引用父窗口:window.opener.document.getElementById(“fartherWindowTxt”).innerHTML=”子窗口操作父窗口!”;3.窗口关闭自身窗口可以使用:window.close();点击查看demo:http://www.css88.co...
一、父级窗口操作iframe里的domJS操作iframe里的dom可是使用contentWindow属性,contentWindow属性是指指定的frame或者iframe所在的window对象,在IE中iframe或者frame的contentWindow属性可以省略,但在Firefox中如果要对iframe对象进行编辑则,必须指定contentWindow属性,contentWindow属性支持所有主流浏览器。相关的还有一个contentDocument属性,这个属性是指指定的frame或者iframe所在的document对象,但是悲剧的是,ie6-ie7并不支持这个属性。ie6和ie7还可以使用document.frames["iframe Name"]或者document.frames["iframe ID"]来获取相当于contentWindow属性,而firefox和chrome并不支持...