Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java url,带“"/servlet“;转到;ip/servlet“;而不是",;ip/app/servlet“;_Java_Url_Ubuntu_Tomcat7 - Fatal编程技术网

Java url,带“"/servlet“;转到;ip/servlet“;而不是",;ip/app/servlet“;

Java url,带“"/servlet“;转到;ip/servlet“;而不是",;ip/app/servlet“;,java,url,ubuntu,tomcat7,Java,Url,Ubuntu,Tomcat7,我第一次尝试了使用tomcat7的ubuntu服务器,而不是windows服务器 对于java web项目,当我调用servlet或只是创建链接时,我会将url代码设置为“/servlet”,并将其设置为ip/app/servlet,而不是ubuntu ip/servlet(就像它是webapp的名称一样)。如果我删除了正斜杠,它可以工作,但这确实很不方便,因为当我在mac上开发和测试时,正斜杠可以正常工作 我将tomcat7改为在端口80而不是8080上侦听,但不确定这是否与此有关 这也让我怀

我第一次尝试了使用tomcat7的ubuntu服务器,而不是windows服务器

对于java web项目,当我调用servlet或只是创建链接时,我会将url代码设置为“/servlet”,并将其设置为ip/app/servlet,而不是ubuntu ip/servlet(就像它是webapp的名称一样)。如果我删除了正斜杠,它可以工作,但这确实很不方便,因为当我在mac上开发和测试时,正斜杠可以正常工作

我将tomcat7改为在端口80而不是8080上侦听,但不确定这是否与此有关

这也让我怀疑我是否留下了任何安全漏洞

有人知道应该如何解决这个问题吗


注意:这不仅是servlet的问题,也是jsp、htmls等的问题。

如果您希望/user.jsp等URL指向Tomcat中的应用程序,那么您必须将应用程序部署为根应用程序(命名为root.war)

如果您想使事情正常进行,那么就不要假设任何关于上下文路径的内容,并且alwas将其预先添加到应用程序中的所有URL。这可以通过使用JSTL的
标记轻松完成:

<a href="<c:url value='/user.jsp'/>">


此标记对于正确编码URL中的参数也非常有用,您无论如何都应该使用它。

告诉我们地址栏中包含该链接的页面的URL是什么,并向我们展示如何在页面的源代码中生成此URL。另外,什么是
ip
?这是你的webapp的上下文路径吗?谢谢你的回复,
ip
只是服务器的ip地址。对索引文件调用
request.getContextPath
,只会返回
/appname
。我只是用一个普通的html标记对链接进行编码
。这个例子将转到
ipaddress/user.jsp
而不是
ipaddress/appname/user.jsp
我想我发现问题在于,我有幸在一台apache服务器后面工作,该服务器做了一些代理事情(实际上并不热衷于它做什么),这样做的好处是我以前不必在URL前面添加contextpath。有没有其他方法可以让tomcat做同样的工作?