Java-WEB开发常用方法整理
/**
* 此类中收集Java编程中WEB开发常用到的一些工具。
* 为避免生成此类的实例,构造方法被申明为private类型的。
* @author
*/
import java.io.IOException;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.util.Date;
public class CTool {
/**
* 私有构造方法,防止类的实例化,因为工具类不需要实例化。
*/
private CTool() {
}
/**
<pre>
* 例:
* String strVal="This is a dog";
* String strResult=CTools.replace(strVal,"dog","cat");
* 结果:
* strResult equals "This is cat"
*
* @param strSrc 要进行替换操作的字符串
* @param strOld 要查找的字符串
* @param strNew 要替换的字符串
* @return 替换后的字符串
<pre>
*/
public static final String replace(String strSrc, String strOld,
String strNew) {
if (strSrc == null || strOld == null || strNew == null)
return "";
int i = 0;
if (strOld.equals(strNew)) //避免新旧字符一样产生死循环
return strSrc;
if ((i = strSrc.indexOf(strOld, i)) >= 0) {
char[] arr_cSrc = strSrc.toCharArray();
char[] arr_cNew = strNew.toCharArray();
int intOldLen = strOld.length();
StringBuffer buf = new StringBuffer(arr_cSrc.length);
buf.append(arr_cSrc, 0, i).append(arr_cNew);
i += intOldLen;
int j = i;
while ((i = strSrc.indexOf(strOld, i)) > 0) {
buf.append(arr_cSrc, j, i - j).append(arr_cNew);
i += intOldLen;
j = i;
}
buf.append(arr_cSrc, j, arr_cSrc.length - j);
return buf.toString();
}
return strSrc;
}
/**
* 用于将字符串中的特殊字符转换成Web页中可以安全显示的字符串
* 可对表单数据据进行处理对一些页面特殊字符进行处理如'<','>','"',''','&'
* @param strSrc 要进行替换操作的字符串
* @return 替换特殊字符后的字符串
* @since 1.0
*/
public static String htmlEncode(String strSrc) {
if (strSrc == null)
return "";
char[] arr_cSrc = strSrc.toCharArray();
StringBuffer buf = new StringBuffer(arr_cSrc.length);
char ch;
for (int i = 0; i < arr_cSrc.length; i++) {
ch = arr_cSrc[i];
if (ch == '<')
buf.append("<");
else if (ch == '>')
buf.append(">");
else if (ch == '"')
buf.append(""");
else if (ch == '\'')
buf.append("'");
else if (ch == '&')
buf.append("&");
else
buf.append(ch);
}
return buf.toString();
}
/**
* 用于将字符串中的特殊字符转换成Web页中可以安全显示的字符串
* 可对表单数据据进行处理对一些页面特殊字符进行处理如'<','>','"',''','&'
* @param strSrc 要进行替换操作的字符串
* @param quotes 为0时单引号和双引号都替换,为1时不替换单引号,为2时不替换双引号,为3时单引号和双引号都不替换
* @return 替换特殊字符后的字符串
* @since 1.0
*/
public static String htmlEncode(String strSrc, int quotes) {
if (strSrc == null)
return "";
if (quotes == 0) {
return htmlEncode(strSrc);
}
char[] arr_cSrc = strSrc.toCharArray();
StringBuffer buf = new StringBuffer(arr_cSrc.length);
char ch;
for (int i = 0; i < arr_cSrc.length; i++) {
ch = arr_cSrc[i];
if (ch == '<')
buf.append("<");
else if (ch == '>')
buf.append(">");
else if (ch == '"' && quotes == 1)
buf.append(""");
else if (ch == '\'' && quotes == 2)
buf.append("'");
else if (ch == '&')
buf.append("&");
else
buf.append(ch);
}
return buf.toString();
}
/**
* 和htmlEncode正好相反
* @param strSrc 要进行转换的字符串
* @return 转换后的字符串
* @since 1.0
*/
public static String htmlDecode(String strSrc) {
if (strSrc == null)
return "";
strSrc = strSrc.replaceAll("<", "<");
strSrc = strSrc.replaceAll(">", ">");
strSrc = strSrc.replaceAll(""", "\"");
strSrc = strSrc.replaceAll("'", "'");
strSrc = strSrc.replaceAll("&", "&");
return strSrc;
}
/**
* 在将数据存入数据库前转换
* @param strVal 要转换的字符串
* @return 从“ISO8859_1”到“GBK”得到的字符串
* @since 1.0
*/
public static String toChinese(String strVal) {
try {
if (strVal == null) {
return "";
} else {
strVal = strVal.trim();
strVal = new String(strVal.getBytes("ISO8859_1"), "GBK");
return strVal;
}
} catch (Exception exp) {
return "";
}
}
/**
* 编码转换 从UTF-8到GBK
* @param strVal
* @return
*/
public static String toGBK(String strVal) {
try {
if (strVal == null) {
return "";
} else {
strVal = strVal.trim();
strVal = new String(strVal.getBytes("UTF-8"), "GBK");
return strVal;
}
} catch (Exception exp) {
return "";
}
}
/**
* 将数据从数据库中取出后转换 *
* @param strVal 要转换的字符串
* @return 从“GBK”到“ISO8859_1”得到的字符串
* @since 1.0
*/
public static String toISO(String strVal) {
try {
if (strVal == null) {
return "";
} else {
strVal = new String(strVal.getBytes("GBK"), "ISO8859_1");
return strVal;
}
} catch (Exception exp) {
return "";
}
}
public static String gbk2UTF8(String strVal) {
try {
if (strVal == null) {
return "";
} else {
strVal = new String(strVal.getBytes("GBK"), "UTF-8");
return strVal;
}
} catch (Exception exp) {
return "";
}
}
public static String ISO2UTF8(String strVal) {
try {
if (strVal == null) {
return "";
} else {
strVal = new String(strVal.getBytes("ISO-8859-1"), "UTF-8");
return strVal;
}
} catch (Exception exp) {
return "";
}
}
public static String UTF82ISO(String strVal) {
try {
if (strVal == null) {
return "";
} else {
strVal = new String(strVal.getBytes("UTF-8"), "ISO-8859-1");
return strVal;
}
} catch (Exception exp) {
return "";
}
}
/**
*显示大文本块处理(将字符集转成ISO)
*@deprecated
*@param str 要进行转换的字符串
*@return 转换成html可以正常显示的字符串
*/
public static String toISOHtml(String str) {
return toISO(htmlDecode(null2Blank((str))));
}
/**
*实际处理 return toChineseNoReplace(null2Blank(str));
*主要应用于老牛的信息发布
*@param str 要进行处理的字符串
*@return 转换后的字符串
*@see fs_com.utils.CTools#toChinese
*@see fs_com.utils.CTools#null2Blank
*/
public static String toChineseAndHtmlEncode(String str, int quotes) {
return htmlEncode(toChinese(str), quotes);
}
/**
*把null值和""值转换成
*主要应用于页面表格格的显示
*@param str 要进行处理的字符串
*@return 转换后的字符串
*/
public static String str4Table(String str) {
if (str == null)
return " ";
else if (str.equals(""))
return " ";
else
return str;
}
/**
* String型变量转换成int型变量
* @param str 要进行转换的字符串
* @return intVal 如果str不可以转换成int型数据,返回-1表示异常,否则返回转换后的值
* @since 1.0
*/
public static int str2Int(String str) {
int intVal;
try {
intVal = Integer.parseInt(str);
} catch (Exception e) {
intVal = 0;
}
return intVal;
}
public static double str2Double(String str) {
double dVal = 0;
try {
dVal = Double.parseDouble(str);
} catch (Exception e) {
dVal = 0;
}
return dVal;
}
public static long str2Long(String str) {
long longVal = 0;
try {
longVal = Long.parseLong(str);
} catch (Exception e) {
longVal = 0;
}
return longVal;
}
public static float stringToFloat(String floatstr) {
Float floatee;
floatee = Float.valueOf(floatstr);
return floatee.floatValue();
}
//change the float type to the string type
public static String floatToString(float value) {
Float floatee = new Float(value);
return floatee.toString();
}
/**
*int型变量转换成String型变量
*@param intVal 要进行转换的整数
*@return str 如果intVal不可以转换成String型数据,返回空值表示异常,否则返回转换后的值
*/
/**
*int型变量转换成String型变量
*@param intVal 要进行转换的整数
*@return str 如果intVal不可以转换成String型数据,返回空值表示异常,否则返回转换后的值
*/
public static String int2Str(int intVal) {
String str;
try {
str = String.valueOf(intVal);
} catch (Exception e) {
str = "";
}
return str;
}
/**
*long型变量转换成String型变量
*@param longVal 要进行转换的整数
*@return str 如果longVal不可以转换成String型数据,返回空值表示异常,否则返回转换后的值
*/
public static String long2Str(long longVal) {
String str;
try {
str = String.valueOf(longVal);
} catch (Exception e) {
str = "";
}
return str;
}
/**
*null 处理
*@param str 要进行转换的字符串
*@return 如果str为null值,返回空串"",否则返回str
*/
public static String null2Blank(String str) {
if (str == null)
return "";
else
return str;
}
/**
*null 处理
*@param d 要进行转换的日期对像
*@return 如果d为null值,返回空串"",否则返回d.toString()
*/
public static String null2Blank(Date d) {
if (d == null)
return "";
else
return d.toString();
}
/**
*null 处理
*@param str 要进行转换的字符串
*@return 如果str为null值,返回空串整数0,否则返回相应的整数
*/
public static int null2Zero(String str) {
int intTmp;
intTmp = str2Int(str);
if (intTmp == -1)
return 0;
else
return intTmp;
}
/**
* 把null转换为字符串"0"
* @param str
* @return
*/
public static String null2SZero(String str) {
str = CTool.null2Blank(str);
if (str.equals(""))
return "0";
else
return str;
}
/**
* sql语句 处理
* @param sql 要进行处理的sql语句
* @param dbtype 数据库类型
* @return 处理后的sql语句
*/
public static String sql4DB(String sql, String dbtype) {
if (!dbtype.equalsIgnoreCase("oracle")) {
sql = CTool.toISO(sql);
}
return sql;
}
/**
* 对字符串进行md5加密
* @param s 要加密的字符串
* @return md5加密后的字符串
*/
public final static String MD5(String s) {
char hexDigits[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd',
'e', 'f'};
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
return null;
}
}
/**
* 字符串从GBK编码转换为Unicode编码
* @param text
* @return
*/
public static String StringToUnicode(String text) {
String result = "";
int input;
StringReader isr;
try {
isr = new StringReader(new String(text.getBytes(), "GBK"));
} catch (UnsupportedEncodingException e) {
return "-1";
}
try {
while ((input = isr.read()) != -1) {
result = result + "&#x" + Integer.toHexString(input) + ";";
}
} catch (IOException e) {
return "-2";
}
isr.close();
return result;
}
/**
*
* @param inStr
* @return
*/
public static String gb2utf(String inStr) {
char temChr;
int ascInt;
int i;
String result = new String("");
if (inStr == null) {
inStr = "";
}
for (i = 0; i < inStr.length(); i++) {
temChr = inStr.charAt(i);
ascInt = temChr + 0;
//System.out.println("1=="+ascInt);
//System.out.println("1=="+Integer.toBinaryString(ascInt));
if( Integer.toHexString(ascInt).length() > 2 ) {
result = result + "&#x" + Integer.toHexString(ascInt) + ";";
}
else
{
result = result + temChr;
}
}
return result;
}
/**
* This method will encode the String to unicode.
*
* @param gbString
* @return
*/
//代码:--------------------------------------------------------------------------------
public static String gbEncoding(final String gbString) {
char[] utfBytes = gbString.toCharArray();
String unicodeBytes = "";
for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {
String hexB = Integer.toHexString(utfBytes[byteIndex]);
if (hexB.length() <= 2) {
hexB = "00" + hexB;
}
unicodeBytes = unicodeBytes + "\\u" + hexB;
}
System.out.println("unicodeBytes is: " + unicodeBytes);
return unicodeBytes;
}
/**
* This method will decode the String to a recognized String
* in ui.
* @param dataStr
* @return
*/
public static StringBuffer decodeUnicode(final String dataStr) {
int start = 0;
int end = 0;
final StringBuffer buffer = new StringBuffer();
while (start > -1) {
end = dataStr.indexOf("\\u", start + 2);
String charStr = "";
if (end == -1) {
charStr = dataStr.substring(start + 2, dataStr.length());
} else {
charStr = dataStr.substring(start + 2, end);
}
char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。
buffer.append(new Character(letter).toString());
start = end;
}
return buffer;
}
}
Java-WEB开发常用方法整理的更多相关文章
- Java Web架构知识整理——记一次阿里面试经历
惭愧,从一次电面说起.我个人在某国企做一名软件设计师,国企大家都懂的,待遇一般而且没啥意思,做的方向基本都是操作系统.驱动和工具软件的开发,语言基本都是C/C++.最近也想跳槽,刚好有幸得到了一次阿里 ...
- 工具的更新换代 总是要折腾一下Windows10下Java Web 开发环境的配置
Windows10下Java Web 开发环境的配置 由于经常性遗忘,所以整理一下 Java Web 开发环境的搭建与配置,利人利己 主要分为以下几步,需要可以挑着看 Windows下 JDK 的下载 ...
- java web 开发三剑客 -------电子书
Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...
- Java Web面试题整理(思维导图)
1,动态网站技术有哪些? 2,一般的Web架构是指BS 还是CS,BS架构是什么咚咚? 3,Web应用程序的流程,即把一个URL串输入地址栏后发生写什么? 4,说一说Servlet生命周期? 5,在W ...
- Java Web开发中MVC设计模式简介
一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...
- 【转】 java web开发之安全事项
从事java web开发也有几年了,可是开发中的安全问题却越来越不以为然.直到不久遇到一黑软,瞬间sql注入,少时攻破网站数据库.还好,我还没有用root级的用户连接数据库.不过也没有什么用了,因为我 ...
- 【原创】三分钟教你学会MVC框架——基于java web开发(2)
没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...
- [Java Web整合开发王者归来·刘京华] 1、 Java Web开发
目录: 1.Web技术简介 2.动态网站与静态网站 3.Java Web开发模式 4.JavaScript简介 1.Web技术简介 PS: 最近还有更凶残的技术,即整个操作系统都是基于Web的,如 ...
- 个人的java web开发书单
首发至个人博客http://www.zidafone.com/blog/36 以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉.都是java web开发的程序员可能接触的书,其他的如设计/手机开 ...
- java web开发必备知识
从各种招聘网站的要求上筛选出了一些java开发的一些基本的要求,对照自身看看有哪些缺陷. java基础 既然是java web开发,java SE肯定要学好了. 多线程,IO,集合等,对队列,缓存,消 ...
随机推荐
- 非阻塞IO可以等同异步IO嘛?
脑壳短路的一瞬间,黑人问号? 在这个问题之前,我们先了解下IO的过程,下图是异步IO,做个参照(图片随便找的,侵权联系小弟删除) 简单叙述下windows同步IO的流程(图片描述的是异步IO) 1.调 ...
- WijmoJS 中自定义 React 菜单和列表项模板
WijmoJS 中自定义 React 菜单和列表项模板 在V2019.0 Update2 的全新版本中,React 框架下 WijmoJS 的前端UI组件功能再度增强. WijmoJS的菜单和类似列表 ...
- SQL Server 下载与安装
1.首先去Microsoft官网下载对应的安装程序,下载地址:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.运行安 ...
- iproute2使用及网络名称空间
创建一个网络名称空间: 相当于创建一个完全隔离的新网络环境,这个环境包括一个独立的网卡空间,路由表,ARP表,ip地址表,iptables,ebtables,等等.总之,与网络有关的组件都是独立的. ...
- Windows authentication for WCF web services error
WCF Web服务的Windows身份验证在部署到IIS时,默认网站添加应用程序的方式.浏览运行.svc文件报错. 错误代码: The authentication schemes configure ...
- 怎样使用 v-for ?
v-bind / v-on / v-if / v-for , 这四个指令应该是 vue 里面最常用的了, 之前已经简单记录的前三个的使用方法, 接下来就记一下 v-for 的基本用法. 1. v-fo ...
- ccpc湘潭邀请赛 Partial Sum
选定最多m的区间,使区间和的绝对值最大.但是左右端点不能重复选取 首先涉及到区间和的问题,就应该想到用前缀和去优化 这里对前缀和排序 然后贪心的去选取最大.次大 (比赛的时候脑子堵的很,没想出来 可惜 ...
- HashMap的四种遍历方式
package com.xt.map; import java.util.HashMap; import java.util.Iterator; import java.util.Map; impor ...
- vs code 快捷键设置:选中字母可以快速全部转换为大写或小写
文件--->首选项--->键盘快捷方式--->搜索:"大写"--->点击"转换为大写"左侧的加号,然后设置快捷键后按enter即可完成添 ...
- CSS3溢出文字省略
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...