技术开发 频道

Linux平台jsp环境搭建

    【IT168 技术文档】Linux平台jsp环境搭建(Tomcat4+jdk+postgreSQL7.4)

    环境:RedHat as3
    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

    添加环境变量:
    #vi /home/tomcat/.bashrc
    export CATALINA_HOME=/usr/local/tomcat
    export CATALINA_BASE=/usr/local/tomat

    可以测试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、Tomcat测试
    首先,我们先测试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,应该是没有问题,我都测试通过。

0
相关文章