我刚刚接触JSP,但现在因为情况需要,要编写javabean,请各位高手指点迷津!!谢! 其实javabean和普通的java类,我感觉没有什么区别,最终调用的还是一个类的函数。只不过引用普通类和调用javabean的方法有所不同。javabean里面封装的是业务逻辑,如果说返回一个记录结果集。当然数据库的连接也可以放在javabean中。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哪里有bean的源代码可以下载啊?最好是带注释的。谢谢。恩,这次要编的主要是关于数据库的javabean,楼上的高人能再指点的具体点吗~~~ bean 主要是处理各种功能的类如果你懂得java ,就可以按照格式编写然后编译成classes文件在jsp中声明,调用就可以了 现在问题就是我java也懂得不是很多,现在JSP中急着用,所以想请教一下有没有bean速成的方法,还有哪里有提供bean源代码下载的,最好有注释。 根本没有什么速成的javabean方法,老兄不懂java就别提javabean.如同,不懂objectpascal学些delphi是一个道理!!还是回去啃书本吧,最好是找例子来读!!! 那有没有人有关于调用mssql数据库的bean的源代码,能贴出来供学习学习么? 那有没有人有关于调用mssql数据库的bean源代码,能贴出来以供学习学习么? 建议你找一个完整的jsp网站的代码,自己边看边调。这样学习起来会很快。去java中文站看看吧,那里好象有jsp网站源代码,还有一些好的元代码。www.java-cn.net package db;import java.sql.*;public class connOracle{ String serverName = "localhost"; String sDBDriver = "oracle.jdbc.driver.OracleDriver"; String sConnStr = "jdbc:oracle:thin:@" + serverName + ":1521:oracle8"; Connection connect = null; ResultSet rs = null; int i; public connOracle(){ try{ Class.forName(sDBDriver); }catch(java.lang.ClassNotFoundException e){ System.out.println(e.getMessage()); } } public ResultSet executeQuery(String sql){ rs = null; try{ connect = DriverManager.getConnection(sConnStr,"scott","tiger"); Statement stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql); }catch(SQLException ex){ System.out.println(ex.getMessage()); } return rs; } public int executeUpdate(String sql){ i = 0; try{ connect = DriverManager.getConnection(sConnStr,"scott","tiger"); Statement stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); i = stmt.executeUpdate(sql); }catch(SQLException exx){ System.out.println(exx.getMessage()); } return i; }} for oracle 说起java Beans我就郁闷前段时间看到一句话:“学了java,不用java Beans 等于没学”又有一次看了看weblogic的console原码全都是xml+标签库+java beans两个jar中居然只有一个jsp文件:index.jsp打开一看,这个文件存在的唯一理由是:为了防止用户在输入urlhttp://hostName:7001/console/index.jsp出现404错误! package gkgl.basic;import java.util.*;import java.lang.*;/***提取参数的通用类*Made of yukun.htjs*Made in Zhengzhou.ha.china*datetime 2002.5.23*@author yukun*/public class StrReplace {/***字符替换方法*@param str 被替换的字符串*@return 将字符串中的回车换行符"\n"转换成"<br>",将空格" "转换成" "的函数*/public String StrReplace(String str){ try { String tempText=""; int find1=0; int find2=0; while (find1!=-1) { find1=str.indexOf("\n",find1+1); if (find1!=-1) { tempText+=str.substring(find2,find1)+"<br>"; find2=find1; } else { tempText+=str.substring(find2,str.length()); } } String resultText=""; int space1=0; int space2=0; while (space1!=-1) { space1=tempText.indexOf(" ",space1+1); if (space1!=-1) { resultText+=tempText.substring(space2,space1)+" "; space2=space1; } else { resultText+=tempText.substring(space2,tempText.length()); } } return resultText; } catch (Exception e) { return "null"; }}/***字符替换方法*@param str 被替换的字符串*@return 将字符串rStr中的字符rFix替换成rRep*/public static String StrReplace(String rStr, String rFix, String rRep) { int l = 0; String gRtnStr = rStr; do { l = rStr.indexOf(rFix,l); if(l == -1) break; gRtnStr = rStr.substring(0,l) + rRep + rStr.substring(l + 1); l += rRep.length(); rStr = gRtnStr; }while(true); return gRtnStr.substring(0, gRtnStr.length()); }/***字符串编码转换*@param str 被替换的字符串*@return 转换中文字符编码(让jsp提交表单是显示中文简体)*/ public String getStr(String str) { try{ String temp_p=str; byte[] temp_t=temp_p.getBytes("ISO-8859-1"); String temp=new String(temp_t); return temp; } catch(Exception e) { } return "null"; }/***字符串编码转换*@param str 被替换的字符串*@return 转换中文字符编码(让jsp提交表单是显示中文简体)mysql+linux*/ public String cnvStr(String str) { try { String temp_str=new String((str).getBytes(),"GB2312"); return temp_str; } catch(Exception e) { } return ""; }/***字符串编码转换*@param str 被替换的字符串*@return 编码转换GBK--->ISO8859_1*/public static String reconvert(String value) { try { String s = new String(value.getBytes("GBK"), "ISO8859_1"); return s; } catch(Exception e) { String s1 = ""; return s1; } }/***字符串编码转换*@param str 被替换的字符串*@param isoCharSet 字符编码类型*@return 字符串编码转换--->isoCharSet*/ public String getStr(String str,String isoCharSet) { try{ String temp_p=str; byte[] temp_t=temp_p.getBytes("ISO-8859-1"); String temp=new String(temp_t,isoCharSet); return temp; } catch(Exception e) { } return "null"; }/***把字符串按给定字符分解成字符串数组的方法*@param str 要转换的字符串*@param chr 分割字符*@return 按chr把str分割成字符串,数组若字符串为NULL或空字符串则返回NULL*/ public String[] stringToArray(String str ,char chr) { ////计算出数组长度count 并计算出每个分割符的位置,把值放入Vector变量indexSort中 int count=0; int index=0; Vector indexSort=new Vector(); //indexSort变量的第一个元素(-1),便于截取字符串时的定位 indexSort.addElement("-1"); try { if (str.length()==0) { return null; } else { for (int i=0;i<str.length();i++) { index=str.indexOf(chr,index+1); if (index!=-1) { count++; indexSort.addElement(String.valueOf(index)); } else { break; } } } } catch (NullPointerException e) { return null; } //indexSort变量的最后一个元素(str的长度),便于截取字符串时的定位 indexSort.addElement(String.valueOf(str.length())); String[] codeArray=new String[count+1]; int index1,index2; for (int j=0;j<count+1;j++) { index1=Integer.parseInt(indexSort.elementAt(j).toString())+1; index2=Integer.parseInt(indexSort.elementAt(j+1).toString()); codeArray[j]=str.substring(index1,index2); } return codeArray; }/***将字符串按每个字母分成String数组*@param str 要转换的字符串*@return 字符串数组*/public static String[] String2Arr (String s){ String[] str=new String[s.length()]; for(int i=0;i<s.length();i++) { char ch=s.charAt(i); String s4=String.valueOf(ch); str[i]=s4; } return str;}/***将字符串以十六进制表示并返回*@param str 要转换的字符串*@return 十六进制字符串*/public static String toHexString (String s){ String str=""; for(int i=0;i<s.length();i++) { int ch=(int)s.charAt(i); String s4="0000"+Integer.toHexString(ch); str=str+s4.substring(s4.length()-4)+""; } return str;}/***选择字符串中的某一个字符,并以十六进制表示并返回*@param s 要转换的字符串(String)*@param t 定位标志(int)*@return 十六进制字符串*/public static String HexAddString (String s,int t){ String str=""; for(int i=0;i<s.length();i++) { int ch=(int)s.charAt(i)+t; String s4="0000"+Integer.toHexString(ch); str+=s4.substring(s4.length()-4)+""; } return str;}///***将UNICODE字符串以GB2312字符集返回*@param utfString 要转换的字符串(UNICODE编码)*@return GB2312字符集*/public String UTF2GB(String utfString) { StringTokenizer st = new StringTokenizer(utfString,"\\u"); StringBuffer sb = new StringBuffer(); while(st.hasMoreTokens()) { String ii = st.nextToken(); int x = Integer.parseInt(ii,16); char c = (char)x; sb.append(c); } return sb.toString(); }} 谢谢,有没有人再贴出来点关于JSP连接MS-SQL数据库的java bean源代码让我参考参考呢。万分感谢先! 建议:用StringBuffer实现字符串替换gRtnStr = rStr.substring(0,l) + rRep + rStr.substring(l + 1);运行时,系统会先将rStr.substring(l + 1)后移(复制)x个字节,再插入rRep 效率相当低,这类似于在数组中插数据时的情形其中:x = rRep.getBytes().length如果gRtnStr不长,这还不明显但假如gRtnStr比较大(例如100k),这个转换过程可能会让你等上10十几秒public class Replace{ StringBuffer sb = null; public Replace() { } public String replace(String sourceStr,String oldStr,String newStr) throws Exception { if(sourceStr == null) { return sourceStr; } int k = sourceStr.indexOf(oldStr); if(k == -1) { return sourceStr; } sb = new StringBuffer(); while(k != -1) { if(k == 0) { sb = sb.append(newStr); } else sb = sb.append(sourceStr.substring(0,k) + newStr); sourceStr = sourceStr.substring(k + oldStr.length()); k = sourceStr.indexOf(oldStr); } sb = sb.append(sourceStr); sourceStr = sb.toString(); return sourceStr; } } 组件之间怎么增加间隔 初学者配置struts2出现的问题 history.go(1)前进不了! 使用POI导出中文为乱码的问题如何解决?我急啊~~ 求教前辈,我用struts2和hibernate编的程序出这样的错误,是因为什么,怎么解决?谢谢 jsp提交表单的中文显示? 百分求助 Spring使用@Before怎么终止所拦截方法的执行 jive大讨论,进来发表你的高见!!! 怎样用normalize() session.setAttribute()方法是做什么用的? 自动产生编号问题!!在线等待!散分!
如同,不懂objectpascal学些delphi是一个道理!!
还是回去啃书本吧,最好是找例子来读!!!
这样学习起来会很快。
去java中文站看看吧,那里好象有jsp网站源代码,还有一些好的元代码。
www.java-cn.net
{
String serverName = "localhost";
String sDBDriver = "oracle.jdbc.driver.OracleDriver";
String sConnStr = "jdbc:oracle:thin:@" + serverName + ":1521:oracle8";
Connection connect = null;
ResultSet rs = null;
int i; public connOracle(){
try{
Class.forName(sDBDriver);
}catch(java.lang.ClassNotFoundException e){
System.out.println(e.getMessage());
}
} public ResultSet executeQuery(String sql){
rs = null;
try{
connect = DriverManager.getConnection(sConnStr,"scott","tiger");
Statement stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}catch(SQLException ex){
System.out.println(ex.getMessage());
} return rs;
} public int executeUpdate(String sql){
i = 0;
try{
connect = DriverManager.getConnection(sConnStr,"scott","tiger");
Statement stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
i = stmt.executeUpdate(sql);
}catch(SQLException exx){
System.out.println(exx.getMessage());
}
return i;
}
} for oracle
前段时间看到一句话:“学了java,不用java Beans 等于没学”
又有一次看了看weblogic的console原码
全都是xml+标签库+java beans
两个jar中居然只有一个jsp文件:index.jsp
打开一看,这个文件存在的唯一理由是:
为了防止用户在输入url
http://hostName:7001/console/index.jsp出现404错误!
package gkgl.basic;import java.util.*;
import java.lang.*;
/**
*提取参数的通用类
*Made of yukun.htjs
*Made in Zhengzhou.ha.china
*datetime 2002.5.23
*@author yukun
*/
public class StrReplace {/**
*字符替换方法
*@param str 被替换的字符串
*@return 将字符串中的回车换行符"\n"转换成"<br>",将空格" "转换成" "的函数
*/
public String StrReplace(String str)
{
try { String tempText="";
int find1=0;
int find2=0;
while (find1!=-1) {
find1=str.indexOf("\n",find1+1);
if (find1!=-1) {
tempText+=str.substring(find2,find1)+"<br>";
find2=find1;
} else {
tempText+=str.substring(find2,str.length());
}
}
String resultText="";
int space1=0;
int space2=0;
while (space1!=-1) {
space1=tempText.indexOf(" ",space1+1); if (space1!=-1) {
resultText+=tempText.substring(space2,space1)+" ";
space2=space1;
} else {
resultText+=tempText.substring(space2,tempText.length());
} }
return resultText; } catch (Exception e) {
return "null";
}
}/**
*字符替换方法
*@param str 被替换的字符串
*@return 将字符串rStr中的字符rFix替换成rRep
*/
public static String StrReplace(String rStr, String rFix, String rRep) {
int l = 0;
String gRtnStr = rStr;
do
{
l = rStr.indexOf(rFix,l); if(l == -1) break; gRtnStr = rStr.substring(0,l) + rRep + rStr.substring(l + 1);
l += rRep.length();
rStr = gRtnStr;
}while(true);
return gRtnStr.substring(0, gRtnStr.length());
}/**
*字符串编码转换
*@param str 被替换的字符串
*@return 转换中文字符编码(让jsp提交表单是显示中文简体)
*/
public String getStr(String str)
{
try{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO-8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{
}
return "null";
}
/**
*字符串编码转换
*@param str 被替换的字符串
*@return 转换中文字符编码(让jsp提交表单是显示中文简体)mysql+linux
*/
public String cnvStr(String str)
{
try {
String temp_str=new String((str).getBytes(),"GB2312");
return temp_str;
}
catch(Exception e)
{
}
return "";
}/**
*字符串编码转换
*@param str 被替换的字符串
*@return 编码转换GBK--->ISO8859_1
*/
public static String reconvert(String value)
{
try
{
String s = new String(value.getBytes("GBK"), "ISO8859_1");
return s;
}
catch(Exception e)
{
String s1 = "";
return s1;
}
}/**
*字符串编码转换
*@param str 被替换的字符串
*@param isoCharSet 字符编码类型
*@return 字符串编码转换--->isoCharSet
*/
public String getStr(String str,String isoCharSet)
{
try{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO-8859-1");
String temp=new String(temp_t,isoCharSet);
return temp;
}
catch(Exception e)
{
}
return "null";
}/**
*把字符串按给定字符分解成字符串数组的方法
*@param str 要转换的字符串
*@param chr 分割字符
*@return 按chr把str分割成字符串,数组若字符串为NULL或空字符串则返回NULL
*/
public String[] stringToArray(String str ,char chr) {
////计算出数组长度count 并计算出每个分割符的位置,把值放入Vector变量indexSort中
int count=0;
int index=0;
Vector indexSort=new Vector();
//indexSort变量的第一个元素(-1),便于截取字符串时的定位
indexSort.addElement("-1");
try
{
if (str.length()==0) {
return null;
} else {
for (int i=0;i<str.length();i++)
{
index=str.indexOf(chr,index+1);
if (index!=-1) {
count++;
indexSort.addElement(String.valueOf(index));
} else {
break;
}
}
}
}
catch (NullPointerException e) {
return null;
}
//indexSort变量的最后一个元素(str的长度),便于截取字符串时的定位
indexSort.addElement(String.valueOf(str.length()));
String[] codeArray=new String[count+1];
int index1,index2;
for (int j=0;j<count+1;j++)
{
index1=Integer.parseInt(indexSort.elementAt(j).toString())+1;
index2=Integer.parseInt(indexSort.elementAt(j+1).toString());
codeArray[j]=str.substring(index1,index2);
}
return codeArray;
}/**
*将字符串按每个字母分成String数组
*@param str 要转换的字符串
*@return 字符串数组
*/
public static String[] String2Arr (String s)
{
String[] str=new String[s.length()];
for(int i=0;i<s.length();i++)
{
char ch=s.charAt(i);
String s4=String.valueOf(ch);
str[i]=s4;
}
return str;
}/**
*将字符串以十六进制表示并返回
*@param str 要转换的字符串
*@return 十六进制字符串
*/
public static String toHexString (String s)
{
String str="";
for(int i=0;i<s.length();i++)
{
int ch=(int)s.charAt(i);
String s4="0000"+Integer.toHexString(ch);
str=str+s4.substring(s4.length()-4)+"";
}
return str;
}/**
*选择字符串中的某一个字符,并以十六进制表示并返回
*@param s 要转换的字符串(String)
*@param t 定位标志(int)
*@return 十六进制字符串
*/
public static String HexAddString (String s,int t)
{
String str="";
for(int i=0;i<s.length();i++)
{
int ch=(int)s.charAt(i)+t;
String s4="0000"+Integer.toHexString(ch);
str+=s4.substring(s4.length()-4)+""; }
return str;
}//
/**
*将UNICODE字符串以GB2312字符集返回
*@param utfString 要转换的字符串(UNICODE编码)
*@return GB2312字符集
*/
public String UTF2GB(String utfString) {
StringTokenizer st = new StringTokenizer(utfString,"\\u");
StringBuffer sb = new StringBuffer();
while(st.hasMoreTokens()) {
String ii = st.nextToken();
int x = Integer.parseInt(ii,16);
char c = (char)x;
sb.append(c);
}
return sb.toString();
}
}
gRtnStr = rStr.substring(0,l) + rRep + rStr.substring(l + 1);
运行时,系统会先将rStr.substring(l + 1)后移(复制)x个字节,再插入rRep
效率相当低,这类似于在数组中插数据时的情形
其中:x = rRep.getBytes().length如果gRtnStr不长,这还不明显
但假如gRtnStr比较大(例如100k),这个转换过程可能会让你等上10十几秒
public class Replace
{
StringBuffer sb = null; public Replace()
{
}
public String replace(String sourceStr,String oldStr,String newStr)
throws Exception
{
if(sourceStr == null)
{
return sourceStr;
} int k = sourceStr.indexOf(oldStr);
if(k == -1)
{
return sourceStr;
} sb = new StringBuffer();
while(k != -1)
{
if(k == 0)
{
sb = sb.append(newStr);
}
else
sb = sb.append(sourceStr.substring(0,k) + newStr);
sourceStr = sourceStr.substring(k + oldStr.length());
k = sourceStr.indexOf(oldStr);
}
sb = sb.append(sourceStr);
sourceStr = sb.toString(); return sourceStr;
}
}