tomcat服务器配置

这边文章的内容随笔者学习进度进行添加,修改完都要重启tomcat服务器让设置生效


1.配置端口

用编辑器打开tomcat服务器安装目录下conf文件夹下的主配置文件server.xml

vim server.xml

找到如下部分

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="utf-8" />

该Connector 用于监听浏览器发送的请求. 设置成80 后可以直接使用http://ip 访问

protocol: http协议

connectionTimeout: 连接超时时间

redirectPort: 如果发送的是https 请求. 就将请求转发到8443 端口.

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

使用8009 接受其他服务器转发过来的请求.
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

tomcat 监听的关闭端口.

<Server port="8005" shutdown="SHUTDOWN">

2.新建web服务目录

编写好的jsp文件保存到Tomcat服务器的web服务目录中,才可以被人访问到,一个web服务目录就是一个网站,很多情况下我除了tomcat服务器下的的webapps目录还需要创建一个新的web服务目录,在一个新的磁盘或者或者一个远程服务器上,达成分布式存储的目的

同样是修改conf文件下的server.xml文件,找到</Host>的部分,在</Host>前面添加如下指令,注意xml是区分大小写的

切记不能有中文,否者启动不了tomcat

<Context path="/虚拟目录名称" docBase="要添加的文件夹目录" debug="0" reloadable="true"/>
样例
<Context path="/test" docBase="/home/ubuntu/jsp_example" debug="0" reloadable="true"/>

ps访问的时候用的是虚拟目录,切记要重启tomcat

3.浅谈中文乱码问题

建议使用utf-8编码(utf-8编码介绍

强调千万不要使用window的text文本编辑器来写代码,它默认的是中文编码

推荐使用现代化的文本编辑器例如atom,vscode,sublime,nodepad++或者使用专门的开发软件eclipse jave EE

对应的page指令修改

<%@ page language="java"  contentType = "text/html; charset = utf-8"
    pageEncoding="utf-8" %>

 关于get请求方法乱码问题修改server.xml中的如下片段,该方法只能解决get请求的问题

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
修改成
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="utf-8"/>

关于post方法乱码问题的解决方法

方法一逆向编码解码还原

之所以会出现乱码,是因为浏览器将中文传给tomcat时,tomcat以默认的iso8859-1方式对其解码,而iso8859-1不属于中文码表,故而出现乱码。根据这个原理可逆向还原。 
 

byte b[] = request.getParameter("name").getBytes("UTF-8");
String name = new String(buf,"UTF-8");

这样得到的name便是前台传来的正确的中文参数了 
这种方式比较偏向底层,而且有一个弊端,就是当浏览器传送的中文参数很多时,需要一个个设置,比较罗嗦,不利于节省时间。

方法二 将浏览器的表单的提交方式设为post方式,同时在servlet里在接受参数前将request的编码设置为GBK或者UTF-8。

前台形如:

<form action="login.jsp" method="post">
    用户名:<input type="text" name="name"><br/><br/>
    密    码:<input type="text" name="pwd"><br/><br/>
    <input type="submit" value="登录">
</form>

后台形如:

request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");

这样也能正确地接受中文参数了。当然,这种方式也存在弊端,试想下当项目发布后,如果需要修改编码为GBK,则要修改源代码,而对客户而言,这需要反编译等步骤直接修改代码,有点困难。

方法三  通过web项目的WebRoot/WEB-INF/web.xml文件进行配置参数,同时可在servlet中进行读取

web.xml的示例核心代码如下:

<servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>cn.hncu.servlets.LoginServlet</servlet-class>
    <init-param>
        <param-name>character</param-name>
        <param-value>GBK</param-value>
    </init-param>
</servlet>

servlet示例核心代码如下:

public void init(ServletConfig config) throws ServletException {
    String charset = config.getInitParameter("character");
    System.out.println(charset);
}

这种方法弥补了方法3的缺陷,方便后期维护和修改,用户修改时不需要改源代码,只需修改web.xml即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值