解决ip地址端口号访问tomcat服务

在做一个网站的时候,首页使用的是http://XXX.xxx.xxx.xxx:8080/项目名/index,但是客户为了安全起见,要求使用ip+端口号访问首页,看网上解决方案,对直接用ip+端口号取代ip+端口号+项目名的问题得到了解决,但是项目名后面加上一个action就没有解决,这样让我想起struts2里面有一个设置默action,如果只输入项目名,就会跳转到默认的action,这样的话就解决了后面有action的问题,因此我的问题可以分解为两部分来解决,先去掉action,再去掉项目名。

在去掉action名的时候,在struts.xml中添加默认action
<package name="default"  namespace="/" extends="struts-default">  
    <default-action-ref name="index"/>  
       <action name="index" class="com.xujie.application.action.ShowAction" method="show">
    <result>/index.jsp</result>
    </action>
</package>

这样出现一个问题,发现程序虽然跳转到了对应的jsp页面,但是根本没有跳进默认的action方法里面,查找发现在程序的web.xml有这么一段代码
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
这是设置默认首页的,这样两个jsp页面就一样了,先进入jsp页面但是没有执行相关的后台程序代码,导致首页页面有一些内容没有显示出来,因此我就将默认首页修改了一下,修改为一个不存在的页面,这样的话在web.xml中进不到默认首页,而是去struts.xml中执行默认action的代码,这样就解决了第一个问题去掉了action名字。
第二个问题,去掉项目名,这个问题就是按照网上说的更改tomcat的server.xml文件中的<Host></Host>中的内容,具体修改如下所述:(使用的是Tomcat6.0)

【原tomcat的server.xml文件中的Host部分内容】

Xml代码 
<Host name="localhost" appBase="webapps" 

unpackWARs="true" autoDeploy="true" 

xmlValidation="false" xmlNamespaceAware="false"> 

<!-- SingleSignOn valve, share authentication between web applications 

Documentation at: /docs/config/valve.html --> 
<!-- 
<Valve className="org.apache.catalina.authenticator.SingleSignOn" /> 
--> 

<!-- Access log processes all example. 

Documentation at: /docs/config/valve.html --> 

<!-- 

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 

prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> 
--> 
</Host> 

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

<!-- SingleSignOn valve, share authentication between web applications

Documentation at: /docs/config/valve.html -->

<!--

<Valve className="org.apache.catalina.authenticator.SingleSignOn" />

-->
<!-- Access log processes all example.

Documentation at: /docs/config/valve.html -->

<!--

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 

prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>

-->

</Host> 【修改后的server.xml文件中的Host部分】

Xml代码 

<Host name="200.200.200.135" appBase="webapps/membermanage" 

unpackWARs="true" autoDeploy="true" 

xmlValidation="false" xmlNamespaceAware="false"> 

<Context path="" docBase="." /> 

<Context path="/membermanage" docBase="." /> 
</Host> 

<Host name="200.200.200.135" appBase="webapps/membermanage" 

unpackWARs="true" autoDeploy="true" 

xmlValidation="false" xmlNamespaceAware="false"> 

<Context path="" docBase="." /> 

<Context path="/membermanage" docBase="." /> 

</Host>name后面可以填IP也可以是域名,如www.os.cn,这样修改以后,可以实现直接用

http://200.200.200.135:8080访问,可以看到不用加入项目名称了

备注:以上方法,在Tomcat6.0测试通过,如果是tomcat5.x,在按照上述方法配置后不成功的话,可能<Context path="" 

docBase="." /> 这里要改成<Context path="/" docBase="." />

这样通过这两步就解决了通过ip+端口号访问对应的网站了,本来想去掉端口号,

但是发现服务器有程序已经使用80端口了,所以没有改动,如果想去掉端口号即修改tomact端口号为80,可以这样修改,在

tomact文件夹中
 
 
找到conf文件里面的 server.xml打开,找到 <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />这段,把8080改成80即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值