使用标签控制页面逻辑案例:
1、 防止盗链<c:referer site=”” page=””>
Jsp页面的内容:<c:referer site=”http://localhost”page=”index.jsp”>
Tld文件的描述:<tag>
<name>referer</name>
<tag-class>com.hbsi.web.tag.RefererTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>site</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>page</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
标签处理器:public class RefererTag
extends SimpleTagSupport {
private String
site;
private String page;
public void setSite(String site) {
this.site = site;
}
public void setPage(String page) {
this.page = page;
}
@Override
public void doTag()
throws JspException, IOException {
// 获取request对象
JspContext jc = this.getJspContext();
PageContext pc = (PageContext) jc;
HttpServletRequest request = (HttpServletRequest) pc.getRequest();
HttpServletResponse response = (HttpServletResponse) pc.getResponse();
String referer = request.getHeader("referer");
if (referer ==
null || !referer.startsWith("http://localhost")) {
// 跳转到首页
//获取地址的完整路径
if (page.startsWith(request.getContextPath())) {
response.sendRedirect(page);
} else if (page.startsWith("/")) {//获取加/的路径
response.sendRedirect(request.getContextPath() + page);
} else {
//最不完整的路径
response.sendRedirect(request.getContextPath() + "/" + page);
}
// 不运行以下的代码
throw new SkipPageException();
}
}
}
2、条件选择<c:if test=””>
Jsp的页面:<%session.setAttribute("user","蛋蛋");%>
<c:if test="${user!=null}">
该回家了,蛋蛋!
</c:if>
Tld文件的描述:<tag>
<name>if</name>
<tag-class>com.hbsi.web.tag.IfTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
标签处理器:public class IfTag
extends SimpleTagSupport {
private boolean test;
public void setTest(boolean test) {
this.test = test;
}
@Override
public void doTag()
throws JspException, IOException {
if(test){
JspFragment jf=this.getJspBody();
jf.invoke(null);
}
}
}
分享到:
相关推荐
Struts2拦截器:需要配置action进行拦截。而且。有时候我们并不想让用户看到不改属于他操作的按钮。(sturts可以进行判断,但有写复杂) 使用jsp自定义标签的功能...可以控制页面中的每个元素,只需要一个类就能够实现
js控制页面字体大小! 很值得下载看看!资源免费,大家分享!!
Struts2标签库的组成 Struts2框架的标签库可以分为以下三类: 用户界面标签(UI标签):主要用来生成HTML元素的标签。...流程控制标签:主要包含用于实现分支,循环等流程控制的标签。 AJAX标签:用于支持Ajax效果
二、将以下CSS代码添加到你的主题的CSS代码中,CSS代码控制着标签块布局的显示效果 #Thinking{ position:relative; margin-bottom:10px; float:left; width:260px; height:245px; padding:5px; } #Thinking li {...
1.多种属性可编辑 2.标签按钮可回调控制页面 3.页面切换可控制对应标签变化
ViewPager+Fragment实现滑动控制底部Tab标签,点击标签控制ViewPager滑动。具体说明请见CSDN博客介绍https://blog.csdn.net/weimeig/article/details/80353381
资料内容为教程,介绍taglib_原理和实现;JSP自定义标签;JSP页面中自定义标签详解教程;java自定义标签开发;角色标签库;自定义标签帮助文档;自定义标签其它重要资料。
流程控制标签用于实现分支、循环等流程控制的标签,而数据访问标签用于输出 ValueStack 中的值,完成国际化等功能的。 Ajax 标签 Ajax 标签用于实现异步请求和处理的标签。Ajax 标签可以实现页面无刷新更新、实时...
"CSS 控制页面样式的4种方式和优先级问题" CSS 控制页面样式的四种方式是指在 HTML 页面中应用 CSS 样式的四种方法,它们分别是行内方式、内嵌方式、链接方式和导入方式。这些方式的应用可以使得页面样式变得丰富...
在HTML5中,经常会通过为video元素添加宽高的方式给视频预留一定的空间,这样浏览器在加载页面时就会预先确定视频的尺寸,为其保留合适的空间,使页面的布局不产生变化。 通过元素自身属性控制 例:加载一个视频并...
基于Vue的缓存组件,可以对页面进行缓存控制,适合用在带标签页的后台管理系统中。 解决问题: 切换标签页时,不需要刷新页面 关闭标签页后,重新打开,需要刷新页面 相比 keep-alive + vuex 解决方案有以下优势: ...
Chrome浏览器标签页之间的自动切换,解压后,通过扩展程序 加载已解压的扩展程序添加。之后右上角有插件图标,可以设置轮播秒数,点击开始结束按钮控制轮播
自己做项目需要,才去找的资源,一起学习!!
非用户标签:数据访问、逻辑控制等。 AJAX标签:支持AJAX技术。 用户界面标签又分两类: 表单标签:生成HTML页面的from元素 非表单标签:生成页面上的Tab、Tree等 非界面标签又分为数据访问标签和流程控制标签...
struts2 标签库使用说明.Struts2中通用标签可以分为二类:控制标签和数据标签。控制标签用于呈现页面时控制执行流程,数据标签用于访问值栈中的数据。
代码如下 _init_.py from flask import Flask, request, url_for, redirect, render_template app = Flask(__name__) @app.route('/') def index(): ...@app.route('/cool_form', methods=['GET', 'POST']) ...
文本、字体、字号、线条、行控制、超链接、图像相关标签 9. <b>:呈现粗体文本效果。 10. <i>:显示斜体文本效果。 11. : 可插入一个简单的换行符。 12. <font>:<font> 规定文本的字体、字体尺寸、字体...
用Javascript打印网页指定标签的内容是指在网页上选择指定的标签,然后将其内容导出到另一个页面上,最后进行打印的操作。这种方法可以灵活地控制打印的内容和格式。下面将详细介绍两种方法来实现这个功能。 方法1...
choose 标签用于控制嵌套 <c:when> 和 <c:otherwise> 动作的处理。示范代码:<c:choose> ${product.onSale}"> ... </c:when> <c:otherwise> .... </c:otherwise> 。choose 标签可以根据条件选择执行不同的动作。 ...
3. Robots 协议是指给 Web 网站提供灵活的控制方式来决定页面是否能够被爬虫采集。用户可以在 website 的根目录下创建一个名为 "robots.txt" 的文件来定义爬虫的爬行规则。 4. Web 信息提取是指从 Web 页面中提取...