??xml version="1.0" encoding="utf-8" standalone="yes"?>10g的数据库导成9i?/a>
在导出前, q接到SYS用户, q行以下SQL:
CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
UNION ALL
SELECT * FROM SYS.EXU9TNEB
导出完成后,再复原这个viewQ定义可以通过user_views看到Q?对于oracle9i和oracle10gq个定义都相同:
CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
]]>ps.setCharacterStream(4, new StringReader("String", "String".length());
rs.getString("clob");
jdk 1.6以后
可以使用
Clob clob=connetion.createClob();
Writer wr=clob.setCharacterStream(0);
//对wr写入信息
ps.setClob(clob);
]]>
cron是一个linux?的定时执行工?Q可以在无需人工q预的情况下q行作业。由于Cron 是Linux 的内|?服务Q但它不自动hQ可以用以下的方?启动、关?q个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
你也可以这个服务在pȝ启动的时候自动启?
?etc /rc.d/rc.local q个脚本的末֊?
/sbin/service crond start
现在C ronq个服务已经在进E里面了Q我们就可以用这个服务了QCron服务提供以下几种接口供大家?
1.直接用crontab 命o~辑
cron服务提供crontab命o来设定cron服务的,以下是这个命令的一些参?与说?
crontab -u //讑֮某个用户的cron服务Q一般root 用户在执?q个命o的时候需要此参数
crontab -l //列出某个用户cron服务的详l内?
crontab -r //删除 没个用户的cron服务
crontab -e //~辑某个用户的cron服务
比如说root查看自己的cron讄:crontab -u root -l
再例如,root惛_除fred的cron讄:crontab -u fred -r
在编辑cron服务Ӟ~辑的内Ҏ一些格式和U定Q输?crontab -u root -e
q入vi ~辑模式 Q编辑的内容一定要W合下面的格?*/1 * * * * ls >> /tmp/ls.tx t
d调度的crond帔R命o
crond 是linux用来定期执行E序的命令。当安装完成操作pȝ之后Q默认便会启动此d调度命o。crond命o每分Z定期查是否有要执行的工作Q如果有要执行的工作便会自动执行该工作?/span>
1、linuxd调度的工作主要分Z下两c:
*pȝ执行的工作:pȝ周期性所要执行的工作Q如备䆾pȝ数据、清理缓?br />
*个h执行的工作:某个用户定期要做的工作,例如每隔10分钟查邮件服务器是否有新信,q些工作可由每个用户自行讄?/span>
2.crontab命o选项:
-u指定一个用?
-l列出某个用户的Q务计?
-r删除某个用户的Q?
-e~辑某个用户的Q?/span>
3.cron文g语法:
?nbsp; 时 ?nbsp; ?nbsp; 星期 命o
0-59 0-23 1-31 1-12 0-6 command (取D?0表示周日一般一行对应一个Q?
4.C几个ҎW号的含?
"*"代表取D围内的数?
"/"代表"?,
"-"代表从某个数字到某个数字,
","分开几个L的数?/span>
一、Q务调度设|文件的写法
可用crontab -e命o来编?~辑的是/var/spool/cron下对应用Lcron文g,也可以直接修?etc/crontab文g
具体格式如下Q?br />
Minute Hour Day Month Dayofweek command
分钟 时 ?nbsp; ?nbsp; 天每星期 命o
每个字段代表的含义如下:
Minute 每个时的第几分钟执行该d
Hour 每天的第几个时执行该Q?br />
Day 每月的第几天执行该Q?br />
Month 每年的第几个月执行该d
DayOfWeek 每周的第几天执行该Q?br />
Command 指定要执行的E序
在这些字D里Q除?#8220;Command”是每ơ都必须指定的字D以外,其它字段皆ؓ可选字D,可视需要决定。对于不指定的字D,要用“*”来填补其位置?
举例如下Q?br />
5 * * * * ls 指定每小时的W?分钟执行一ơls命o
30 5 * * * ls 指定每天?5:30 执行ls命o
30 7 8 * * ls 指定每月8L7Q?0分执行ls命o
30 5 8 6 * ls 指定每年???Q?0执行ls命o
30 6 * * 0 ls 指定每星期日?:30执行ls命o [ 注:0表示星期天,1表示星期1Q以此类推,也可以用英文来表C,sun表示星期天,mon表示星期一{?]
30 3 10,20 * * ls 每月10号及20L3Q?0执行ls命o [注:“Q?#8221;用来q接多个不连l的时段 ]
25 8-11 * * * ls 每天8-11点的W?5分钟执行ls命o [注:“-”用来q接q箋的时D?]
*/15 * * * * ls ?5分钟执行一ơls命o [x个小时的W? 15 30 45 60分钟执行ls命o ]
30 6 */10 * * ls 每个月中Q每?0?:30执行一ơls命o[x月的1?1?1?1日是?Q?0执行一ơls命o?nbsp; ]
每天7Q?0以root w䆾执行/etc/cron.daily目录中的所有可执行文g
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示Q执行后面目录中的所有可执行文g?nbsp; ]
二、新增调度Q?/strong>
新增调度d可用两种ҎQ?br /> 1、在命o行输? crontab -e 然后d相应的Q务,wq存盘退出?br /> 2、直接编?etc/crontab 文gQ即vi /etc/crontabQ添加相应的d?/span>
三、查看调度Q?/strong>
crontab -l //列出当前的所有调度Q?br /> crontab -l -u jp //列出用户jp的所有调度Q?/span>
四、删除Q务调度工?/strong>
crontab -r //删除所有Q务调度工?/span>
五、Q务调度执行结果的转向
?Q每?Q?0执行ls命oQƈ把结果输出到/jp/test文g?br />
30 5 * * * ls >/jp/test 2>&1
注:2>&1 表示执行l果及错误信息?/span>
~辑/etc/crontab 文g配置cron
cron服务每分钟不仅要M?var/spool/cron内的所有文Ӟq需要读一?etc/crontab,因此我们配置q个文g也能q用cron服务做一些事情。用crontab配置是针Ҏ个用LQ而编?etc/crontab是针对系l的d。此文g的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误Q或者有数据输出Q数据作为邮件发l这个帐?nbsp;
HOME=/ //使用者运行的路径,q里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执?etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执?etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月L?etc/cron.monthly内的脚本
大家注意"run-parts"q个参数了,如果Lq个参数的话Q后面就可以写要q行的某个脚本名Q而不是文件夹名了
例如Q?nbsp; 1、在命o行输? crontab -e 然后d相应的Q务,wq存盘退出?br /> 2、直接编?etc/crontab 文gQ即vi /etc/crontabQ添加相应的d
11 2 21 10 * rm -rf /mnt/fb
函数 |
描述 |
fn:contains(string, substring) |
如果参数string中包含参数substringQ返回true |
fn:containsIgnoreCase(string, substring) |
如果参数string中包含参数substringQ忽略大写Q,q回true |
fn:endsWith(string, suffix) |
如果参数 string 以参数suffixl尾Q返回true |
fn:escapeXml(string) |
有Ҏ意义的XML (和HTML)转换为对应的XML character entity codeQƈq回 |
fn:indexOf(string, substring) |
q回参数substring在参数string中第一ơ出现的位置 |
fn:join(array, separator) |
一个给定的数组array用给定的间隔Wseparator串在一Pl成一个新的字W串q返回?/font> |
fn:length(item) |
q回参数item中包含元素的数量。参数Itemcd是数l、collection或者String。如果是Stringcd,q回值是String中的字符数?/font> |
fn:replace(string, before, after) |
q回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方Qƈq回替换后的l果 |
fn:split(string, separator) |
q回一个数l,以参数separator 为分割符分割参数stringQ分割后的每一部分是数组的一个元?/font> |
fn:startsWith(string, prefix) |
如果参数string以参数prefix开_q回true |
fn:substring(string, begin, end) |
q回参数string部分字符? 从参数begin开始到参数end位置Q包括end位置的字W?/font> |
fn:substringAfter(string, substring) |
q回参数substring在参数string中后面的那一部分字符?/font> |
fn:substringBefore(string, substring) |
q回参数substring在参数string中前面的那一部分字符?/font> |
fn:toLowerCase(string) |
参数string所有的字符变ؓ写Qƈ其q回 |
fn:toUpperCase(string) |
参数string所有的字符变ؓ大写Qƈ其q回 |
fn:trim(string) |
去除参数string 首尾的空|q将其返?/font> |
一、EL?
1.语法l构
${expression}
2.[]?q算W?
EL 提供.和[]两种q算W来存取数据?
当要存取的属性名UC包含一些特D字W,??{ƈ非字母或数字的符P׃定要使用 []。例如:
${user.My-Name}应当改ؓ${user["My-Name"] }
如果要动态取值时Q就可以用[]来做Q?无法做到动态取倹{例如:
${sessionScope.user[data]}中data 是一个变?
3.变量
EL存取变量数据的方法很单,例如Q?{username}。它的意思是取出某一范围中名UCؓusername的变量?
因ؓ我们q没有指定哪一个范围的usernameQ所以它会依序从Page、Request、Session、Application范围查找?
假如途中扑ֈusernameQ就直接回传Q不再l找下去Q但是假如全部的范围都没有找到时Q就回传null?
属性范围在EL中的名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
二、EL隐含对象
1.与范围有关的隐含对象
与范围有关的EL 隐含对象包含以下四个QpageScope、requestScope、sessionScope 和applicationScopeQ?
它们基本上就和JSP的pageContext、request、session和application一P
在EL中,q四个隐含对象只能用来取得范围属性|即getAttribute(String name)Q却不能取得其他相关信息?
例如Q我们要取得session中储存一个属性username的|可以利用下列ҎQ?
session.getAttribute("username") 取得username的|
在EL中则使用下列Ҏ
${sessionScope.username}
2.与输入有关的隐含对象
与输入有关的隐含对象有两个:param和paramValuesQ它们是EL中比较特别的隐含对象?
例如我们要取得用Lh参数Ӟ可以利用下列ҎQ?
request.getParameter(String name)
request.getParameterValues(String name)
在EL中则可以使用param和paramValues两者来取得数据?
${param.name}
${paramValues.name}
3.其他隐含对象
cookie
JSTLq没有提供设定cookie的动作,
例:要取得cookie中有一个设定名UCؓuserCountry的|可以使用${cookie.userCountry}来取得它?
header和headerValues
header 储存用户览器和服务端用来沟通的数据
例:要取得用h览器的版本,可以使用${header["User-Agent"]}?
另外在鲜机会下Q有可能同一标头名称拥有不同的|此时必须改ؓ使用headerValues 来取得这些倹{?
initParam
initParam取得讑֮web站点的环境参?Context)
例:一般的ҎString userid = (String)application.getInitParameter("userid");
可以使用 ${initParam.userid}来取得名UCؓuserid
pageContext
pageContext取得其他有关用户要求或页面的详细信息?
${pageContext.request.queryString} 取得h的参数字W串
${pageContext.request.requestURL} 取得h的URLQ但不包括请求之参数字符?
${pageContext.request.contextPath} 服务的web application 的名U?
${pageContext.request.method} 取得HTTP 的方?GET、POST)
${pageContext.request.protocol} 取得使用的协?HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser} 取得用户名称
${pageContext.request.remoteAddr } 取得用户的IP 地址
${pageContext.session.new} 判断session 是否为新?
${pageContext.session.id} 取得session 的ID
${pageContext.servletContext.serverInfo} 取得L端的服务信息
三、ELq算W?
1.术q算W有五个Q?????或div?或mod
2.关系q算W有六个Q?=或eq?=或ne?lt;或lt?gt;或gt?lt;=或le?gt;=或ge
3.逻辑q算W有三个Q?amp;&或and、||或or?或not
4.其它q算W有三个QEmptyq算W、条件运符?)q算W?
例:${empty param.name}?{A?B:C}?{A*(B+C)}
四、EL函数(functions)?
语法Qns:function( arg1, arg2, arg3 …. argN)
其中ns为前|名U?prefix)Q它必须和taglib 指o的前|名UC|?
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?
补充Q?
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
FOREACH:
<c:forEach items="${messages}"
var="item"
begin="0"
end="9"
step="1"
varStatus="var">
……
</c:forEach>
OUT:
<c:out value="/${logininfo.username}"/>
c:out>value 中的内容输出到当前位|,q里也就是把logininfo 对象?
username属性D出到面当前位置?
${……}是JSP2.0 中的Expression LanguageQELQ的语法。它定义了一个表辑ּQ?
其中的表辑ּ可以是一个常量(如上Q,也可以是一个具体的表达语句Q如forEach循环体中
的情况)。典型案例如下:
Ø ${logininfo.username}
q表明引用logininfo 对象的username 属性。我们可以通过“.”操作W引
用对象的属性,也可以用“[]”引用对象属性,?{logininfo[username]}
?{logininfo.username}辑ֈ了同L效果?
“[]”引用方式的意义在于,如果属性名中出CҎ字符Q如“.”或?#8220;-”Q?
此时必M?#8220;[]”获取属性g避免语法上的冲突Q系l开发时应尽量避?
q一现象的出玎ͼ?
与之{同的JSP Script大致如下Q?
LoginInfo logininfo =
(LoginInfo)session.getAttribute(“logininfo”);
String username = logininfo.getUsername();
可以看到QEL大大节省了编码量?
q里引出的另外一个问题就是,EL 从哪里扑ֈlogininfo 对象Q对?
${logininfo.username}q样的表辑ּ而言Q首先会从当前页面中L之前?
否定义了变量logininfoQ如果没有找到则依次到Request、Session?
Application 范围内寻找,直到扑ֈ为止。如果直到最后依然没有找到匹配的
变量Q则q回null.
如果我们需要指定变量的L范围Q可以在EL表达式中指定搜寻范围Q?
${pageScope.logininfo.username}
${requestScope.logininfo.username}
${sessionScope.logininfo.username}
${applicationScope.logininfo.username}
在Spring 中,所有逻辑处理单元q回的结果数据,都将作ؓAttribute 被放
|到HttpServletRequest 对象中返回(具体实现可参见Spring 源码?
org.springframework.web.servlet.view.InternalResourceView.
exposeModelAsRequestAttributesҎ的实C码)Q也是说Spring
MVC 中,l果数据对象默认都是requestScope。因此,在Spring MVC 中,
以下dҎ应慎用:
${sessionScope.logininfo.username}
${applicationScope.logininfo.username}
Ø ${1Q?}
l果辑ּ计算l果Q即整数??
Ø ${i>1}
如果变量值i>1的话Q将q回boolcdtrue。与上例比较Q可以发现EL会自
动根据表辑ּ计算l果q回不同的数据类型?
表达式的写法与java代码中的表达式编写方式大致相同?
IF / CHOOSE:
<c:if test="${var.index % 2 == 0}">
*
</c:if>
判定条g一般ؓ一个EL表达式?
<c:if>q没有提供else子句Q用的时候可能有些不便,此时我们可以通过<c:choose>
tag来达到类似的目的Q?
<c:choose>
<c:when test="${var.index % 2 == 0}">
*
</c:when>
<c:otherwise>
!
</c:otherwise>
</c:choose>
cMJava 中的switch 语句Q?lt;c:choose>提供了复杂判定条件下的简化处理手法。其
?lt;c:when>子句cMcase子句Q可以出现多ơ。上面的代码Q在奇数行时输出“*”P
而偶数行时输?#8220;!”?
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?
再补充:
1 EL表达式用${}表示,可用在所有的HTML和JSP标签?作用是代替JSP面中复杂的JAVA代码.
2 EL表达式可操作帔R 变量 和隐式对? 最常用?隐式对象?{param}?{paramValues}. ${param}表示q回h参数中单个字W串的? ${paramValues}表示q回h参数的一l?pageScope表示面范围的变?requestScope表示h对象的变? sessionScope表示会话范围内的变量.applicationScope表示应用范围的变?
3 <%@ page isELIgnored="true"%> 表示是否用EL语言,TRUE表示止.FALSE表示不禁?JSP2.0中默认的启用EL语言.
4 EL语言可显C?逻辑表达式如${true and false}l果是false 关系表达式如${5>6} l果是false 术表达式如 ${5+5} l果?0
5 EL中的变量搜烦范围?page request session application 点运符(.)?[ ]"都是表示获取变量的?区别是[ ]可以昄非词cȝ变量