`
rubskin
  • 浏览: 9404 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自定义jstl实现短地址

    博客分类:
  • java
阅读更多
对于jstl相信都不陌生,但一般的开发者基本没有自己写过,我也是,最近因为项目的需要,所以写了个,简单的功能,第一次原创,希望大家能给点意见
多的不说直接上代码:
package com.nosyman.jstl;

import java.io.UnsupportedEncodingException;

/**
* 对给定字符串进行编码
* @author nosyman
* 交流:48135490
* 邮箱:1950935123@qq.com
*/
public class Base64 {

/**
* 进行base64加密
* @param uri 要进行base64加密的串
* @param encode 编码方式
* @return 新编码的字符串
*/
public static String encode(String src,String encode){

try {

return new String(com.nosyman.security.Base64.encode(src.getBytes(encode))).replace("=", "");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return "";

}

}





package com.nosyman.jstl;

import java.io.UnsupportedEncodingException;

/**
* 对给定字符串进行编码
* @author nosyman
* 交流:48135490
* 邮箱:1950935123@qq.com
*/
public class EncodeURI {

/**
* 更改字符串编码
* @param uri 要进行编码的串
* @param encode 新的编码方式
* @return 新编码的字符串
*/
public static String encodeURI(String uri,String encode){

try {

return java.net.URLEncoder.encode(uri,encode);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return "";

}

}

上面是2个功能的类,下面是tld文件

<?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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"  
  version="2.0">  
       
  <tlib-version>1.0</tlib-version>  
  <short-name>nm</short-name>  
  <uri>http://www.nosyman.com/jstl/functions</uri>  
     
<!-- JSTL自定义函数   获取新的编码内容 -->  

  <function>  
    <name>encodeURI</name>  <!-- 使用的方法名 --> 
    <function-class>com.nosyman.jstl.EncodeURI</function-class>  
    <function-signature>java.lang.String encodeURI(java.lang.String,java.lang.String)</function-signature>  
  </function>  
  <function>  
    <name>base64</name>   <!-- 使用的方法名 --> 
    <function-class>com.nosyman.jstl.Base64</function-class>  
    <function-signature>java.lang.String encode(java.lang.String,java.lang.String)</function-signature>  
  </function>  
</taglib>  
这样就可以了,简单吧
不过要注意在function-signature标签里面,函数声明跟返回类型必须在同一行,否则会抛出org.apache.jasper.JasperException: Invalid syntax for function signature in TLD.  Tag Library: xxx, Function: xxx
下面再说说使用方法:
像其他标签一样,先要导入 :
<%@ taglib prefix="nm" uri="http://www.nosyman.com/jstl/functions"%>
在用到的地方:
${nm:encodeURI('家纺','utf-8')}
${nm:base64('家纺','gbk')}这样就可以了
这样就好了。
有同样 功能 的直接下载jar包吧
最后说到短地址,只要按规则把后面的参数只要进行处理就可以了,到后台了重新按照一定的方式还原就可以了
分享到:
评论

相关推荐

    JSTL常用语法介绍教程

    这里,`StringTag`是TLD文件中定义的短名称,`getShort`是自定义函数的名字,`str`是传递给该函数的参数。 总结:JSTL是JSP开发的强大工具,提供了诸如循环、条件判断、字符串操作等实用功能,并允许开发者创建...

    jsp论坛短消息(附源代码)

    在JSP中,模型通常由JavaBeans(JSP Bean)实现,视图由JSP页面呈现,控制器可以是Servlet或者自定义的Action类。 2. **JSP内置对象**: JSP提供了若干内置对象,如request、response、session、application等。在...

    jsp+oracle短消息系统源码

    这样的系统通常用于在Web环境中实现用户间的即时通信功能,或者是系统向用户发送通知、提醒等信息。下面将详细阐述这个系统的组成部分和技术要点。 【JSP(Java Server Pages)】 JSP是Java平台上的动态网页技术,...

    jsp论坛短消息案例

    - **XMLHttpRequest对象**:为了提供更好的用户体验,论坛短消息可能会使用AJAX技术实现页面无刷新更新。学员将学习如何创建和使用XMLHttpRequest对象,以及解析返回的JSON或XML数据。 7. **安全性** - **防止SQL...

    jsp高级编程

    - Page:仅在当前JSP页面有效,生命周期很短。 - Request:在整个请求周期内有效,包括转发和包含,但不包括重定向。 - Session:在用户会话期间有效,直到会话超时或显式销毁。 - Application:在整个Web应用...

    总结复习课程模板

    - 使用JSTL标签库中的函数,如`fn:substring`和`fn:length`,来限制短信息列表中每条信息的显示长度。 2. **状态区分:**通过不同的图标或样式来区分未读和已读信息的状态。 3. **列表生成:**根据用户的登录状态...

    JSP网页编程内容总结PPT

    - `taglib`指令:引入自定义标签库,方便使用自定义组件。 3. **JSP脚本元素** - `&lt;% %&gt;`:脚本片段,可以插入Java代码。 - `&lt;%= %&gt;`:表达式标签,用于输出变量或表达式的值到页面。 - `! %&gt;`:声明部分,用于...

    JSF 一些经验 .doc

    例如,如果页面上的某个表单元素需要显示整型值,但在后台逻辑中需要转换为具体的业务对象,可以利用自定义的 Convert 组件来实现这种转换。通过这种方式,可以避免在展现逻辑中添加额外的处理逻辑,同时保持前后端...

    jiuye.rar_J2EE_javaweb_lungs43k_个人博客_博客

    JSTL可以简化JSP页面中的逻辑,使页面更专注于视图层,实现MVC(Model-View-Controller)设计模式。 【个人空间系统】 个人空间系统是该博客管理系统的核心组成部分,它为每个用户提供了一个私有的在线空间,用户...

    JSP技术简介及特点外文翻译.doc

    它以其简单、跨平台的特性,在短短几年内迅速成为许多动态Web应用编程语言中的首选,并广泛应用于电子商务等领域。在中国,JSP也得到了更广泛的关注,发展良好,越来越多的动态网站开始采用JSP技术。 JSP技术的核心...

    JSP 速成教程(PDG).rar

    **JSP(Java Server Pages)速成教程** ...教程可能涵盖了JSP语法、EL表达式、JSTL的使用、MVC模式的实现以及实战示例等内容,帮助你在短时间内提升JSP技能。对于想要从事网站开发的初学者,这是一份非常实用的资料。

    java教程21天速成

    这21天的学习计划旨在帮助毫无编程基础或Java基础薄弱的学员在短时间内建立起坚实的编程基础,从而能够独立进行Java开发工作。下面将详细阐述这个教程中可能涉及的关键知识点和学习路径。 1. **Java基础** - **...

    J2EE开发之常用开源项目小记

    此外,SpringMVC还支持拦截器,但需要开发者自定义实现。 3. **视图层**: - **JSTL**:JavaServer Pages Standard Tag Library,用于增强JSP页面的功能,提供了许多内置标签,被认为是最快的JSP标签库之一。 - *...

    JAVA上百实例源码以及开源项目源代码

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    21天学通java第六版,全本!

    3. **异常处理**:书中会详细介绍Java的异常处理机制,包括try-catch-finally语句块、自定义异常以及如何有效地处理程序运行时可能出现的问题。 4. **数组与集合**:数组是存储和操作数据的基础,Java集合框架(如...

    JAVA软件工程课程体系

    - 技术点:Java Web开发工具的安装与使用、Servlet技术、JSP技术、JavaBean、表达式语言(EL)、标准标签库(JSTL)、自定义标签、创建Servlet监听和过滤程序等。 - **阶段项目**: - 技术点:采用MVC分层模型,包括...

Global site tag (gtag.js) - Google Analytics