TOMCAT中的访问IP控制

Filed Under (TOMCAT配置) by 有为 on 01-04-2009

TOMCAT中没有IIS中的IP限制那么界面友好,与APACHE一样都要编辑配置文件实现,当然也有其他办法来更灵活控制,现分别讲以下几种方法:
(1)在server.xml中,对需要限制的context以下修改:
<Host name=”*.cn” appBase=”H:\cwc”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
<Context path=”" reloadable=”true” docBase=”ROOT”>
<Resource name=”jdbc/ywdesign” type=”javax.sql.DataSource” maxActive=”300″ maxIdle=”50″ maxWait=”10000″
username=”*”  password=”*******” driverClassName=”com.mysql.jdbc.Driver”
url=”jdbc:mysql://127.0.0.1:3306/cwc? autoReconnect=true”/>
<Valve className=”org.apache.catalina.valves.RemoteAddrValve”
allow=”210.30.152.*,210.30.153.*,210.30.154.*,210.30.155.*,210.30.156.*,210.30.157.*,
210.30.158.*,210.30.159.*” deny=”"/>

</Context>
</Host>
或者使用RemoteHostValve 可以过滤主机。
(2)写个限制IP的jsp然后include进其它的jsp页面中,特别是登录页面中。
(3)如果页面多的话,加个过滤器,在过滤器中进行IP限制。
后两者更灵活一点,便于在WEB后台随时控制。

Jdk1.6+Tomcat6安装(Windows)

Filed Under (TOMCAT配置) by 有为 on 13-03-2009

Step 1 JDK安装
———————————————————————————-
 1.1 点击jdk-6u1-windows-i586-p.exe文件安装Jdk,选择目录(假使E:\jdk1.6),一路回车,安装完成
 1.2 添加JAVA环境变量(我的电脑右键->属性->高级->环境变量->系统变量)
        CLASSPATH   设置变量值  .;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
        JAVA_HOME   设置变量值  E:\jdk1.6
        PATH             设置变量值  .;%JAVA_HOME%;%JAVA_HOME%\bin;
 1.3 在DOS命令行状态下测试Java是否成功安装,敲入java -version可以查看版本
     c:\>java -version
     java version “1.6.0_01″
     Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
     Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)

Step 2 Tomcat安装
———————————————————————————-
 2.1 点击apache-tomcat-6.0.10.exe文件安装Tomcat,选择目录(假使E:\Tomcat6)安装完成后
 2.2 添加TOMCAT环境变量(我的电脑右键->属性->高级->环境变量->系统变量)
         TOMCAT_HOME     设置变量值  E:/Tomcat6

         CATALINA_HOME   设置变量值  E:/Tomcat6
 2.3 从程序菜单或是服务里启动Tomcat,然后你在浏览器输入http://localhost:8080/就可以看到Tomcat欢迎页面。
     正常情况下都会成功,如果启动失败,请检查jakarta_service_日期.log日志,通过它一般可以解决问题。
 
     比如出现类似报错:
     [947  prunsrv.c] [error] Failed creating java
     解决方法:把%JAVA_HOME%\bin\ 下的文件 msvcr71.dll 拷贝到 %TOMCAT_HOME%\bin\下

     打开浏览器 进入http://localhost:8080/,当看见Tomcat小猫的图标了,这样表示安装成功。

(Linux)Tomcat开机自动启动(原创)

Filed Under (Linux&Unix, TOMCAT配置) by 有为 on 25-09-2008

1、向/etc/profile中加入环境变量,内容如下:
JAVA_HOME=/usr/java/jdk1.5.0_09
export JAVA_HOME

JRE_HOME=/usr/java/jdk1.5.0_09/jre
export JRE_HOME

#APACHE_HOME=/usr/local/apache
#APACHE2_HOME=/usr/local/apache

TOMCAT_HOME=/usr/share/tomcat5
CATALINA_BASE=/usr/share/tomcat5
CATALINA_HOME=/usr/share/tomcat5
export TOMCAT_HOME CATALINA_BASE CATALINA_HOME

#ANT_HOME=/usr/local/apache-ant
#export ANT_HOME

#JAMES_HOME=/usr/local/james
#export JAMES_HOME

CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$TOMCAT_HOME/webapps

#CLASSPATH=$CLASSPATH:/var/www/html/webapps/WEB-INF/lib:/var/www/html/webapps/WEB-INF/classes

export CLASSPATH

#MYSQL_HOME=/usr/local/mysql

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH
2、创建Tomcat启动Shell脚本/usr/share/tomcat5/bin/tomcatd.sh,内容如下:
JAVA_HOME=/usr/java/jdk1.5.0_09
export JAVA_HOME


JRE_HOME=/usr/java/jdk1.5.0_09/jre
export JRE_HOME

#APACHE_HOME=/usr/local/apache
#APACHE2_HOME=/usr/local/apache

TOMCAT_HOME=/usr/share/tomcat5
CATALINA_BASE=/usr/share/tomcat5
CATALINA_HOME=/usr/share/tomcat5
export TOMCAT_HOME CATALINA_BASE CATALINA_HOME

#ANT_HOME=/usr/local/apache-ant
#export ANT_HOME

#JAMES_HOME=/usr/local/james
#export JAMES_HOME

CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$TOMCAT_HOME/webapps

#CLASSPATH=$CLASSPATH:/var/www/html/webapps/WEB-INF/lib:/var/www/html/webapps/WEB-INF/classes

export CLASSPATH

#MYSQL_HOME=/usr/local/mysql

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH
cd $TOMCAT_HOME/bin; ./startup.sh
3、添加启动项到/etc/rc.local中。
/usr/share/tomcat5/bin/tomcatd.sh > /dev/null &

MySQL 的自动断开连接问题

Filed Under (JAVA工程坊, TOMCAT配置, mysql学习) by 有为 on 25-09-2008

最近发现 MySQL 会自动断开 IDLE 时间超过 8 小时的数据库连接,从而导致一些基于数据库连接的应用程序,特别是 WEB 应用程序出错。

有两个办法可以解决这个问题:

第一个办法是修改 MySQL 的配置参数。这个参数的名称是 wait_timeout,其默认值为 28800(单位秒),刚好就是 8 小时。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数,MySQL 会主动断开这个连接。

有实践表明,没有办法把这个值设置成无限大,即永久。因此如果你无法保证你的应用程序必定在设定的秒数内至少有一次操作,那么最好用第二个方法解决这个问题。

第二个办法是如下修改 JDBC 连接的 URL:

jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true

添加 autoReconnect=true 这个参数,即能解决这个问题。

另外,对于 Java 的应用程序,据说第三方的数据库连接池应用 Proxool 能够对断开的数据库连接发起自动重连,不过我没有用过,有兴趣的朋友可以尝试一下。

设置Tomcat的UTF-8编码

Filed Under (TOMCAT配置) by 有为 on 25-09-2008

Tomcat中利用request.setCharacterEncoding(”UTF-8″)来设置接收请求的编码格式,只对POST方式提交的数据有效,对GET方式提交的数据无效!不知道是否有人遇到跟我一样的问题?

要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding=”UTF-8″,这样,GET方式提交的数据才会被正确解码。

我所使用的Tomcat版本是5.5.16,其它版本没试过,不知道是否存在同样的问题。