自定义jstl实现短地址

:wink: 对于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>
这样就可以了,简单吧 :wink:
不过要注意在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包吧
最后说到短地址,只要按规则把后面的参数只要进行处理就可以了,到后台了重新按照一定的方式还原就可以了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值