第一个Java Web应用所遇问题及解决

第一个Java Web应用

  1. Tomcat启动时乱码问题
  • 情景:当使用Tomcat的 startup.bat启动Tomcat时,启动的控制台对于中文信息出现乱码。
  • 原因:乱码出现的原因是因为字符的编码方式和解码方式不一致导致的。在windows电脑中,系统默认的编码方式为GBK,而Tomcat默认的控制台的编码方式UTF-8,我们只要将其更换为一致即可。
  • 解决:从Tomcat安装目录中打开 conf/logging.properties 文件,更改 java.util.logging.ConsoleHandler.encoding = UTF-8 该属性,将编码方式值替换为我们指定的编码方式即可。
//更改前
java.util.logging.ConsoleHandler.encoding = UTF-8 
//更改后
java.util.logging.ConsoleHandler.encoding = GBK
  • 作用:Tomcat启动时控制台显示的信息是Tomcat启动时一些相关信息,如启动所花时间、端口号等,正确的文字信息有便于我们从中获取Tomcat启动时的一些信息。

2.更改Tomcat服务器默认端口号
HTTP协议规定Web服务器使用的默认FTP端口为80,而Tomcat服务器默认情况下采用的是FTP端口为8080。这就导致了在Tomcat服务器启动后,在浏览器上访问服务器中的资源输入的URL路径为http://localhost:8080/,而让Tomcat改为使用80端口来监听HTTP请求后,访问Tomcat中的资源的URL只需http://localhost/即可。

  • 修改配置:从Tomcat安装目录中打开conf/server.xml配置文件,将其中元素的port属性值改为"80"。
<!--修改前-->
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<!--修改后-->
<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

3.Java Web应用的目录结构
在这里插入图片描述

  • 注意:浏览器端不可以直接请求访问WEB-INF目录下的文件。对于那些不希望外界访问而只允许内部访问的文件可放在此目录下。

4.配置Tomcat的元素

  • 概念:Context代表一个Web应用,它运行在某个指定的虚拟主机(Host)上;每个Web应用都是一个WAR文件,或是一个包含WAR解压后的文件的目录。Connector组件接收到http请求后,通过将请求URI的最长可能前缀与每个Context的path进行匹配,然后选择相应的Web应用来处理这个http请求。之后,Context会根据web application deployment descriptor文件中定义的servlet映射,会选择一个正确的Servlet来处理请求。Servlet映射必须定义在该Web应用目录层次结构中的/WEB-INF/web.xml中。

  • Tomcat加载一个Web应用时,会按照一下顺序查找Web应用的元素
    (1)到Tomcat安装目录中conf/context.xml文件中查找元素。这个文件的元素的信息适用于所有Web应用。
    (2)到Tomcat安装目录中conf/[enginename]/[hostname]/context.xml.default文件中查找元素。[enginename]表示的name属性,[hostname]表示的name属性。在context.xml.default文件中的元素的信息适用于当前虚拟主机中的所有Web应用。
    (3)到Tomcat安装目录中conf/[enginename]/[hostname]/[contextpath].xml文件中查找元素。[contextpath]表示单个Web应用的URL入口。在[contextpath].xml文件中的元素的信息只适用于单个Web应用。
    (4)到Web应用的MATA-INF/context.xml文件中查找元素。这个文件中的元素的信息适用于当前Web应用。

  • 配置元素的三种方法
    (1)将应用文件夹或war文件直接copy到tomcat的webapps目录下,这样tomcat启动的时候会将webapps目录下的文件夹或war文件的内容当成应用部署。这种方式最简单且无须书写任何配置文件。
    (2)在tomcat的server.xml配置文件中的Host节点下增加Context子节点,如:

<Context path="/helloapp" docBase="D:\private\tomcat\helloapp.war" /> 

其中path属性表明访问helloapp应用的URL入口为"/helloapp",docBase属性为helloapp应用的绝对路径
(3)在tomcat的conf/[Enginename]/[Hostname]目录下新建xml文件,文件名为contextpath,内容如下:

<Context path="/helloapp"
         docBase="D:\private\tomcat\helloapp.war"  
         privileged="true" antiResourceLocking="false" antiJARLocking="false"> 

其中path属性表明访问helloapp应用的URL入口为"/helloapp",docBase属性为helloapp应用的绝对路径

5.部署Web应用

  • 将Web应用直接复制到Tomcat安装目录中webapps文件中,Tomcat会默认加载此虚拟主机中的Web应用。其实该目录文件代表Tomcat默认虚拟主机localhost主机,该文件中Web应用即是部署在localhost中的Web应用。
  • 对于Web应用不在Tomcat中,则需要配置元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值