环境:RedHat 9.0
jdk安装路径:/usr/java/jdk
Tomcat安装路径:/usr/local/tomcat/
总共分为以下几个步骤:
一、安装配置jdk
二、安装配置Tomcat
三、安装PostgreSQL
四、Tomcat测试
五、连接数据库
所需要的软件:
j2sdk-1_4_2-linux-i586-rpm.bin
jakarta-tomcat-4.1.30.tar.gz
postgresql-7.4.1-1PGDG.i386.rpm
postgresql-jdbc-7.4.1-1PGDG.i386.rpm
postgresql-server-7.4.1-1PGDG.i386.rpm
postgresql-libs-7.4.1-1PGDG.i386.rpm
这些软件全部在/download留个备份
#mkdir /download
1 安装配置jdk
下载地址:http://java.sun.com/j2se/1.4.2/download.html
下载其中的rpm包,其实是个.bin文件
#chmod u+x j2sdk-1_4_2-linux-i586-rpm.bin
#./j2sdk-1_4_2-linux-i586-rpm.bin
#rpm -ivh j2sdk-1_4_2-linux-i586-rpm
#cd /usr/java/
#ln -s j2sdk1.4.2/ jdk/
设置环境变量:
这里不要写到/etc/profile中去了。那样会导致每个用户启动都可以使用jdk。
因为要使用tomcat,所以写到tomcat的home目录去.
#vi /home/tomcat/.bashrc(也可以是.bash_profile)
export JAVA_HOME=/usr/java/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
su到tomcat用户,看是否可以使用
#su - tomcat
$javac
$java
有显示吗?如果有,那么jdk配置成功。
重新su到root
2 配置tomcat Tomcat我是由tomcat这个用户来启动的,请注意:)
因为我下载的是binary版本,所以不需要再进行编译。
#cp /download/jakarta-tomcat-4.1.30.tar.gz /usr/local
#tar zxvf jakarta-tomcat-4.1.30.tar.gz
#rm -f jakarta-tomcat-4.1.30.tar.gz
#cd jakarta-tomcat-4.1.30
可以测试Tomcat能否正常启动了:
#bin/startup.sh
你会看到这些东东:
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME: /usr/java/jdk
然后打开浏览器,输入http://localhost:8080,如果您能看到一只变态的小猫望着你的话,那么恭喜您
,tomcat也成了
3 安装PostgreSQL
既然已经下载了postgresql的安装包,而且是rpm的,安装起来就很方便啦:)到http://www.postgresql.org去下
当然,有很多mirror,我到台湾的一个mirror站点下的for as3的包,您也去找找吧,下载到/download目录
#cd /download
#rpm -ivh --nodeps postgresql*.rpm 一定要加上--nodeps,放心,装上后使用没有问题
完成以后,您可以使用
#service postgresql start 来启动pgsql,
如果您看见了
Starting postgresql service: [ 确定 ]
那么,pgsql也可以运行了,当然,可以看看默认的设置
#su - postgres
#psql
当然,记得先要initdb.
现在,我们开始测试servlet,jsp,以及jsp连接PostgreSQL
4
首先,我们先测试jsp,因为这个比较简单.
#cd /usr/local/tomcat/webapps
#mkdir -p myapp/WEB-INF 注意大小写
#cp ROOT/WEB-INF/web.xml myapp/WEB-INF
#vi myapp/index.jsp
<html><body>
<%= new java.util.Date() %>
</body></html>
这样通过http://localhost:8080/myapp/index.jsp是不能访问的,还需要给tomcat增加一个context
vi ../conf/server.xml
查找< Context path=
然后该段后面添上<Context path="/myapp" docBase="myapp" />
重新启动tomcat,在浏览器中输入http://localhost:8080/myapp/index.jsp
如果正常,那么恭喜您,这个也成功了
其次,测试servlet
先写一个最简单的servlet。
package test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Test extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
out.println("<html><body><h1>This is a servlet test.</h1></body></html>");
}
}
把上述文件存为Test.java,然后用javac进行编译,把产生的Test.class文件copy到/usr/local/tomcat/webapps/myapp/WEB-INF/classes/test/
修改myapp/WEB-INF/web.xml,改后大概是这个样子
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<description>
A application for test.
</description>
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>test.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
</web-app>
重新启动tomcat4,打开浏览器输入http://localhost:8080/myapp/Test,应该是显示This is a servlet test.
若出现错误,400错误,表示没找到文件,应该是server.xml中没写Context,如果是500错误,那么是程序有问题:)
其他错误请自行解决。
5 连接数据库
这个需要postgresql的jdbc,我们开始rpm -ivh post*.rpm的时候,已经都安装了,使用rpm -qa | grep post
找出该jdbc的包的名称
ostgresql-7.4.1-1PGDG
postgresql-jdbc-7.4.1-1PGDG
postgresql-libs-7.4.1-1PGDG
找它的路径.
#rpm -ql postgresql-jdbc-7.4.1-1PGDG
发现在/usr/share/pgsql/中,文件列表如下:
/usr/share/pgsql/pg74.1jdbc1.jar
/usr/share/pgsql/pg74.1jdbc2.jar
/usr/share/pgsql/pg74.1jdbc2ee.jar
/usr/share/pgsql/pg74.1jdbc3.jar
这个jdbcX.jar表示分别对应与jdbc版本,我使jdbc2.0,于是这么做
#cp pg74.1jdbc2.jar pg74.1jdbc2.jar.bak
#mv pg74.1jdbc2.jar postgresql.jar
把该postgresql.jar放到/usr/java/jdk/jre/lib/ext/中,也可以添加到CLASSPATH中。
写一个简单的jsp脚本进行测试连接数据库
pgsql.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://127.0.0.1:5432/postgres" ; /postgres为该server上的db
String user="postgres"; 数据库用户
String password="YourPass"; 该用户密码
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from weather"; 我的数据库中有个表是weather,您也可以使用自己创建的表
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
把这个文件存到myapp/下,然后http://localhost:8080/myapp/pgsql.jsp,应该是没有问题,我都测试通过。