`
ruilinruirui
  • 浏览: 1059105 次
文章分类
社区版块
存档分类
最新评论

标签控制页面1

 
阅读更多

使用标签控制页面逻辑案例:

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);

}

}

}

分享到:
评论

相关推荐

    jsp权限控制,jsp自定义标签实现

    Struts2拦截器:需要配置action进行拦截。而且。有时候我们并不想让用户看到不改属于他操作的按钮。(sturts可以进行判断,但有写复杂) 使用jsp自定义标签的功能...可以控制页面中的每个元素,只需要一个类就能够实现

    js控制页面字体大小

    js控制页面字体大小! 很值得下载看看!资源免费,大家分享!!

    struts2 标签库使用文档

    Struts2标签库的组成 Struts2框架的标签库可以分为以下三类: 用户界面标签(UI标签):主要用来生成HTML元素的标签。...流程控制标签:主要包含用于实现分支,循环等流程控制的标签。 AJAX标签:用于支持Ajax效果

    zblog云标签插件

    二、将以下CSS代码添加到你的主题的CSS代码中,CSS代码控制着标签块布局的显示效果 #Thinking{ position:relative; margin-bottom:10px; float:left; width:260px; height:245px; padding:5px; } #Thinking li {...

    ios-标签式顶部导航View,多页面切换.zip

    1.多种属性可编辑 2.标签按钮可回调控制页面 3.页面切换可控制对应标签变化

    ViewPager+Fragment实现滑动控制底部Tab标签,点击标签控制ViewPager滑动

    ViewPager+Fragment实现滑动控制底部Tab标签,点击标签控制ViewPager滑动。具体说明请见CSDN博客介绍https://blog.csdn.net/weimeig/article/details/80353381

    自定义标签+struts2标签控制访问链接权限.zip

    资料内容为教程,介绍taglib_原理和实现;JSP自定义标签;JSP页面中自定义标签详解教程;java自定义标签开发;角色标签库;自定义标签帮助文档;自定义标签其它重要资料。

    struts2标签使用方法

    流程控制标签用于实现分支、循环等流程控制的标签,而数据访问标签用于输出 ValueStack 中的值,完成国际化等功能的。 Ajax 标签 Ajax 标签用于实现异步请求和处理的标签。Ajax 标签可以实现页面无刷新更新、实时...

    CSS 控制页面样式的4种方式和优先级问题

    "CSS 控制页面样式的4种方式和优先级问题" CSS 控制页面样式的四种方式是指在 HTML 页面中应用 CSS 样式的四种方法,它们分别是行内方式、内嵌方式、链接方式和导入方式。这些方式的应用可以使得页面样式变得丰富...

    HTML5&CSS3网页制作:CSS控制视频的宽高.pptx

    在HTML5中,经常会通过为video元素添加宽高的方式给视频预留一定的空间,这样浏览器在加载页面时就会预先确定视频的尺寸,为其保留合适的空间,使页面的布局不产生变化。 通过元素自身属性控制 例:加载一个视频并...

    dynamic-keep-alive:基于 vue 的缓存组件,可以对页面进行缓存控制,适合用在带标签页的后台管理系统中

    基于Vue的缓存组件,可以对页面进行缓存控制,适合用在带标签页的后台管理系统中。 解决问题: 切换标签页时,不需要刷新页面 关闭标签页后,重新打开,需要刷新页面 相比 keep-alive + vuex 解决方案有以下优势: ...

    chrome标签页自动轮播

    Chrome浏览器标签页之间的自动切换,解压后,通过扩展程序 加载已解压的扩展程序添加。之后右上角有插件图标,可以设置轮播秒数,点击开始结束按钮控制轮播

    js控制页面字体大小(js特效)

    自己做项目需要,才去找的资源,一起学习!!

    Struts2+API+标签全解+网页说明

    非用户标签:数据访问、逻辑控制等。 AJAX标签:支持AJAX技术。 用户界面标签又分两类: 表单标签:生成HTML页面的from元素 非表单标签:生成页面上的Tab、Tree等 非界面标签又分为数据访问标签和流程控制标签...

    struts2标签库的综合应用

    struts2 标签库使用说明.Struts2中通用标签可以分为二类:控制标签和数据标签。控制标签用于呈现页面时控制执行流程,数据标签用于访问值栈中的数据。

    Python flask框架实现浏览器点击自定义跳转页面

    代码如下 _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']) ...

    HTML常用标签.pdf

    文本、字体、字号、线条、行控制、超链接、图像相关标签 9. &lt;b&gt;:呈现粗体文本效果。 10. &lt;i&gt;:显示斜体文本效果。 11. : 可插入一个简单的换行符。 12. &lt;font&gt;:&lt;font&gt; 规定文本的字体、字体尺寸、字体...

    用Javascript打印网页指定标签的内容

    用Javascript打印网页指定标签的内容是指在网页上选择指定的标签,然后将其内容导出到另一个页面上,最后进行打印的操作。这种方法可以灵活地控制打印的内容和格式。下面将详细介绍两种方法来实现这个功能。 方法1...

    JSP JSTL 标签库详解 (一个不漏)

    choose 标签用于控制嵌套 &lt;c:when&gt; 和 &lt;c:otherwise&gt; 动作的处理。示范代码:&lt;c:choose&gt; ${product.onSale}"&gt; ... &lt;/c:when&gt; &lt;c:otherwise&gt; .... &lt;/c:otherwise&gt; 。choose 标签可以根据条件选择执行不同的动作。 ...

    《Python爬虫大数据采集与挖掘》期末考试考题汇总带答案.doc

    3. Robots 协议是指给 Web 网站提供灵活的控制方式来决定页面是否能够被爬虫采集。用户可以在 website 的根目录下创建一个名为 "robots.txt" 的文件来定义爬虫的爬行规则。 4. Web 信息提取是指从 Web 页面中提取...

Global site tag (gtag.js) - Google Analytics