仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 859|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网站制作之jsp中完成毗连池

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:31:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,js在JSP里有两种完成的举措,一种是用JNDI(JavaNamingDirectoryInterface),这大概和使用服务器有关,假如是Resin,先在resin.conf里界说
<resource-ref>
<res-ref-name>jdbc/oracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-paramdriver-name="oracle.jdbc.driver.OracleDriver"/>
<init-paramurl="jdbc:oracle:thin:@192.168.1.1:1521:oracle"/>
<init-paramuser="system"/>
<init-parampassword="manager"/>
<init-parammax-connections="20"/>
<init-parammax-idle-time="30"/>
</resource-ref>
假如为Tomcat,在Server.xml内里界说,有关的材料能够查文档,然后在jsp里如许用
try{
javax.naming.Contextenv=(Context)newInitialContext().lookup("java:comp/env");
javax.sql.DataSourcepool=(javax.sql.DataSource)env.lookup("jdbc/oracle");
}catch(Exceptione){System.err.println("Exceptionerror:"+e.getMessage());}

try{
Connectionconn=pool.getConnection();
}catch(Exceptione){System.out.println("Exceptionerror:"+e.getMessage());}
经由过程这段代码,你就取得从毗连池里取得了一个毗连conn。假如想用一般的毗连池,那只能用JavaBean了,先写一个ConnectionPool的java的类,然后间接从毗连池中取得毗连,上面是我一个毗连池的JavaBean
ConnectionPool.java以下:

importjava.io.PrintStream;
importjava.sql.Connection;
importjava.util.Vector;

//Referencedclassesofpackagecom.ilovejsp.sql:
//DataSource,PooledConnection

publicclassConnectionPool
{
privateVectorpool;
privateintsize;
DataSourcedb;

publicConnectionPool()
{
pool=null;
size=0;
db=newDataSource();
}

publicvoidsetSize(intvalue)
{
if(value>1)
size=value;
}

publicintgetSize()
{
returnsize;
}

publicsynchronizedvoidinitPool()
throwsException
{
try
{
for(intx=0;x<size;x++)
{
Connectionconn=db.getConnection();
if(conn!=null)
{
PooledConnectionpcon=newPooledConnection(conn);
addConnection(pcon);
}
}

}
catch(Exceptione)
{
System.err.println(e.getMessage());
}
}

privatevoidaddConnection(PooledConnectionpcon)
{
if(pool==null)
pool=newVector(size);
pool.addElement(pcon);
}

publicsynchronizedvoidreleaseConnection(Connectionconn)
{
intx=0;
do
{
if(x>=pool.size())
break;
PooledConnectionpcon=(PooledConnection)pool.elementAt(x);
if(pcon.getConnection()==conn)
{
System.err.println("ReleaseConnection".concat(String.valueOf(String.valueOf(x))));
pcon.setInUse(false);
break;
}
x++;
}
while(true);
}

publicsynchronizedConnectiongetConnection()
throwsException
{
PooledConnectionpcon=null;
for(intx=0;x<pool.size();x++)
{
pcon=(PooledConnection)pool.elementAt(x);
if(!pcon.inUse())
{
pcon.setInUse(true);
returnpcon.getConnection();
}
}

try
{
Connectionconn=db.getConnection();
pcon=newPooledConnection(conn);
pcon.setInUse(true);
pool.addElement(pcon);
}
catch(Exceptione)
{
System.err.println("Exceptionerror:".concat(String.valueOf(String.valueOf(e.getMessage()))));
}
returnpcon.getConnection();
}

publicsynchronizedvoidemptyPool()
{
for(intx=0;x<pool.size();x++)
{
System.err.println("ClosingJdbcConnection".concat(String.valueOf(String.valueOf(x))));
PooledConnectionpcon=(PooledConnection)pool.elementAt(x);
if(!pcon.inUse())
{
pcon.close();
continue;
}
try
{
Thread.sleep(3000L);
pcon.close();
}
catch(Exceptione)
{
System.out.println("Exception:".concat(String.valueOf(String.valueOf(e.getMessage()))));
}
}

db.close();
}
}
testpool.jsp内容以下:
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>

<HTML>
<HEAD>
<TITLE>体系数据信息</TITLE>
</HEAD>
<BODY>
<%ConnectionPooldb=newConnectionPool();
Connectionconn=db.getConnection();
Statementstmt=conn.createStatement();
Stringsql1="select*frompg_database";

ResultSetrs=stmt.executeQuery(sql1);
%>
<TABLE><TR><TD>体系数据库信息</TD></TR>
<TR><TD>
<%while(rs.next()){
%>
<%=rs.getString(1)%>
<%}
rs.close();%>
</TR></TD>
<TABLE><TR><TD>体系字段信息</TD></TR>
<TR><TD>
<%Stringsql2="select*frompg_type";
rs=stmt.executeQuery(sql2);
while(rs.next()){
%>
(<%=rs.getString(1)%>)
<%}
rs.close();
db.close();%>
</TR></TD>
</BODY>
</HTML>
 




轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,
爱飞 该用户已被删除
沙发
发表于 2015-1-21 09:31:31 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
admin 该用户已被删除
板凳
发表于 2015-1-30 13:30:17 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
变相怪杰 该用户已被删除
地板
发表于 2015-2-1 19:03:20 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
柔情似水 该用户已被删除
5#
发表于 2015-2-3 19:52:38 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
透明 该用户已被删除
6#
发表于 2015-2-9 04:32:53 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
冷月葬花魂 该用户已被删除
7#
发表于 2015-2-26 22:17:42 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
乐观 该用户已被删除
8#
发表于 2015-2-28 14:17:00 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-5 11:44:26 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
蒙在股里 该用户已被删除
10#
发表于 2015-3-7 17:45:42 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
兰色精灵 该用户已被删除
11#
发表于 2015-3-8 15:17:56 | 只看该作者
是一种突破用户端机器环境和CPU
小妖女 该用户已被删除
12#
发表于 2015-3-16 02:53:22 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
老尸 该用户已被删除
13#
 楼主| 发表于 2015-3-16 09:21:50 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
不帅 该用户已被删除
14#
发表于 2015-3-22 22:07:11 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
若相依 该用户已被删除
15#
发表于 2015-3-25 10:44:58 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
飘飘悠悠 该用户已被删除
16#
发表于 2015-3-27 23:10:27 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
飘灵儿 该用户已被删除
17#
发表于 2015-4-2 11:21:10 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
金色的骷髅 该用户已被删除
18#
发表于 2015-4-4 23:34:35 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
因胸联盟 该用户已被删除
19#
发表于 2015-4-20 10:11:31 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
小魔女 该用户已被删除
20#
发表于 2015-4-21 10:40:15 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 18:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表