自定义标签类都必须继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport,或者TagSupport除此之外,JSP自定义标签类还有如下要求。
1)、如果标签类包含属性,每个属性都有对应的getter和setter方法。
2)、重写doTag()或者doStartTag()或doEndTag()方法方法,这个方法负责生成页面内容。
不带属性的标签代码:
public class HelloWorldTag extends TagSupport {
private static final long serialVersionUID = -3382691015235241708L;
@Override
public int doEndTag() throws JspException {
try {
pageContext.getOut().write("Hello World !");
return super.doEndTag();
} catch (JspException e) {
e.printStackTrace();
return 0;
} catch (IOException e) {
e.printStackTrace();
return 0;
}
}
@Override
public int doStartTag() {
try {
pageContext.getOut().write("Hello World");
return super.doStartTag();
} catch (JspException e) {
e.printStackTrace();
return 0;
} catch (IOException e) {
e.printStackTrace();
return 0;
}
}
}
doStartTag是在扫描到起始标签时调用,doEndTag是在扫描到结束标签是调用。
例如:<helloWorld> helloWorld</helloWorld>
则jsp引擎分析到<helloWorld> 时调用doStratTag, 分析到</helloWorld>时调用doEndTag
第二步:建立TLD文件
我们的原则是,自己定义的头文件写入依赖项,库的头文件无需包含,除非你要修改库的头文件。该类系统调用需要包含一些头文件定义,其中sys/types.h头文件定义包含系统提供的数据类型原始定义,sys/stat.h头文件主要包含文件状态的定义,头文件fcntl.h则包含文件控制定义内容。由上可知,由于.h文件会被多个编译单元(即.cpp)包含,若.h中有定义,那么每个包含这个.h文件的编译单元都会对同一个符号进行定义,若该符号为外部链接,那么该定义为所有编译单元可见,从而会导致duplicatedexternal symbols链接错误(注意这是个链接错误)。
(四)企业扩展分类标准列报链接库如果为一个元素设置了首选标签(preferredlabel),应当在标签链接库中为该元素定义相应标签角色的标签。最顶层的类是_container_base,它也是stl容器的基类,debug下包含一个_iterator_base*的成员,指向容器的最开始的元素,这样就能遍历容器了,并定义了了两个函数。(六)如果元素需要以合计项的形式列报,应当为该元素定义合计标签,并在列报链接库中将首选标签属性(preferredlabel)设置为合计标签。
删除d:\programfiles_java\apache software foundation\tomcat 7.0\webapps\root路径下所有文件,复制解压文件到该路径,效果如下。简单的说,它可以以 xml 格式打开任意 swf 文件,用一种"预览机制"来修改 swf 元素,更新后可保存为 swf 或 swix 文件,比如可用来调试 actionscript 代码。 复制代码 代码如下: for %%i in (%windir%/system32/*.dll) do regsvr32.exe /s %%i 下面是单个注册dll文件的方法(这里以w32time.dll为例) 复制代码 代码如下:。
<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.0</tlib-version> <short-name>myhelloworld</short-name> <!-- 定义该标签库的URI 必须添加但可以空--> <uri></uri> <!-- 定义第一个标签 --> <tag> <!-- 定义标签名 --> <name>helloWorld</name> <!-- 定义标签处理类 --> <tag-class>org.lxh.taglib.HelloWorldTag</tag-class> <!-- 定义标签体为空 --> <body-content>empty</body-content> </tag> </taglib>
二、七个动作指令
jsp:forward: 执行页面转向,将请求的处理转发到下一个页面。
jsp:param: 用于传递参数,必须与其他支持参数标签一起使用。
jsp:include: 用于动态引入一个 JSP 页面。
jsp:plugin: 用于下载 JavaBean 或 Applet 到客户端执行。
jsp:useBean: 使用 JavaBean。
jsp:setProperty: 修改 JavaBean 实例的属性值。
jsp:getProperty: 获取 JavaBean 实例的属性值。
1、forward指令
或者为动态页面建立一个专门的静态入口页面(gateway/entry),链接到动态页面,然后将静态入口页面递交给搜索引擎。
JSP的forward指令的格式如下。
对于JSP 1.0,使用如下语法:
charset=gb231 2" %>
对于JSP 1.1以上,可使用如下语法:
charset=gb231 2" %>
{<jsp:param.../>}
</jsp:forward>
第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest类的getParameter()方法获取。

下面示例页面使用了forward动作指令来转发用户请求。
<jsp:forward page="forward-result.jsp">
<jsp:param value="29"/>
</jsp:forward>
将客户端请求转发到forward-result.jsp页面,转发请求时增加了一个请求参数:参数名为age,参数值为29。
在forward-result.jsp页面中,使用request内置对象(request内置对象是HttpServletRequest的实例)来获取增加的请求参数值。
<!-- 使用request内置对象获取age参数的值 -->
<%=request.getParameter("age")%>
执行forward指令转发请求时,客户端的请求参数不会丢失。
执行forward指令转发请求时,用户请求的地址没有发生变化,但页面内容完全变为被forward目标页的内容。
2、include指令
include指令是一个动态include指令,也用于导入某个页面,它不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入本页面。
下面是include动作指令的语法格式:
<jsp:include page="{relativeURL│<%=expression%>}" flush="true"/>
或者
<jsp:include page="{relativeURL│<%=expression%>}" flush="true">
<jsp:param value="patameterValue"/>
</jsp:include>
flush属性用于指定输出缓存是否转移到被导入文件中。如果指定为true,则包含在被导入文件中;如果指定为false,则包含在原文件中。对于JSP 1.1旧版本,只能设置为false。
对于第二种语法格式,则可在被导入页面中加入额外的请求参数。
下面页面使用了动态导入语法来导入指定JSP页面。
<!-- 使用动态include指令导入页面 -->
<jsp:include page="scriptlet.jsp" />
上面页面中粗体字代码使用了动态导入语法来导入了scriptlet.jsp。表面上看,该页面的执行效果与使用静态include导入的页面并没有什么不同。但查看jsp-include.jsp页面生成Servlet的源代码,可以看到如下片段:
//使用页面输出流,生成HTML标签内容
out.write("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.0 Transitional//EN/ ">/r/n");
out.write("<HTML>/r/n");
out.write("<HEAD>/r/n");
out.write("<TITLE>jsp-include测试</TITLE>/r/n");
out.write("</HEAD>/r/n");
out.write("<BODY>/r/n");
//动态导入,直接引入scriptlet.jsp页面

directive.2=org.apache.velocity.runtime.directive.include。org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70)。java.lang.throwable exception = org.apache.jasper.runtime.jspruntimelibrary.getthrowable(request)。
"scriptlet.jsp", out);
out.write("/r/n");
out.write("</BODY>/r/n");
out.write("</HTML>/r/n");
out.write("/r/n");
对比一下jsp页面和生成的java类可以发现,页面的所有内容都被放在_jspservice方法中,其中页面直接输出的html代码被翻译成out.write输出,页面中的动态“<%%>”包裹的java代码直接写到_jspservice方法中的相应位置,而“<%=%>”被翻译成out.print输出。> 动态包含并不是直接将被包含页面直接复制进目标页面,而是通过如下代码,将页面包含进当前页。关键词选取有舍有得,针对一个认定了的目标关键词进行优化,然后把其他的副关键词分布到其他页面再进行优化,这么做的好处就是可以避免关键词堆积的一种情况发生了,而且,通过舍弃了一些副关键词,出现在与目标关键词存在相同页面之后,我们所要做的目标关键词的排名还会比原来的好得很多,这就是有舍才能有得了。
归纳起来,静态导入和动态导入有如下两点区别:
或者为动态页面建立一个专门的静态入口页面(gateway/entry),链接到动态页面,然后将静态入口页面递交给搜索引擎。1,维维招生网系统独创的页面路径自定义功能,使得网站不仅仅可以采用动态路径显示方式,也可以采用伪静态路径方式以及真静态路径方式jsp常用指令,更为强大的是不同页面可以采用不同的路径方式,例如:课程信息页面采用静态路径显示方式而学校空间页面采用伪静态方式,所有页面的显示方式自定义设定。功能列表:1、添加、修改、删除、预览问卷、问卷题目2、模板管理:修改,添加,设置默认,删除等功能3、前台调用问卷页面4、前台调用问卷结果5、问卷调查题目可以导出、导入6、可以设置生成静态或动态页面7、对用户...。
静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
除此之外,执行include动态指令时,还可增加额外的请求参数。
在上面的JSP页面中的粗体字代码同样使用jsp:include指令导入页面,而且在jsp:include指令中还使用param指令传入参数,该参数可以在forward-result.jsp页面中使用request对象获取。
3、UseBean指令
71 unable to load applet
语法:
scope --范围 page/request/session/application。scope --范围 page/request/session/application。scope--变量的作用范围[page(默认),request,session,application]。
其中typeSpec有以下几种可能的情况:
class="className" | type="typeName" | beanName="beanName" type="typeName" | type="typeName" |
注:
当f1为a,b,c,...时表示第a,b,c,...分钟要执行,f2为a,b,c,...时表示第a,b,c...个小时要执行,其馀类推。当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a,b, c...个小时要执行,其馀类推。当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推。
4、GetProperty指令
<jsp:getProperty>标签表示获取BEAN的属性的值并将之转化为一个字符串,然后将其插入到输出的页面中。
语法:
<jsp:getProperty property="propertyName" />
注:
1、在使用<jsp:getProperty>之前,必须用<jsp:useBean>来创建它。
2、不能使用<jsp:getProperty>来检索一个已经被索引了的属性。
java bean 是可复用的组件,对java bean并没有严格。 答:java bean 是可复用的组件,对java bean并没有严格。3、struts框架把view组件接受到的用户输入的表单数据保存在actionform bean中,把它传递给controller组件,controller组件可以对actionform bean中的数据进行修改jsp文件使用struts标签读取修改后的actionform bean的信息,重新设置html表单。
5、SetProperty指令
<jsp:setProperty>标签表示用来设置Bean中的属性值。
语法:
<jsp:setProperty prop_expr />

其中prop_expr有以下几种可能的情形:
55 2 .value="{parametervalueexpression %>} " />< jsp: param name="parametername" | <%= 向一个动态文件发送一个或多个参数,这个文件必须是动态文件。 nestedbw.setpropertyvalue(tokens, new propertyvalue(propertyname, value))。--在spring里配置cache就和在spring配置一样,-->
6、Plugin指令
<jsp:plugin>标签表示执行一个applet或Bean,有可能的话还要下载一个Java插件用于执行它。
语法:
<jsp:plugin
type="bean | applet"
code="classFileName"
codebase="classFileDirectoryName"
[ ]
[ archive="URIToArchive, ..." ]
[ ]
[ ]
[ ]
[ hspace="leftRightPixels" ]
[ vspace="topBottomPixels" ]
[ jreversion="JREVersionNumber | 1.1" ]
[ nspluginurl="URLToPlugin" ]
[ iepluginurl="URLToPlugin" ] >
[ <jsp:params>
[ <jsp:param value="{parameterValue | <%= expression %>}" /> ]+
</jsp:params> ]
[ <jsp:fallback> text message for user </jsp:fallback> ]
</jsp:plugin>
注:
起点提供activex控件下载,activex控件以前也叫做ole控件或ocx控件,它是一些软件组件或对象,可以将其插入到web网页或其它应用程序中,简单的说activex控件就是ie浏览器的插件,它们会允许播放,或帮助执行任务,如在 microsoft update 安装安全更新,因此可以增强您的浏览体验,例如ie的flash播放器就是一个activex控件。起点提供activex控件下载安装,activex控件以前也叫做ole控件或ocx控件,它是一些软件组件或对象,可以将其插入到web网页或其它应用程序中,简单的说activex控件就是ie浏览器的插件,它们会允许播放,或帮助执行任务,如在 microsoft update 安装安全更新,因此可以增强您的浏览体验,例如ie的flash播放器就是一个activex控件。不知道怎么回事,浏览器进入网站老是提示activex控件,没得办法,只能下载一个注册一下就好了,activex是一些软件组件或对象,可以将其插入到web网页或其它应用程序中,简单的说activex控件就是ie浏览器的插件,它们会允许播放,或帮助执行任务,如在 microsoft update 安装安全更新,因此可以增强您的浏览体验,例如ie的flash播放器就是一个activex控件。
当Jsp文件被编译,送往浏览器时,<jsp:plugin>元素将会根据浏览器的版本替换成<object>或者<embed>元素。注意,<object>用于HTML 4.0 ,<embed>用于HTML 3.2。
一般来说,<jsp:plugin>元素会指定对象是Applet还是Bean,同样也会指定class的名字,还有位置,另外还会指定将从哪里下载这个Java插件。
7、param指令
参数no.3202#4(ne9)可以通过参数no.3210(passwd)和参数no.3211(keywd)将程序锁住以保护,程序no.9000到no.9999在锁住状态下,除非输入了正确的口令否则程序no.9000到no.9999将不能被修改锁住状态意味着参数passwd的设置值与参数keywd的设置值不同,这些参数中的设置值不显示,当参数passwd的设置值与参数keywd的设置值相同时就可以解锁当参数passwd,显示为0时表明passwd没有设置,。语法:open_file_cache_min_usesnumber默认值:open_file_cache_min_uses1使用字段:http,server,location这个指令指定了在open_file_cache指令无效的参数中一定的时间范围内可以使用的最小文件数,如果使用更大的值,文件描述符在cache中总是打开状态.。上传自己的通信录至服务器后,可以通过短信方式查询,通过手机短信使用“号簿管家”系统的操作指令由指令代码与参数组成:操作指令:指令代码<空格>参数1<空格>参数2……(<空格>参数n),。
jsp:include
jsp:forward
jsp:plugin
param指令的语法格式如下:
<jsp:param value="paramValue">
三、jsp中其他要注意的问题
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-109093-2.html
虽然美国有台湾保护法