jsp中定义和使用方法示例介绍_JSP编程

在jsp中,如果需要处理复杂数据时,在上方定义一个java方法是很有效的解决方案,把处理数据的责任推给该方法,然后该jsp页面的主流程就不受影响。当然也可以使用js定义方法来处理,js似乎更善于定义这样的方法来处理前台数据,但有时候jsp和js之间倒腾数据时会出乱码或者报一些找不到对象的错误,因此他们之间的互相传值还是越少越好。

看一看jsp中定义一个字符串处理的方法:

复制代码 代码如下:

<%!
String splitString(String str, int a) {
if (str != null && str.trim().length() > 0 && a > 0) {
// 取得该字符串的字节长度
int length = str.getBytes().length;
// 全部不包括汉字
if (str.length() == length) {
// 如果截取长度是字符串长度以内,就substring,否则就取这个字符串
if (a < str.length()) {
return str.substring(0, a);
} else {
return str;
}
} // 含有汉字
else {
StringBuffer sb = new StringBuffer();
// 截取算法 遍历字符串,并且监测a值
for (int i = 0; i < str.length() && a > 0; i++) {
// 如果是汉字算2个长度。
if (str.charAt(i) >= '\u4e00' && str.charAt(i) <= '\u9fa5') {
// 如果是汉字且不是最后一个字符,就加上,否则不加
if (a > 1) {
sb.append(str.charAt(i));
a -= 2;
}
// 不是汉字只算一个长度
} else {
sb.append(str.charAt(i));
a--;
}
}
return sb.toString();
}
}
return "输入有误";
}

%>

该方法的功能是,传入一个字符串和长度,返回截取后的字符串,长度会按照汉字两个、字母数字一个的方式来统计,如果最后一个是汉字,那么这个汉字就放弃掉,绝不能出现半个汉字的情况。

jsp中定义方法,需要注意以下几点:

1,需要使用<%! %>这样的标签包起来,这是jsp中定义变量或者方法的标志。

2,如果在方法中需要使用内置对象out时,一定要在方法的参数列表中传过来,并且要让方法跑出一个IO异常。

3,方法的范围就不要定义了,反正就是内部使用,直接使用缺省范围的就可以了。

时间: 2024-10-23 07:16:15

jsp中定义和使用方法示例介绍_JSP编程的相关文章

jsp传值中文乱码问题解决方法示例介绍_JSP编程

在jsp中,我们经常从数据库读取数据返回客户端,但我们常常在制作时出现乱码现象,所以我们可以用<%request.setCharacterEncoding("UTF-8");%>这个方法来保证中文的正确输出,下面举个例子吧, 我们要接住表单的值或者把数据库数据打印出来的之前,先把<%request.setCharacterEncoding("UTF-8");%>放在他们的前面,然后,表单的提交方式必须是post,即method="p

jsp中Action使用session方法实例分析_JSP编程

本文实例分析了jsp中Action使用session方法.分享给大家供大家参考.具体如下: 在Struts2里,如果需要在Action中使用session,可以通过下面两种方式得到   1.通过ActionContext class中的方法getSession得到   2.Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作   下面先看一个采用第一种方式,在action中得到session的例子   复制代码

jsp传值中文乱码问题解决方法示例介绍

在jsp中,我们经常从数据库读取数据返回客户端,但我们常常在制作时出现乱码现象,所以我们可以用<%request.setCharacterEncoding("UTF-8");%>这个方法来保证中文的正确输出,下面举个例子吧, 我 们要接住表单的值或者把数据库数据打印出来的之前,先把<%request.setCharacterEncoding("UTF- 8");%>放在他们的前面,然后,表单的提交方式必须是post,即method="

jsp中select的onchange事件用法实例_JSP编程

本文实例讲述了jsp中select的onchange事件用法.分享给大家供大家参考,具体如下: <script language = "JavaScript"> var onecount; onecount=0; subcat = new Array(); <% int count = 0; java.sql.ResultSet rs1 = DBManage.executeQuery("select hydm,zhydm,zhymc from zhy &qu

JSP教程(六)-怎么在JSP中跳转到别一页面_JSP编程

在JSP中使用jsp forward Action来实现页面的跳转功能. 语法: <jsp:forward page="{relativeURL|<%= expression %>}"/> 或<jsp:forward page="{relativeURL|<%= expression %>}"><jsp:param name="parameterName"value="{parame

ExtJS4中的requires使用方法示例介绍_extjs

ExtJS4的requires是新增的机制,主要是实现异步加载机制.这样在不点击对应的按钮或者选项的时候就不会加载对应的js文件,提高了加载速度和用户等待时间. requires机制的实现通过一个Ext.Loader.setConfig函数来设置文件寻找的映射目录,然后在需要用到对应js文件的时候使用Ext.require进行加载. 文件的存储结构如下所示:  ux文件夹和lesson2.htm和lesson22.js在相同的目录下,而使用到的MyWin.js存放在ux的文件夹中. 在lesso

JSP中一些JSTL核心标签用法总结_JSP编程

一.JSTL介绍JSTL(JavaServer Pages Standard Tag Library)由JCP(Java Community Process)指定标准,提供给 Java Web 开发人员一个标准通用的标签函数库.和 EL 来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性.维护性和方便性.JSTL 主要由Apache组织的Jakarta Project 实现,容器必须支持Servlet 2.4 且JSP 2.0 以上版本. JSTL下载地址:

table中点击表头实现排序的功能示例介绍_JSP编程

<a href="javascript:setOrder();">表头名字</a>,页面中获取上次点击的表头的名称和这次点击的表头的名称做比较,如果两者相同就按原先相反的顺序排列,否则新列升序排列, 获取排列顺序的列名及排列顺序以后,传到后台获取相应sql,添加order by 语句,完成排序功能 排序顺序值可在form中存放在隐藏域中,思路就是这样. 例如在使用Birt报表工具创建报表需要点击表头的名称排序的功能时,可以再表头名称处增加一个超链接,链接内容为T

Jsp生成页面验证码的方法[附代码]_JSP编程

image.jsp------------------------------生成随机验证码图片的Jsp页面 代码如下:  复制代码 代码如下: <%@ page contentType="image/jpeg" import="java.awt.*, java.awt.image.*,java.util.*,javax.imageio.*" %> <%! Color getRandColor(int fc,int bc) { Random ran