浅谈Tomcat乱码与端口占用的解决方案
tomcat常见的错误与解决方案小结
tomcat常见的错误与解决⽅案⼩结⼀、tomcat启动时错误问题1:The JAVA_HOME environment variable is not defined This environment variable is needed to run this program;解决:没有在tomcat的配置⽂件.bash_profile中设置环境变量JAVA_HOME,具体设置⽅法为:加⼊如下⼏⾏:JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.jarexport CLASSPATH问题2:Error occurred during initialization of VM Could not reserve enough space for object heap解决:在tomcat的bin⽬录下,catalina.sh⽂件的tomcat内存参数配置过⼤,超过机器可⽤内存总数造成,修改到适当的值即可,修改的参数为:JAVA_OPTS="-Xms50m -Xmx60m"问题3:tomcat启动时报某个⽬录没有权限,启动失败,或者不能执⾏某些jsp页解决:tomcat需要tomcat⽤户具有⼀些⽬录和⽂件的相应权限, 所有⽬录应该具有读写执⾏(浏览)的权限,jsp,class⽂件应该最少具有读权限, ⼀些⽂件需要写权限,下⾯是已知的需要读写权限⽂件的列表:$CATALINA_HOME/logs下所有⽂件$CATALINA_HOME/work下所有⽂件$CATALINA_HOME/publish/main/count.txt⽂件$CATALINA_HOME/publish/chatroom/resource下的所有.xml⽂件所有上传图⽚⽬录都需要写权限。
tomcat 端口被占用 Address already in use JVM_Bind
【原创】tomcat 端口被占用Address already in use: JVM_Bind:8080tomcat端口被占用的情况:(一)已经启动了tomcat,如果没有关闭再次启动,就会报错(二)没有tomcat启动,仍然报端口被占用。
可能是eclipse中启动了tomcat,eclipse异常终止后,tomcat 内核进程还在。
以我遇到的情况为例:在eclipse中启动了tomcat,调试程序。
中途eclipse异常崩溃,我就重新打开了eclipse,再启动tomcat 时,报错:严重: Error initializing endpoint.BindException: Address already in use: JVM_Bind:8080at .PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:297)at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProtocol.java:138)at org.apache.catalina.connector.Connector.initialize(Connector.java:1016)at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:791)at org.apache.catalina.startup.Catalina.load(Catalina.java:503)at org.apache.catalina.startup.Catalina.load(Catalina.java:523)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:585)at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:266)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)2009-10-28 17:18:55 org.apache.catalina.startup.Catalina load我以为eclipse没启动好,结果又重启了一次,问题依旧。
乱码问题解决方案
乱码问题解决方案1. 名词解释及其作用1. contentType: <%@ page contentType="text/html; charset=UTF-8"%>2. pageEncoding:<%@ page pageEncoding="UTF-8"%>3. html页面charset:<META http-equiv="Content-Type" content="text/html; charset=UTF-8">4. setCharacterEncoding:request.setCharacterEncoding(),response.setCharacterEncoding()5. setContentType:response.setContentType()6. setHeader: response.setHeader()7. jsp页面编码: jsp文件本身的编码8. web页面显示编码:jsp的输出流在浏览器中显示的编码9. web页面输入编码: 输入框输入的字体编码10. web服务器输入的请求流: web Server相应浏览器的请求数据11. web服务器输出的响应流: web Server相应浏览器的输出数据2. 他们之间的相互影响和作用域,以及先后作用顺序1. pageEncoding: 只是指明了JSP 页面本身的编码格式,跟页面显示的编码没有关系;容器在读取(文件)或者(数据库)或者(字符串常量)时将起转化为内部使用的Unicode,而页面显示的时候将内部的Unicode转换为contentType指定的编码后显示页面内容;如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。
Tomcat部署项目时启动报错总结
Tomcat部署项目时启动报错总结1、虚拟机报错端口被占用tomcat的默认端口是8080(或者其他自己设置的),可能已经被其他占用。
解决方法:在tomcat安装路径下conf文件夹中的server.xml中把断口号改掉!如果一台机器上使用多个tomcat,则改掉所有相关的端口避免重复了,包括想如下在server.xml中找到如下地方改掉port的值●●(改完后看看和本机上正在用的tomcat是不是有重复的port)2、tomcat的启动窗口一闪而过Tomcat启动的dos窗口一闪而过,如何看出错信息?在DOS窗口运行STARTUP.BAT文件,另外,吧startup.bat文件最后的call "%EXECUTABLE%" start %CMD_LINE_ARGS%改成:call "%EXECUTABLE%" run %CMD_LINE_ARGS%分析原因1:jdk的环境变量没有配置好解决方法:检查jdk环境变量的配置是否正确,或者重新配置jdk的系统环境变量JDK环境变量配置的步骤如下:1.我的电脑-->属性-->高级-->环境变量.2.配置用户变量:a.新建JAVA_HOMEC:\Program Files\Java\j2sdk1.5.0(JDK的安装路径)b.新建 PATH (注意:把java的配置放在path的最前面)%JAVA_HOME%\bin;%JAVA_HOME%\jre\binc.新建CLASSPATH.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar3.测试环境变量配置是否成功:开始-->运行--〉CMD键盘敲入:JAVAC JAVA出现相应的命令,而不是出错信息,即表示配置成功!环境变量配置的理解:1. PATH环境变量。
作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。
tomcat常见错误与解决方法
上海纽斯达科技tomcat常见错误与解决方法上海纽斯达科技有限公司2014-10-25文档状态目的:在tomcat 服务器出现故障时,能快速定位并解决相关错误。
保密:本文档仅供内部使用,请勿外传概述:tomcat 常见错误与问题之解决方法技术指南。
安装环境:系统环境:redhat enterprise 6.5 64bit文件状态:【 】草稿【 】修改稿 【√】正式发布 文档编号 Nsdkj-779 保 密 等 级 限制 作 者 刘恒亮 最后完成日期 2014-12-25 审 核 人最后审核日期 2014-12-25 批 准 人最后批准日期 2014-12-25注释:Q代表问题,A代表错误解决办法Q:在以tomcat用户启动tomcat时提示:The JAVA_HOME environment variable is not defined This environment variable is needed to run this programA:没有在在tomcat的配置文件.bash_profile中设置环境变量JAVA_HOME,具体设置方法为:加入如下几行:JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/li b/dt.jarexport CLASSPATHQ: 在以tomcat用户登录linux系统后,提示:-bash: /home/tomcat/j2sdk1.4.2_08: is a directory-bash:/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.ja r:没有那个文件或目录。
tomcat解决输出日志显示乱码问题
tomcat解决输出⽇志显⽰乱码问题tomcat 默认解压缩后,启动服务,控制台⽇志输出中⽂显⽰乱码;解决⽅法为:tomcat/conf/ ⽬录下修改logging.properties找到java.util.logging.ConsoleHandler.encoding = utf-8这⾏更改为java.util.logging.ConsoleHandler.encoding = GBK上⾯的⽅式可能不太好,补充下⾼⼿的做法:⾸先要分清是tomcat⽇志编码,与idea的⽇志显⽰控制台编码tomcat⽇志编码:打开cmd窗⼝,查看cmd的输出内容编码格式,命令:chcp 如果显⽰936为GBK,这个是默认的;此时,切换到 tomcat的bin⽬录下,执⾏catalina.bat run,则cmd窗⼝输出的启动⽇志中,中⽂乱码;因为:tomcat/conf/logging.properties 配置⽂件的java.util.logging.ConsoleHandler.encoding = UTF-8已设置为utf8; 解决⽅法:修改cmd窗⼝的编码格式为 UTF-8,执⾏"chcp 65001"切换cmd为utf8,"chcp 936"切换cmd为gbk;再次切换tomcat/bin⽬录执⾏catalina.bat run;⽇志正常;idea显⽰编码:windows默认⽤GBK,所以idea显⽰默认为gbk编码,【⼀定】在 Help-- custom vm options 添加-Dfile.encoding=UTF-8,强制为utf8编码显⽰,不要⾃⼰改.vmoptions可能位置不对,idea会在⽤户⽬录复制⼀个【切忌】⾃⼰改tomcat的logging.properties 为GBk 会导致调试时get/post参数乱码。
tomcat端口被占用问题完美解决方案!
tomcat端⼝被占⽤问题完美解决⽅案!启动Tomcat服务器报错:Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).原因:端⼝8005, 8080, 8009被占⽤了。
可能是在打开Tomcat的情况下关闭了Eclipse,或是Eclipse⾮正常关闭,导致先前的Tomcat没有被关闭,端⼝占⽤。
或是其他软件占⽤了tomcat的端⼝号。
解决⽅法:⽅法1:杀掉占⽤端⼝的软件。
打开任务管理器,找到java虚拟机相关的进程javaw.exe,将它结束掉。
如果问题没有解决,往下看。
如果没有这个进程,那可能是其他软件占⽤了端⼝。
在开始菜单->运⾏->cmd->输⼊ netstat -ano 命令,可以查看哪个进程占⽤了8080和8009端⼝,找到占⽤端⼝软件的PID,然后在任务管理器找到对应PID的软件,关闭结束该进程即可。
如果任务管理器中没有显⽰PID列,需要设置,查看---》选择列---》勾选“PID(进程标识符)”。
⽅法2:修改tomcat默认端⼝号。
修改Tomcat的配置⽂件。
例如:C:/tomcat5.5.25/conf/server.xml<Connector port="8080" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true" />Connector 节点,将port="8080"中的端⼝改为⼀个没有被占⽤的端⼝。
中文乱码解决方案
IE6的“以UTF-8发送URL”选项设置对请求页面字符编码有影响吗?关键字: 字符编码最近又碰到了中文乱码问题,这里我没有把数据库牵扯进来,先说下我的环境,servlet容器使用Tomcat6.0,浏览器FireFox3.0、IE6,涉及字符编码设置的地方我的思路就是编码的地方都统一使用UTF-8,具体配置如下:1.所有页面的charset设置为UTF-8。
2.Tomcat的URIEncoding默认是ISO-8859-1,而我设置为UTF-8,主要是想解决中文命名的文件以及请求以get方式提交有可能出现的乱码问题。
3.添加过滤器,调用request.setCharacterEncoding("utf-8")方法将request 的字符集设定为utf-8,解决请求以post方式提交的乱码问题。
其实这样的设置貌似是不会再出现乱码问题了,不过,问题依旧来了,如果我在浏览器的地址栏中输入中文参数提交,返回的页面却出现了乱码。
真搞不明白到底是哪里出了问题!说起来对中文乱码的问题一直是一支半解,出现乱码了,网上搜罗了一大堆资料,按照网上的配置,问题到是解决了,不过原理却搞的很模糊,一个请求发送到服务器,服务器业务逻辑处理后返回一个页面,这中间涉及的字符集转换,编码,解码过程一概不清楚。
这次,折腾了半天,总算是更进一步了解了字符编码问题,这里做个总结。
先看我的总结,有不对的地方欢迎批评。
首先我们看下,一个请求响应的流程浏览器 IE/FireFox -------->Servlet容器----------------->显示页面编码使用容器的URIEncoding转码解码我把用户发送请求方式不同引起的中文问题划分了四种类型:1、表单的get提交2、表单的post提交3、页面链接传递中文参数4、地址栏中参数直接输入中文提交1.首先我们看表单get方式提交浏览器根据页面的charset编码方式对页面进行编码,然后提交至服务器,首先进入对应的字符编码过滤器(如果有的话),不过Tomcat6.0对于get 提交方式采用的是server.xml文件中的URIEncoding编码方式,而并不会采用过滤器中设置的编码,那么根据我的环境设置,jsp页面都使用UTF-8的编码,Servlet容器的URIEncoding也设置为UTF-8,则servlet不用进行转码即可正确解码,获得正常的中文字符串。
基于J2EE+Tomcat5.0+MySQL5.5应用开发中乱码问题研究
作 者 简介 : 宗 信 ( 9 9 , , 士 , 东夏 津 人 , 究 方 向 为 人 工 智 能 、  ̄ 4 靳 1 7 一) 男 硕 山 研 智 g a息 处 理 -
现 计 机 21. o 代 算 002 1
( ) 编码 标 准 集 ) 用 2 字 节 对 n oe 统 c 使 个 每 一 个 字 符 进 行 编 码 . 高 位 不 表 示 符 号 位 . 以 总共 最 所 能 表 示 6 55个 字 符 U i d 53 nc e中 每个 字 符 都 有 唯一 的 o 表 示 方 式 ,是 Jv 语 言 默 认 的 字 符 集 U i d aa n oe中 0 c ~
2 5的字 符 与 IO8 5 —1中 的 一 致 5 S 89
( ) B 32 3 G 2 1
和 M S L中 都 必 须 采 用 统 一 的编 码 方 式 . 样 才 能 彻 yQ 这
底 解 决 系统 开 发 中 的 中 文乱 码 问 题
1 相 关 编 码 方 式
计 算 机 中所 有 字 符 的 集 合 称 为 “ 符 集 ” 要 在 计 字 . 算 机 表 示 这 些 “ 符 集 ” 中 的字 符 就 必 须 对 其 进 行 编 字
方 案
关 键 词 :aa Jv ;To a 50;My QL 55;乱 码 mct . S .
0 引
言
字 符 表 . 就 是 该 字 符 集 中每 个 字 符 所 对 应 的位 模 式 。 也
因 为 Jv a a与 平 台 的无 关 性 和 开 发 环 境 的 多 样 性 , 使 得 Jv a a在 开 发 的过 程 中经 常 会 遇 到不 同 文 字 编码 之 间相 互 转 化 的 问题 乱码 就 是 在 这 个 转 化 过 程 中没 有 正确 配 对 应 字 符 串 的 字符 集 所 致 。 般 情 况 下 , 符 一 字
解决中文乱码的几种解决方法(推荐)
解决中⽂乱码的⼏种解决⽅法(推荐)⾸先说明我的特殊情况:1. 前台jsp中,我使⽤的是 form post 请求,设置了 enctype="multipart/form-data" ,页⾯编码格式都是utf-82. 后台中,我使⽤的是commons-fileUpload组件,ServletFileUpload 解析form表单和⽂件,3. 设置 request.setCharacterEncoding("UTF-8");4. 设置了ServletFileUpload .setHeaderEncoding("UTF-8");5.Tomcat 的配置下⾯ server.xml 也已经设置了 URIEncoding="UTF-8";⾄此,按道理所有的格式都匹配上了,前后对应,解析出来的肯定是utf-8,但是经过formfield解析出来后任然是ISO-8859-1格式的编码,enctype="multipart/form-data" 会将数据以2进制的编码格式传递,因此我断定是 ServletFileUpload 解析时出了问题,多番查找,我的问题缺少了⼀步String formFieldValue = fileItem.getString("UTF-8");JSP和Servlet的六种中⽂乱码处理⽅法⼀、表单提交时出现乱码:在进⾏表单提交的时候,经常提交⼀些中⽂,⾃然就避免不了出现中⽂乱码的情况,对于表单来说有两种提交⽅式:get和post提交⽅式。
所以请求的时候便有get请求和post请求。
每种⽅式都有着不同的解决⽅法,之所以出现乱码,原因就在于get 请求时,其传递给服务器的数据是附加在URL地址之后的;⽽post的请求时,其传递给服务器的数据是作为请求体的⼀部分传递给服务器。
端口占用解决方法
端口占用解决方法端口占用是指在使用网络通信时,一些程序或服务占用了特定的端口,导致其他程序或服务无法使用该端口进行通信。
端口占用可能会影响系统的正常运行,因此需要及时解决。
下面将介绍一些常见的解决端口占用的方法。
1.查找占用端口的进程:- 使用命令行工具(如Windows的cmd命令提示符或Linux的终端),输入以下命令:netstat -ano(Windows)或lsof -i -P , grep LISTEN (Linux),可以查看当前正在使用的端口及对应的进程ID。
- 在Windows中,可以使用Task Manager(任务管理器)查看当前正在运行的进程和它们的PID(进程ID),然后在命令行工具中输入命令:tasklist , findstr [PID],即可查看该进程的详细信息。
2.结束占用端口的进程:- 在Windows中,可以使用Task Manager,找到对应的进程,右键点击选择"结束进程",或者使用命令行工具输入命令:taskkill /PID [PID] /F(其中[PID]为进程的PID),来强制结束进程。
- 在Linux中,可以使用kill命令,输入命令:kill [PID],来结束进程。
3.修改占用端口的服务配置:- 如果端口占用是由一些服务(如Web服务器、数据库服务器)导致的,可以通过修改该服务的配置文件来修改使用的端口号。
- 在Windows中,可以在服务管理器中找到对应的服务,右键点击选择"属性",然后在"常规"或"设置"选项卡中修改端口号。
4.禁用占用端口的服务:-如果端口占用的服务不再需要使用,可以将其禁用或停止,以释放端口。
- 在Windows中,可以在服务管理器中找到对应的服务,右键点击选择"停止"或"禁用",以停止或禁用服务。
tomcat引起的控制台中文乱码问题(详解)
tomcat引起的控制台中⽂乱码问题(详解)tomcat引起的两种中⽂乱码问题1.tomcat控制台⽇志乱码2.tomcat控制台页⾯打印输出乱码tomcat引起的两种中⽂乱码问题平时在使⽤tomcat做⼀些服务的时候经常遇到各种乱码问题,要么是控制台输出乱码或者输出⽇志乱码,要么页⾯接收乱码1.tomcat控制台⽇志乱码这个问题的原因是windows默认编码集为GBK,由于使⽤startup.bat启动tomcat时,它会读取catalina.bat的代码并打开⼀个新窗⼝运⾏。
打开的cmd默认编码可能不是utf-8,与系统编码不⼀致,所以导致乱码。
所以tomcat的命令框和输出⽇志都是乱码修改cmd命令⾏的编码 :打开注册表,找到HKEY_CURRENT_USER→Console→Tomcat找到CodePage项,没有则创建,更改值为⼗进制的65001修改logging.properties配置 :打开tomcat/conf/logging.properties添加语句:java.util.logging.ConsoleHandler.encoding = GBK重启tomcat,查看⽇志数据即可2.tomcat控制台页⾯打印输出乱码server.xml配置未注明编码格式 :浏览器本⾝有⾃⼰的显⽰编码格式,tomcat的输出也有⾃⼰的格式,甚⾄我们在编写代码的过程中也可以指定输出的编码格式。
所以这类原因导致的乱码,需要我们保持各种编码格式统⼀:在tomcat中将server.xml 的我们所⽤的端⼝的配置添加URIEncoding=“UTF-8”在html的标签内加上meta标签最好在编程中输出页⾯的时候指定编码为UTF-8catalina.bat的配置问题 :在\tomcat\bin\catalina.bat这个配置⽂件中加上set JAVA_OPTS=-Dfile.encoding=UTF-8编译⼯具 :在IDEA编译器中的tomcat VM options:设置-Dfile.encoding=UTF-8,或eclipse 的设置中改成utf-8 输出的问题可以解决注意事项 :(在tomcat中将server.xml 的我们所⽤的端⼝的配置添加URIEncoding="UTF-8"之后,再把VM options设置好之后,重启tomcat,就可以解决问题了)。
乱码的原因及处理方法
乱码的原因及处理方法2012-05-09 17:16困扰已久的乱码问题终于得到解决,希望下次出现更多问题,解决问题的过程很愉快!关于jsp乱码问题的解决2009-01-22 21:32关于jsp乱码问题的解决。
1 最基本的乱码问题。
这个乱码问题是最简单的乱码问题。
一般新会出现。
就是页面编码不一致导致的乱码。
<%@ page language="java" pageEncoding="UTF-8"%><%@ page contentType="text/html;charset=gb2312"%><html><head><title>中文问题</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head></head><body>我是个好人</body></html>三个地方的编码。
第一个地方的编码格式为jsp文件的存储格式。
Eclipse会根据这个编码格式保存文件。
并编译jsp文件,包括里面的汉字。
第二处编码为解码格式。
因为存为UTF-8的文件被解码为iso8859-1,这样如有中文肯定出乱码。
也就是必须一致。
而第二处所在的这一行,可以没有。
缺省也是使用iso8859-1的编码格式。
所以如果没有这一行的话,“我是个好人”也会出现乱码。
必须一致才可以。
第三处编码为控制浏览器的解码方式。
如果前面的解码都一致并且无误的话,这个编码格式没有关系。
有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。
因为页面有时候会嵌入页面,导致浏览器混淆了编码格式。
出现了乱码。
中文参数乱码问题解决方案
问题1:在使用tomcat服务器时,如在跳转路径中传递中文参数会出现乱码现向!如:以<a href=”servlet/LoginServlet?flag=测试”>和<form name=”form1” action =”servlet/LoginServlet?flag=”测试” method=“post”>两种方式提交的变量flag在LoginServlet中用request.getParameter(“flag”);时就会出现乱码问题。
解决:在tomcat/conf/servlet.Xml中加入一段代码:<Connector port="8090" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"debug="0" connectionTimeout="20000"disableUploadTimeout="true"URIEncoding="true"/>问题2:如果uri中转递的是参数要发送到jsp页面,则必须在接受代码的jsp页面里面还要加入代码: <% request.setCharacterEncoding("gb2312");%>问题3:在jsp页面里的代码修正:<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@ page contentType="gb2312"%><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>无标题文档</title></head><body><form name=”form1” action =”***”methoed=”post”>//如不注明是post方式则默认是get方式<body>问题4:在servlet中的代码修正在doPost方法里面最上面的位置加上如下代码:response.setCharacterEncoding("gb2312");request.setCharacterEncoding("gb2312");。
Tomcat乱码解决办法
Tomcat乱码解决办法
⼀、Tomcat控制台中⽂乱码
windows下乱码原因是tomcat采⽤的是utf-8,⽽windows默认是GBK
在tomcat⽬录下的conf⽂件夹中,打开logging.properties⽂件
修改其中的配置:java.util.logging.ConsoleHandler.encoding = GBK
重启tomcat,即可解决控制台中⽂乱码。
⼆、Tomcat访问页⾯乱码问题⼀
通常情况下,tomcat访问乱码是因为tomcat默认页⾯编码是utf-8,但是web项⽬中的⽂件的编码格式为GBK(或其他) ⽅法 1:找到⽹页对应的页⾯原⽂件,修改原⽂件的编码为utf-8。
⽅法 2:找到⽹页对应的页⾯原⽂件,修改原⽂件中html 的编码为utf-8。
三、Tomcat向服务器传送数据乱码问题
tomcat7的默认8080端⼝传送get请求的数据编码为iso-8895-1
tomcat8的默认8080端⼝传送get请求的数据编码为utf-8
解决办法,修改tomcat安装⽬录下的conf⽬录server.xml中的Connector标签如下
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>。
Tomcat中文乱码解决方法
Tomcat 中文乱码解决方法一、通过contentType、pageEncoding或response.setCharacterEncoding设置网页编码(如utf-8、gb2312、gbk或其它编码)。
比如(以gbk为例):<%@ page contentType="text/html;charset=gbk" %>或: <%@ page pageEncoding="gbk" %>或: <% response.setCharacterEncoding ("gbk"); %>二、然后根据以下情况进行具体设置(以下各情况的设置互不关联):◆POST数据的接收只需在接收数据的jsp文件中设置request的字符编码格式为当前POST数据的网页编码,例如:<% request.setCharacterEncoding("gbk"); %>◆GET数据和URL数据(如超链接)的接收只需在Tomcat配置文件server.xml的Connector标签中设置useBodyEncodingForURI为true,或者设置URIEncoding为提交数据的网页编码。
例如:<Connector port="8080" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true"useBodyEncodingForURI="true" 或URIEncoding="gbk" />如果采用useBodyEncodingForURI="true",则需要在接收数据的jsp文件中设置request的字符编码格式为当前网页编码,例如(设当前网页编码为gbk):<% request.setCharacterEncoding("gbk"); %>※URIEncoding参数会影响到所有应用,故推荐设置useBodyEncodingForURI为true的方式接收数据。
Tomcatstartup.bat启动乱码通过修改CMD窗口编码解决
Tomcatstartup.bat启动乱码通过修改CMD窗⼝编码解决Tomcat9.0.x startup.bat启动时乱码,⽹上⼤部分解决⽅案均是修改输出⽇志的配置⽂件Tomcat\conf\logging.properties
java.util.logging.ConsoleHandler.encoding = GBK
不想动Tomcat配置如何解决?
乱码原因分析:
默认⽇志配置⽂件字符集为UTF-8,startup.bat启动时CMD窗⼝默认字符集为GBK(936),字符集不⼀致导致乱码。
解决⽅法:
系统环境:windows server 2016 ,Tomcat9.0.52
1、将startup.bat启动时CMD窗⼝默认字符集修改为与Tomcat配置⽂件⼀致的UTF-8即可。
2、操作系统中打开【运⾏】输⼊regedit,打开注册表,找到:计算机\HKEY_CURRENT_USER\Console\Tomcat,
修改其中Codepage选项,勾选⼗进制,windows默认是936,改为65001。
437(英语)
65001(utf-8)
936(GBK)
注意:不同操作系统Console下显⽰的分⽀有差异,如果没有Tomcat分⽀,
则找到%SystemRoot%_system32_cmd.exe分⽀,修改也有效。
Tomcat安装与配置及其解决启动页面乱码现象
Tomcat安装与配置及其解决启动页⾯乱码现象
2、找到⾃⼰想要下载的版本
3、以8.5为例,点击Tomcat8,有zip、tar.gz、32位、64位,⾃⾏下载
4、我下载的是zip包,因为zip包直接解压就可以配置,不⽤安装,下载完成
⼆、解压和环境配置
1、解压
2、回到桌⾯,找到“此电脑”或“计算机”,按住Alt健,⿏标左键双击“此电脑”图标,也可以右键找到属性,点击属性
3、点击⾼级系统设置
4、点击环境变量
5、在系统变量那点击新建,编写CATALINA_HOME,路径找⾃⼰解压Tomcat⽂件的位置
6、找到Path,点击编辑,配置Tomcat环境到Path中
7、添加完后保存退出
8、启动Tomcat进⾏测试,在之前加压的⽂件夹下⾯找到bin⽂件夹,在bin⽂件夹下找到startup.bat,双击运⾏
9、出现下⾯情况说明启动成功
三、解决Tomcat启动乱码现象
1、启动乱码现象,这是因为字节流解码为字符串时,使⽤不⼀样的字符集
2、在之前解压的⽂件夹下⾯找到conf⽂件夹,在conf⽂件夹下⾯找到logging.properties这⼀个⽂件,使⽤记事本打开
3.由于window系统中本地默认使⽤的字符集是GBK,所以需要把Tomcat中java.util.logging.ConsoleHandler.encoding = UTF-8的UTF-8字符集改为GBK
4、点击保存,在bin⽂件夹下⾯找到startup.bat双击运⾏,可以看到乱码现象已经解决。
解决IDEA启动Tomcat控制台乱码问题
解决IDEA启动Tomcat控制台乱码问题今天在Idea中⽤Tomcat跑⼀个Web项⽬,启动后,Tomcat⽇志在控制台打印出来都是乱码,如下图所⽰:
这个问题是Tomcat的编码问题引起的,解决该问题可以进⾏如下配置:
-Dfile.encoding=UTF-8
如果还不⾏,就这样:
点击确定。
重启TOMCAT进⾏调试,可以看到控制台中tomcat⽇志中的中⽂能正常显⽰了。
上⾯基本上应该不会出现乱码啦
如上述全部尝试还是乱码则需要修改配置⽂件
进⼊idea的安装⽬录, 进⼊bin⽬录下。
找到idea.exe.vmoptions这个⽂件和 idea64.exe.vmoptions,
在最后⼀⾏加⼊-Dfile.encoding=UTF-8,两个⽂件最好都加上。
总结
以上所述是⼩编给⼤家介绍的IDEA 启动Tomcat控制台乱码的解决⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
在此也⾮常感谢⼤家对⽹站的⽀持!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈Tomcat乱码与端口占用的解决方案
这篇文章主要介绍了浅谈Tomcat乱码与端口占用的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。
但是有些小伙伴在启动Tomcat时也会遇到各种各样的问题,比如Tomcat的startup.bat启动后出现乱码,端口占用,启动后闪退等问题,这里我们来一一进行解决
问题一:Tomcat的startup.bat启动后出现乱码
找到Tomcat文件下的conf目录,修改logging.properties文件中java.util.logging.ConsoleHandler.encoding对应的值为G BK
重启Tomcat,你看到的启动页面是这样的话,说明乱码问题已经解决
问题二:一闪而退之端口占用
启动Tomcat出现一闪而退的现象,其实还是可以看到Tomcat终端输出的日志,这时你需要迅速截图捕获异常,太南
了。
最正确的方法是查看日志,找到Tomcat目录下的logs目录中catalina当天的日志
cat\apache-tomcat-8.5.47\logs\catalina.2019-10-17.log,在日志中可以看到类似这样的输出,Address already
in use: bind说明是端口占用了
17-Oct-2019 11:14:30.521 严重 [main] org.apache.catalina.core.StandardService.initInterna l Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:995)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:848)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.startup.Catalina.load(Catalina.java:639)
at org.apache.catalina.startup.Catalina.load(Catalina.java:662)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在
Tomcat 目录找到conf 目录中的server.xml 配置文件,在Connector 标签中修改Tomcat 启动端口
问题三:非端口问题的一闪而退
启动Tomcat 直接一闪而退,在logs 目录的日志里面找不到错误信息,这个时候很大可能是因为Tomcat 与JDK 版本不对应导致的,有可能你的Tomcat 是Tomcat9版,而你的JDK 是1.7版本的,Tomcat 与JDK 版本对应关系可以参考这篇文章Tomcat 与JDK 版本对应关系,Tomcat 各版本特性
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at ng.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:309) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492) Caused by: .BindException: Address already in use: bind at .bind0(Native Method) at .bind(Net.java:433) at .bind(Net.java:425) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) at .NioEndpoint.bind(NioEndpoint.java:219) at .AbstractEndpoint.init(AbstractEndpoint.java:1118) at .AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:224) at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:581) at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:68) at org.apache.catalina.connector.Connector.initInternal(Connector.java:993) ... 13 more
<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />。