`

Linux下安装和设置Tomcat,解决JSP中文乱码

阅读更多

1,安装J2SDK
1.1 使用Debian源里的安装包

以root 身份运行apt-get install sun-j2sdk1.4,这样将安装sun的j2sdk1.4。然后输入java如果你看到的不是command not found,就表示你已经安装正确了。否则搜索是否有java和javac两个文件,我的在/usr/lib/j2sdk1.4-sun/bin下,如果有就创建链接到/usr/bin下,连接名与原文件名一样。

1.2 使用sun网站上的安装包

具体方法参考sun网站上的安装说明。也可以参考我的做法(图形界面操作):

下载正确的压缩包后解压,一般得到类似名为jdk1.x.x的文件夹。将整个文件夹移动到/usr/lib目录下,然后进入jdk.1.x.x/bin下的java, javac, javadoc, jar四个可执行文件创建链接,然后复制到/usr/bin文件夹下,并且改名为与原文件相同。这样做的原因是一般/usr/bin是$PATH环境变量的一部分,以后你想运行javac命令编绎一个.java源文件时,只需要输入javac filename就行了,而不需要输入javac文件所在的完整路径。

JAVA_HOME环境变量可以不设置,因为据我的使用经验,java,javac等jdk的程序知道在哪里找到自己的家。当某个程序需要JAVA_HOME环境变量,我们再在它的启动脚本中设置。因为使用JAVA_HOME环境变量的程序很少。

2,安装Tomcat
从http://tomcat.apache.org/网站上下载tomcat for Linux。网站上有不同版本的源码包和二进制包等,而二进制包又有core,deployer,embedded三种。我使用tomcat5.28二进制包中的core。

下载jakarta-tomcat-5.0.28.tar.gz解压,将得到jakarta-tomcat-5.0.28文件夹,我把它改名为tomcat5,把它拷贝到你喜欢的地方。我放在/usr/share/下。

2.1 试运行tomcat

在终端中输入/usr/share/tomcat5/bin/startup.sh,将启动tomcat。然后你在浏览器中输入http://localhost:8080或者http://127.0.0.1:8080你就看到tomcat产生的页面了。

运行/usr/share/tomcat5/bin/startup.sh出错?试运行:

JAVA_HOME=/usr/lib/j2sdk1.4_sun #这里的路径是你的j2sdk的安装路径
export JAVA_HOME
/usr/share/tomcat5/bin/startup.sh
2.2 将tomcat设置为开机启动

有两个方法,1是使用tomcat自带的启动脚本启动,2是使用jsvc将tomcat启动为Linux的一个进程。

2.2.1 使用Tomcat自带的启动脚本

建立一个脚本命名为tomcat5.sh,内容为:

#!/bin/sh
#file:tomcat5.sh
#设置环境变量,如果无法启动就将注释去掉
#JAVA_HOME=/usr/lib/j2sdk1.4-sun
#CATALINA_HOME=/usr/share/tomcat5
#CLASSPATH=\
#$JAVA_HOME/lib/tools.jar:\
#$CATALINA_HOME/bin/commons-daemon.jar:\
#$CATALINA_HOME/bin/bootstrap.jar
case "$1" in
start)
   echo "Starting tomcat5..."
   /usr/tomcat5/bin/startup.sh
   ;;
stop)
   echo "Stopping tomcat5..."
   /usr/tomcat5/bin/shutdown.sh
   ;;
*)
   echo "Usage tomcat.sh start/stop"
   exit 1;;
esac
#tomcat5.sh end
将tomcat5.sh 拷贝到/etc/init.d下面。然后运行/usr/bin/ksysv运行图形界面的开机启动设置工具。将Available Services栏里的tomcat5.sh拖到Runlever 2 Start,Runlever 3 Start,Runlever 4 Start,Runlever 5 Start,Runlever 6 Start,Runlever 0 Stop,Runlever 1 Stop,Runlever 6 Stop,你可能需要注意图标的位置,我将图标拖到每一栏的启动项目标号是90的位置。

或者你在终端里运行:

ln -s /etc/init.d/tomcat5.sh /etc/rc0.d/K90tomcat5.sh
ln -s /etc/init.d/tomcat5.sh /etc/rc1.d/K90tomcat5.sh
ln -s /etc/init.d/tomcat5.sh /etc/rc2.d/S90tomcat5.sh
ln -s /etc/init.d/tomcat5.sh /etc/rc3.d/S90tomcat5.sh
ln -s /etc/init.d/tomcat5.sh /etc/rc4.d/S90tomcat5.sh
ln -s /etc/init.d/tomcat5.sh /etc/rc5.d/S90tomcat5.sh
ln -s /etc/init.d/tomcat5.sh /etc/rc6.d/K95tomcat5.sh
重启机器看tomcat是否可以自动启动了。

2.2.2 使用jsvc,增加安全性

方法2.2.1有一个严重的问题,那就是tomcat具有root权限。我意味着你的任何一个jsp脚本都具有root权限,所以可以轻易地用jsp脚本删除你整个硬盘里的东西!所以我们最好不要使用2.2.1方法。

我们下载的jakarta-tomcat-5.0.28.tar.gz带有jsvc工具,在压缩包里的jakarta-tomcat-5.0.28/bin/jsvc.tar.gz,如果你按上面的步骤做了,它就在/usr/share/tomcat5/bin/jsvc.tar.gz,将其解压,得到/usr/share/tomcat5/bin/jsvc-src文件夹。在终端运行:

/usr/share/tomcat5/bin/jsvc-src/configure --with-java=/usr/lib/j2sdk1.4-sun

make

得到/usr/share/tomcat5/bin/jsvc-src/jsvc文件。将/usr/share/tomcat5/bin/jsvc-src/native/tomcat5.sh脚本文件拷贝到/etc/init.d下,再使用2.2.1中的的半部分方法将tomcat设置为自启动。

/etc/init.d/tomcat5.sh还需要修改,使其看起来像:

JAVA_HOME=/usr/lib/j2sdk1.4-sun
CATALINA_HOME=/usr/share/tomcat5
DAEMON_HOME=/usr/share/tomcat5
TOMCAT_USER=tomcat5 #这里改为一个普通身份的用户名
TMP_DIR=/var/tmp
CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
case "$1" in
start)
   #
   # Start Tomcat
   #
   $DAEMON_HOME/bin/jsvc-src/jsvc \
......
先不要重启试验,请手动运行/etc/init.d/tomcat5.sh start,然后在浏览器中输入http://localhost:8080或者http://127.0.0.1:8080看tomcat是否能够启动,再运行/etc/init.d/tomcat5.sh stop看是否能停止。

问题:无法用jsvc启动tomcat?

在http://jakarta.apache.org/commons/daemon/faq.html有说明。如果你使用Debian,运行modconf然后将/kernel/security下的capability模块安装上。如果你使用其它的版本,并且把capability编绎为模块,请在/etc/init.d/tomcat5.sh的合适位置(你想使用第2行?)加上modprobe capability。

3,设置tomcat的server.xml布署网站
如果你想让别人在浏览器中输入你的IP而不需要在IP后面加上“:端口号”就能访问你的网站的话,请将

<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
中的port="8080"改为port="80",因为80是浏览器请求的默认端口。找到

<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
修改为使appBase="/home/tomcatweb"。并在其后面加上:

<Context path="" docBase="/home/tomcatweb" reloadable="true"></Context>
把你自己的index.jsp放在/home/tomcatweb目录下,然后在浏览器中输入http://127.0.0.1,你应该就能看到index.jsp的运行结果了。

4,中文问题
tomcat并没有特殊的中文问题。而且大部分情况下的中文问题是因为用户根本就不会写JSP代码,甚至不会写HTML代码。

4.1 简单HTML文件的乱码问题

一个HTML文件,里面包含有中文文字,如:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
你好。
</html>
上面的标签告诉浏览器你的HTML文件使用的是UTF-8编码格式。请将UTF-8正确地设置为你的文本编辑器保存时的编码,否则,只有全英文HTML源码文件才能保证不出现乱码。

4.2 简单的JSP文件的乱码问题

一个JSP文件,里面包含有中文文字,如:

<%@ page contentType="text/html; charset=UTF-8" %>
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<%
out.println("你好。");
%>
</html>
<%@ page contentType="text/html; charset=UTF-8" %>标签告诉tomcat和java编绎器你的文件的编码是UTF-8格式的。

4.3 被包含的文件的内容是乱码

如果你的parent.jsp文件中使用<jsp:include page="child.jsp" >文件包含了child.jsp,请在parent.jsp和child.jsp文件中都指定了正确的<%@ page contentType="text/html; charset=UTF-8" %>(改UTF-8为正确的编码),两者可以不一样。

如果你的parent.jsp文件中使用<%@ include file="child.jsp" %>文件包含了child.jsp,请保证parent.jsp和child.jsp是相同的编码,并且在parent.jsp中设置了正确的<%@ page contentType="text/html; charset=UTF-8" %>(改UTF-8为正确的编码)。不要在child.jsp中设置<%@ page contentType="text/html; charset=UTF-8" %>,否则,tomcat会出错(不总是)。

更新, 在Tomcat5.5中测试, 在child.jsp中必须设置<%@ page contentType="text/html; charset=UTF-8" %>, 两者的编码必须相同.


4.4 POST方法的乱码

在request.getParameter();之前运行request.setCharacterEncoding("UTF-8");,其中UTF-8是你的提交页面的文件编码。

4.5 使用javaIO读取的文件是乱码

请重写你的函数,而不是试图更改tomcat的设置。
 

 

分享到:
评论

相关推荐

    如何解决Tomcat下中文乱码问题?

    总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...

    tomcat显示出现中文乱码问题.docx

    总的来说,解决Tomcat中文乱码问题需要综合考虑请求、响应以及日志输出等多个环节的字符编码设置。通过以上步骤和注意事项,大部分情况下可以有效地解决乱码问题。如果仍然存在问题,可能需要进一步排查应用程序本身...

    Myeclipse Tomcat 控制台乱码设置

    ### MyEclipse Tomcat 控制台乱码设置详解 在进行Web开发时,尤其是使用Java进行开发的过程中,经常遇到的一个问题就是控制台出现乱码。这种情况不仅会影响开发体验,还可能导致一些难以察觉的问题。本文将详细介绍...

    java解决中文乱码问题

    Java 解决中文乱码问题 Java 中文乱码问题是中国程序员无法避免的话题。乱码的出现是由于中文和英文的编码格式不同,解码也是不一样...解决 Java 中文乱码问题的关键是选择合适的编码方式和正确地配置 Tomcat 和 JSP。

    解决Tomcat在控制台console中显示乱码的问题

    在IT行业中,尤其是在Java Web开发领域,Apache Tomcat是一个广泛使用的Servlet容器,它负责解析和执行JSP、Servlet等Web应用程序。然而,在实际操作中,我们可能会遇到各种问题,其中一种常见的情况就是Tomcat在...

    JSP中文乱码问题

    ### JSP中文乱码问题解析 #### 一、引言 在进行Web开发时,特别是使用Java Server Pages(JSP)技术,经常会...通过以上详细解析,希望可以帮助广大开发者更好地理解和应对JSP中文乱码问题,提高开发效率和用户体验。

    Jsp页面中的字符编码方式与乱码解决方法

    JSP 页面中的字符编码方式与乱码解决方法 在 JSP 中,字符编码方式的设置是非常重要的,因为它直接影响着页面的显示效果。如果不正确地设置字符编码方式,可能会出现乱码问题。下面我们将详细介绍 JSP 中的字符编码...

    jsp中文问题解决方案(完整版)

    【标题】:深入解析JSP中文问题解决方案 【描述】:在Java应用程序开发中,处理中文乱码问题是一项常见的挑战,特别是在使用非Unicode编码如GB2312(包括GBK简体和Big5繁体)的环境中。正确展示中文和在数据库中...

    apache-tomcat-8.0.33中文.zip

    在本描述中,我们将深入探讨这个版本的Tomcat如何帮助解决JavaEE项目中的乱码问题,以及如何部署和运行你的项目。 首先,JavaEE项目常常遇到编码问题,尤其是当涉及到多语言支持或者不同系统间的文件传输时。Apache...

    解决Linux下Tomcat向MySQL插入数据中文乱码问题

    这里我们将深入探讨如何解决Linux环境下Tomcat服务器向MySQL数据库插入中文数据时出现乱码的问题。 首先,我们要了解这个问题的背景。在Windows上开发的项目,可能在本地环境使用了某种特定的字符编码(如UTF-8),...

    apache-tomcat-8.5.53_tomcat的8.0版本_ApacheTomcat8.5_choiceyqj_

    Apache Tomcat 是一款广泛应用的开源Java Servlet容器,它实现了Java EE的Web部分,特别是Servlet和JSP规范。在这个"apache-tomcat-8.5.53"版本中,我们聚焦于Tomcat的8.0系列,具体是8.5.53这个稳定版本。这个版本...

    解决开发中乱码方案

    本文将详细探讨几种有效的解决Web开发中中文乱码的方法,并通过具体的示例代码帮助读者理解和应用。 #### 方法一:调整JSP页面编码设置 1. **JSP页面编码设置**: ```jsp *" pageEncoding="UTF-8" contentType=...

    彻底解决jsp中用SmartUpload上传附件中文乱码问题实用.pdf

    通过以上步骤,我们可以确保在不同的操作系统(如Win2000、Unix、Linux)和Web服务器(如Tomcat、WebSphere)环境下,使用SmartUpload上传和下载中文附件时,文件名都不会出现乱码问题。关键在于正确处理文件名的...

    解决JSP中文显示问题的几个方法

    ### 解决JSP中文显示问题的几个方法 在开发基于Java的Web应用时,经常会遇到中文乱码的问题,尤其是在处理用户输入或者从数据库读取数据的过程中。本文将详细介绍几种常见的解决JSP页面中文显示问题的方法。 #### ...

    tomcat9绿色版

    【标题】:“Tomcat9绿色版”是指一种免安装的Tomcat服务器版本,适用于快速部署和测试环境。这种版本的特点是轻便、便捷,只需解压缩文件,即可直接运行,无需进行复杂的安装步骤。 【描述】:描述中的“绿色版”...

    tomcat服务器以及环境配置

    选择合适的安装路径,避免中文目录,以防止出现乱码问题。 3. **配置环境变量**:环境变量的设置对于Tomcat的正常运行至关重要。文件`Tomcao环境变量的设置.txt`可能包含了详细的环境变量配置指南。通常,你需要...

    JSP聊天+BBS论坛

    这个BBS和聊天室完全采用JSP开发,开发运行环境linux+tomcat,数据库oracle9i,JSP 通过JDBC与数据库相连。 一、功能 BBS和chatroom两者有机的结合在一起,用户可以在这两部分取得经验值,达到10000分 后升级为巫师,...

    SGIIRIX6.5下基于J2EE Tomcat5.0 MySQL4.0应用开发的实现.pdf

    在IRIX环境下,可能需要特别注意文件系统的权限设置和字符集支持,以确保中文字符能够正确显示,避免出现乱码问题。 文章还提到了在特定操作系统下,Java技术跨平台时可能出现的汉字乱码问题。这通常是由于字符编码...

    apache-tomcat-8.5.50-src.zip

    Apache Tomcat 8.5.50 是一个广泛使用的开源软件,用作Java Servlet和JavaServer Pages(JSP)的Web应用服务器。Tomcat是Apache软件基金会Jakarta项目的一部分,它实现了Java EE的Web组件规范,特别是Servlet和JSP...

Global site tag (gtag.js) - Google Analytics