tomcat jsp

回覆文章
yehlu
Site Admin
文章: 3244
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

tomcat jsp

文章 yehlu »

http://read.newbooks.com.cn/info/52983.html

1、安装
sudo aptitude install tomcat5 tomcat5-admin tomcat5-webapps
2、设置
Tomcat默认的admin和manager帐号是没有启用的,可以编辑/usr/share/tomcat5/conf/tomcat-users.xml文件来启用

cd /usr/share/tomcat5/conf
sudo gedit tomcat-users.xml

在里面新增两个角色admin和manager,增加一个用户root,密码为123456(这里只是例子,用户名和密码可以自己设),编辑后的文件为:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="admin"/>
<role rolename="manager"/>
<user username="root" password="123456" roles="admin,manager"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>

保存退出,重启tomcat
sudo /etc/init.d/tomcat5 restart
3、测试
这时在浏览器里打开http://127.0.0.1:8180,看见页面就说明Tomcat已经安装成功了。然后可以点击左侧的Tomcat Administration和Tomcat Manager进行管理员和站点管理页面。运行首页里左侧的Examples里面的实例可以测试一下jsp运行情况。
其实我个人觉得添加这个管理用户没有多大必要,由于权限,在管理页面进行的更改重启后又会消失。因此如果一定要在管理页面进行更改,请设定Tomcat目录的权限为所有用户可写。即sudo chmod 777 -R /usr/share/tomcat5。个人不推荐这和作法,因为这样会破坏安全性。推荐使用文本进行配置,会在后面谈到。

二、MySQL
1、安装
sudo aptitude install mysql mysql-admin mysql-client-5.0 mysql-navigator mysql-query-browser mysql-server-5.0
2、测试并建立测试帐号
安装后进入终端输入
sudo mysql -uroot
新建一个测试帐号javatest,密码为javadude,并指定可从任意主机登录,授权这个用户拥有数据库javatest的所有权限。添加一个数据库javatest
mysql>GRANT ALL PRIVILEGES ON javatest.* TO javauser@"%" IDENTIFIED BY "javadude";
mysql>create database javatest;

三、测试Tomcat+MySQL
添加一个虚拟目录
cd /usr/share/tomcat5/conf/Catalina/localhost
sudo gedit javatest.xml
添加如下信息:
<Context path="/javatest" docBase="javatest" debug="0" reloadable="true"/>
然后进入tomcat5的webapps目录,添加一个javatest目录,并在其中添加一个文件test.jsp
cd /usr/share/tomcat5/webapps
sudo mkdir javatest
sudo gedit test.jsp
编辑里面的内容为
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/javatest?user=javauser&password=javadude");
Statement stmt=conn.createStatement();
%>

建议使用这种方法进行测试,当然还有两种方法可以添加虚拟目录,一个是编辑conf下的server.xml把先前javatest.xml中的内容填加 server.xml中最末页的</host>前面。另一种方法是不必创建javatest目录,而是将test.jsp打包建立归档文件,并选择war类型,放到webapps下面,Tomcat会自动安装名为javatest的虚拟目录。

注:到目前为止有两个问题,一会儿会谈到。

接下来重启Tomcat
sudo /etc/init.d/tomcat5 restart
通常情况的话,这时便已经可以了。打开浏览器,输入http://127.0.0.1:8180,然后进入Tomcat Manager,可以看到一个名为javatest的目录,点击后会看到一个文件列表,点击其中的test.jsp。如果看到一个空白页面,说明正常。这时可以从终端登录mysql,通过命令show processlist;查看当前连接到的用户信息。

什么?打开test.jsp时只看到一片错误信息?别急,很正常。我说了,如果是通常情况下上面的配置是正确的,就可以看到空白页面和MySQL下的连接信息了。不过目前Ubuntu自带的MySQL和Tomcat存在两个问题(我不知道算不算是BUG),因此连不上很正常。

*问题一:MySQL没有开放locahost:3306和127.0.0.1:3306,而只开放了本机IP。可以通过telnet 127.0.0.1 3306来测试一下,一定是拒绝连接,这个和打开test.jsp里面的access denied很像。
*问题二:通过/etc/init.d/tomcat启动tomcat服务时跟本无法连接数据库,而要通过/usr/share/tomcat/bin/startup.sh来启动。

找到这个原因非常困难,一直以为问题出在jdbc驱动上,随即下载添加mysql-connnect,调试,用了一周多的时间,也没有解决问题,后来发现Ubuntu在安装tomcat时,jdbc驱动已经被安装。
好了,现在可以解决了。首先编辑test.jsp文件,将其中的127.0.0.1换成自己机器的IP地址。然后停止tomcat
sudo /etc/init.d/tomcat stop
再通过startup.sh启动tomcat
sudo /usr/share/tomcat5/bin/startup.sh

OK,这时打开浏览器,输入http://127.0.0.1:8180/javatest/test.jsp,按下回车,界面空白。终端下登录mysql,使用show processlist;查看,可以看到一个User为javauser的用户已经登录。
不过开机会自动运行/etc/init.d下的tomcat5,我一直想找到这个文件的问题所在并进行修正,不过我对shell编程不是很了解。目前的解决方法,只能是开机时禁止这个文件的运行,并使用usr/share/tomcat5/bin下的startup.sh启动服务器。

至此,大功告成!
回覆文章

回到「Linux」