ServletContext 被 Servlet 程序用来与 Web 容器通信。例如写日志,转发请求。每一个 Web
应用程序含有一个Context,被Web应用内的各个程序共享。因为Context可以用来保存资源并且共享,所以我所知道的
ServletContext 的最大应用是Web缓存----把不经常更改的内容读入内存,所以服务器响应请求的时候就不需要进行慢速的磁盘I/O了。
ServletContextListener 是 ServletContext 的监听者,如果 ServletContext
发生变化,如服务器启动时 ServletContext 被创建,服务器关闭时 ServletContext 将要被销毁。
在JSP
文件中,application 是 ServletContext 的实例,由JSP容器默认创建。Servlet 中调用
getServletContext()方法得到 ServletContext 的实例。
我们使用缓存的思路大概是:
服
务器启动时,ServletContextListener 的
contextInitialized()方法被调用,所以在里面创建好缓存。可以从文件中或者从数据库中读取取缓存内容生成类,用
ervletContext.setAttribute()方法将缓存类保存在 ServletContext 的实例中。
程
序使用 ServletContext.getAttribute()读取缓存。如果是 JSP,使用a
pplication.getAttribute()。如果是 Servlet,使用
......
一 前提
希望最新的纪录在开头给你的表建立查询:
表:mytable
查询:create or replace view as mytable_view from mytable order by id desc 其中,最好使用序列号create sequence mytable_sequence 来自动增加你的纪录id号
二 源程序
<%String sConn="你的连接"
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection(sConn,"你的用户名","密码");
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Statement stmtcount=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("select * from mytable_view");
String sqlcount="select count(*) from mytable_view";
ResultSet rscount=stmtcount.executeQuery(sqlcount);
int pageSi ......
一 前提
希望最新的纪录在开头给你的表建立查询:
表:mytable
查询:create or replace view as mytable_view from mytable order by id desc 其中,最好使用序列号create sequence mytable_sequence 来自动增加你的纪录id号
二 源程序
<%String sConn="你的连接"
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection(sConn,"你的用户名","密码");
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Statement stmtcount=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("select * from mytable_view");
String sqlcount="select count(*) from mytable_view";
ResultSet rscount=stmtcount.executeQuery(sqlcount);
int pageSi ......
JSP九种内置对像,不用定义可直接使用:request,请求对象;response,响应对象;pageContext,页面上下文对象;session,会话对象;application,应用程序对象;out,输出对象;config,配置对象;page,页面对象;exception,例外对象。
......
1、一、先提条件: 在web.xml中加以下语句(原因参考RESIN官方文档)
<servlet>
<servlet-name>SSIServlet</servlet-name>
<servlet-class>com.caucho.servlets.ssi.SSIServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SSIServlet</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>
二、使用方法: <!--#include virtual="inc.jsp" -->
三、如出现乱码问题,应该是外层*.shtml文件的编码方式跟内层的*.jsp文件的编码方式不一致导致的。 ......
windows Media Player 9.0网页播放器
(mp3.wma.wmv.asf)
以下图片为一般播mp3.wma文件时调用windows自带播放器windows Midia Player9.0所显示外观,非9.0版所显示的面板外观可能不同!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
代码简介:
width(播放器面板宽度)
height(播放器面板高度)
autostart(自动播放,“=1”或“=true”即是功能有效,“=0”即是手动播放)
loop(循环播放,“=2”即是循环播放两次,“=-1”或“=true”即是无限次循环播放)
可变值:false 或 0(手动开启);true 或 1(自动开启)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
(无文件信息显示)
银灰面板
<embed src="链接地址" width="300" height="45" loop="-1" autostart="true"></EMBED>
灰白面板
<embed style="FILTER: Gray()" src="链接地址" width="300" height="45" loop="-1" autostart="true"></EMBED>
棕色面板
<embed style="FILTER: invert()" src="链接地址" width=300 height=45 loop="-1" autostart="true"></EMBED>
黑色面板
<embed s ......
jQuery是目前一个很流行的js框架,它也提供了对ajax很好的支持。使用ajax异步请求数据时,如果服务器返回的一个列表数据,通常的做法是把列表数据转换成json格式的数据,然后返回到页面,使用jQuery进行解析并用表格来显示,这要求你对javascript解析json很熟透。
我在这里提供一种投机取巧的做法,使用jQuery发送异步请求给Servlet,Servlet仍然使用JSP渲染结果,最后由JSP返回html给客户端页面,客户端页面通过jQuery直接把数据显示在页面上。这样就可以在JSP页面上继续使用类似JSTL的标签库来完成数据的显示。具体示例如下:
1. 客户端发起请求和显示结果的页面: index.html
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>ajax直接显示jsp返回的数据</title>
<mce:script type="text/javascript" src="js/jquery-1.3.2.min.js" mce_src="js/jquery-1. ......