当前位置: 首页 > 图文教程 > 网络编程 > JSP > 搭建java WEB开发环境和应用

JSP
Java 创建cookie和删除cookie
jsp 从web.xml读取连接数据库的参数
jsp 不支持EL表达式,解决办法
jsp 获取客户端的浏览器和操作系统信息
struts2 session 解读
struts2 spring整合fieldError问题
jsp 生成验证码代码
搭建java WEB开发环境和应用
JSP 自定义标签
Java 区分文本中的中英文字符函数
通用JSP页面 jsp入门级文章
jsp struts1 标签实例详解
一个jdbc 测试程序代码
SSH整合中 hibernate托管给Spring得到SessionFactory
jsp SmartUpload 实现上传功能代码
jsp Unsupported encoding: gb2312 错误原因
java Struts2 在拦截器里的跳转问题
jsp 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)
Java 项目生成静态页面的代码
jdk与jre的区别 很形象,很清晰,通俗易懂

JSP 中的 搭建java WEB开发环境和应用


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 36 ::
收藏到网摘: n/a

使用Tomcat服务器,使用DBCP数据源搭建Web开发环境 一 使用Tomcat服务器,使用DBCP数据源搭建Web开发环境
1.JDK安装,默认路径即可
2.Tomcat5.5服务器
1)配置Tomcat的服务器端口:
打开D:\apache-tomcat-5.0.18\conf\server.xml, 查看如下代码:
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
其中,port=8080就是Tomcat提供Web服务的端口
2)进入控制台
必须输入用户名和密码才可以登录manager控制台.
首先,打开D:\apache-tomcat-5.0.18\webapps\manager\WEB-INF\web.xml,查看如下代码:
<!-- Define the Login Configuration for this Application -->
<!-- 确定JAAS的登录方式 -->
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Tomcat Manager Application</realm-name>
</login-config>
<!-- Security roles referenced by this web application -->
<!-- 确定登录该应用所需的安全角色 -->
<security-role>
<description>
The role that is required to log in to the Manager Application
</description>
<!-- 只有manager 角色才可以登录该应用 -->
<role-name>manager</role-name>
</security-role>
其次,打开D:\apache-tomcat-6.0.18\conf\tomcat-users.xml,配置Tomcat的用户名和密码以及角色,查看代码如下:
<?xml version='1.0' encoding='utf-8'?>
<!-- 配置Tomcat用户,密码,角色 -->
<tomcat-users>
<!-- 配置Tomcat角色 -->
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<!-- 配置Tomcat用户 -->
<!-- 配置第1个用户,用户名为tomcat,密码为tomact,角色为tomcat -->
<user name="tomcat" password="tomcat" roles="tomcat" />
<!-- 配置第2个用户,用户名为role1,密码为tomact,角色为role1 -->
<user name="role1" password="tomcat" roles="role1" />
<!-- 配置第3个用户,用户名为both,密码为tomact,角色为tomcat和role1 -->
<user name="both" password="tomcat" roles="tomcat,role1" />
<!-- 配置登录Manager控制台的用户,用户名为manager,密码为manager,角色为manager -->
<user name="manager" password="manager" roles="manager" />
</tomcat-users>
3)部署Web应用
Tomcat部署Web应用的主要方式:
使用控制台部署;利用Tomcat的自动部署功能部署;通过修改server.xml文件部署Web应用;增加自定义的Web部署文件
使用控制台部署和修改server.xml文件部署实质上是相同的.应该尽量避免修改server.xml文件,所以这两种方式不推荐使用.
自动部署就是将Web应用复制到Tomcat的webapps路径下,Tomcat将自动加载该Web应用.
增加自定义的Web部署文件:
进入D:tomcat-5.0.28\conf\Catalina\localhost路径下,该路径下默认有3个配置文件,复制3个文件中的一个,
并将该文件重命名,建议使该文件的文件名与部署的Web应用同名.参考如下:
<!-- 部署一个Web应用,其中,path是Web应用的虚拟路径,docBase是Web应用的文档路径 -->
<Context path="/test" docBase="e:/webroot" debug="0" privileged="true">
</Context>
4)配置Tomcat的数据源
Tomcat本身不具备提供数据源的能力,借助于其他一些开源数据源实现,如DBCP,C3P0等,Tomcat可提供
容器管理的数据源,通过Tomcat提供的数据源,程序可以通过JNDI查找获得数据源,提供更方便的持久层访问.
数据源配置有:全局数据源,局部数据源.
需要DBCP数据源的jar文件(commons-dbcp-1.2.1.jar,commons-pool-1.2.jar,commons-collections-3.1.jar)和数据库的驱动.
局部数据源配置:修改D:\tomcat-5.0.28\conf\Catalina\localhost\test.xml文件,增加局部数据源后:
<?xml version='1.0' encoding='utf-8'?>
<!-- 配置一个web应用 -->
<Context path="/test" docBase="e:/webroot" debug="0" privileged="true">
<!-- 配置一个资源,资源的名称为jdbc/dstest,类型为数据源 -->
<Resource name="jdbc/dstest" auth="Container" type="javax.sql.DataSource" />
<!-- 定义资源的参数, name属性指定定义哪个资源的参数 -->
<ResouceParams name="jdbc/dstest">
<!-- 下面定义数据源的参数 -->
<parameter>
<!-- 定义数据源工厂 -->
<name>factory</name>
<value>org.apach.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<!-- 定义数据源的最大活动连接数 -->
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<!-- 定义数据源的超时时长,超过该时间,数据源自动断开连接 -->
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
<parameter>
<!-- 定义数据源中的最大空闲连接数,一旦容器中的空闲连接数超过该数,系统将自动销毁一些连接 -->
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<!-- 定义数据源的最大等待数 -->
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<!-- 连接数据库的用户名 -->
<name>username</name>
<value>strutsdb</value>
</parameter>
<parameter>
<!-- 连接数据库的密码 -->
<name>password</name>
<value>strutsdb</value>
</parameter>
<parameter>
<!-- 连接数据库所使用的驱动 -->
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<!-- 连接数据库的url -->
<name>url</name>
<value>jdbc:oracle:thin:@210.45.216.146:1521:oracle</value>
</parameter>
<ResourceParams>
<Context>
启动Tomcat,使用JNDI访问数据源,参考代码如下:
//初始化Context,使用InitialContext初始化Context
Context ctx = new InitialContext();
/**
* 通过JNDI查找数据源,该JNDI为:java:comp/env/jdbc/dstest,将其分成两个部分,
* java:comp/env是Tomcat固定的,Tomcat提供的JNDI绑定都必须加些前缀
* jdbc/dstest是定义数据源时的数据源名
*/
DataSource ds = (DataSource) ctx.looup("java:comp/env/jdbc/dstest");
//获得数据库连接
Connection conn = ds.getConnection();
//获取Statement
Statement stmt = conn.createStatement();
//执行查询,返回ResultSet对象
ResultSet rs = stmt.executeQuery("select * from user");
while (rs.next()) {
...
}
全部数据源配置:修改sever.xml文件,可以参考局部数据源的配置
3.eclipse环境
直接安装插件:是指将插件中包含的plugins和features文件夹的内容复制到eclipse的plugins和features文件夹内,重新启动eclipse即可
扩展安装插件:
1)在Eclipse安装路径下新建links文件夹
2)在links文件夹内,建立xxx.link文件,该文件的名称随意,但后缀必须是link,通常建议使该文件的名称与插件名相同
3)编辑xxx.link,该文件通常只需一行内容:
path = sync
其中,path=是固定的,而sync是文件夹名
4)在xxx.link文件中的path所指的路径下新建eclipse文件夹,再在eclipse文件夹内建立plugins和features文件夹
5)将插件中包含的plugins和features文件夹的内容复制到上面建立的plugins和features文件夹中,然后重启Eclipse.
DBCP是Java开源连接池中最常用的一种,它一般应用在数据库的使用非常频繁的系统中,可以处理数据库连接的大量请求,不失为做大型站点的首选数据库配置.
二  DBCP数据源的创建过程
1. 创建数据源:通过DBCP的BasicDataSource类创建数据源对象ds,设置数据源的驱动类,用户名,密码和连接URL
2.关闭数据源:关闭创建的数据源对象ds
3.测试数据源:在main()函数中测试数据源的使用.首先取得数据源ds,调用数据源的getConnection函数取得数据库的连接对象conn,之后的操作与JDBC的普通操作完全相同.
测试类如下所示:
/**
* 测试DBCP的连接应用
*/
package com.test;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import org.apache.tomcat.dbcp.dbcp.BasicDataSource;
/**
* @author johnston678
* @version 2009-04-27
*/
public class DataSourceExample {
//创建数据源
public static DataSource setupDataSource(String connectURI) {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
ds.setUsername("strutsdb");
ds.setPassword("strutsdb");
ds.setUrl(connectURI);
return ds;
}
//关闭数据源
public static void shutdownDataSource(DataSource ds) throws SQLException {
BasicDataSource bds = (BasicDataSource) ds;
bds.close();
}
public static void main(String[] args) {
//创建BasicDataSource
DataSource dataSource = setupDataSource("jdbc:oracle:thin:@210.45.216.146:1521:oracle");
//创建JDBC对象
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
conn = dataSource.getConnection();
st = conn.createStatement();
String sql = "select username from loginuser";
rs = st.executeQuery(sql);
System.out.println("Results:");
int numcols = rs.getMetaData().getColumnCount();
while (rs.next()) {
for (int i=1; i<=numcols; i++) {
System.out.println(rs.getString(i));
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
st.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
三 在Tomcat中使用DBCP连接池
Tomcat默认使用的是DBCP数据库连接池,Tomcat6.0所需要的jar文件为:tomcat-dbcp.jar.在Tomcat6.0在使用DBCP连接池,必须按照如下的步骤进行配置:
1. 在Tomcat中的Context.xml或DefaultContext.xml中定义
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
<!-- 使用DBCP配置的数据源 -->
<Resource name="jdbc/struts_dbcp_connect"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@210.45.216.146:1521:oracle"
username="strutsdb"
password="strutsdb"
maxActive="100"
maxIdle="30"
maxWait="10000" />
</Context>
2)在web.xml中,配置<resource-ref>元素以在web应用中引用JNDI资源
<resource-ref>
<description>struts dbcp connect</description>
<res-ref-name>jdbc/struts_dbcp_connect</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3)在Web应用中使用数据源
获得对数据源的引用:
Context ctx = new InitalContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/struts_dbcp_connect");
获得数据库连接对象:
Connection conn = ds.getConnection();
返回数据库连接到连接池:
conn.close();
四  在Struts中配置DBCP连接池
DBCP也是Struts的默认的连接池.按照如下步骤在Struts中配置DBCP的连接池
1. 部署DBCP的jar包和oracle的驱动包
Tomcat6.0的DBCP的jar文件是:tomcat-dbcp.jar.
oracle的驱动包jar文件是:C:\oracle\product\10.2.0\db_1\jdbc\lib\classes12.jar
2.在struts-config.xml中配置DBCP数据源,具体如下所示:
<struts-config>
<data-sources>
<!-- 在struts中配置DBCP数据源 -->
<data-source type="org.apache.tomcat.dbcp.dbcp.BasicDataSource">
<set-property property="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<set-property property="url" value="jdbc:oracle:thin:@210.45.216.146:1521:oracle"/>
<set-property property="username" value="strutsdb"/>
<set-property property="password" value="strutsdb"/>
<set-property property="maxActive" value="10"/>
<set-property property="maxWait" value="5000"/>
<set-property property="defaultAutoCommit" value="false"/>
<set-property property="defaultReadOnly" value="false"/>
<set-property property="validationQuery" value="SELECT COUNT(*) FROM loginuser"/>
</data-source>
</data-sources>
...
</struts-config>