标签: contextpath

对html <base>标签有什么建议?

我以前从未见过 实际使用过的<base>HTML标签.它的使用存在缺陷,这意味着我应该避免它吗?

事实上我从来没有注意到它在现代生产网站(或任何网站)上的使用让我对它持怀疑态度,尽管看起来它可能有用于简化我网站链接的有用应用程序.


编辑

使用基本标签几周后,我最终找到了使用基本标签的一些主要问题,这使得它比最初出现时更不可取.从本质上讲,变化href='#topic'href=''基本标签下是非常有它们的默认行为不兼容,并可以从默认行为,这种变化很容易使第三方库的控制范围之外的非常不可靠的 以意想不到的方式,因为它们在逻辑上依赖于默认行为.通常,这些更改是微妙的,并且在处理大型代码库时会导致不那么明显的问题.我已经创建了一个回答,详细说明了我在下面遇到的问题.因此,在您进行广泛部署之前,请自行测试链接结果<base>,这是我的新建议!

html base-tag contextpath

454
推荐指数
8
解决办法
15万
查看次数

如何在不包含上下文根名称的情况下使用相对路径?

要使用我的静态文件(CSS,JS),我必须编写绝对路径/AppName/templates/style/main.css.有什么解决方案,我可以写相对路径style/main.css吗?

resources jsp servlets relative-path contextpath

76
推荐指数
2
解决办法
16万
查看次数

在Web应用程序中处理上下文的任何聪明方法?

在Java中,Web应用程序捆绑在WAR中.默认情况下,许多servlet容器将使用WAR名称作为应用程序的上下文名称.

因此myapp.war被部署到http://example.com/myapp.

问题是webapp认为它的"root"是"root",或者只是"/",而HTML会认为应用程序的根目录是"/ myapp".

Servlet API和JSP具有帮助管理它的工具.例如,如果在servlet中执行:response.sendRedirect("/ mypage.jsp"),则容器将在上下文之前创建url:http://example.com/myapp/mypage.jsp ".

但是,您不能使用HTML中的IMG标记来执行此操作.如果你做<img src ="/ myimage.gif"/>你可能会得到404,因为你真正想要的是"/myapp/myimage.gif".

许多框架都具有可识别上下文的JSP标记,并且在JSP中有不同的方法来制作正确的URL(没有特别优雅的方法).

对于编码人员来说,跳出何时使用"App Relative"网址与绝对网址是一个很小的问题.

最后,还存在需要动态创建URL的Javascript代码以及CSS中的嵌入式URL(用于背景图像等)的问题.

我很好奇其他人使用什么技术来缓解和解决这个问题.许多人只是简单地将其编写并硬编码,无论是服务器根目录还是他们碰巧使用的任何上下文.我已经知道答案了,那不是我想要的.

你是做什么?

java jsp servlets contextpath

39
推荐指数
2
解决办法
3万
查看次数

从Spring Web应用程序检索servlet上下文路径

我希望能够从Service spring bean 动态检索我的spring Web应用程序的" servlet上下文路径 "(例如http://localhost/myapphttp://www.mysite.com).

这样做的原因是我想在将要发送给网站用户的电子邮件中使用此值.

虽然从Spring MVC控制器执行此操作非常容易,但从Service bean执行此操作并不是那么明显.

任何人都可以建议吗?

编辑:附加要求:

我想知道是否有一种方法可以在启动应用程序时检索上下文路径,并且可以通过我的所有服务随时检索它?

spring servlets contextpath

32
推荐指数
4
解决办法
7万
查看次数

如何使用"<%= request.getContextPath()%>"比"../"更好

我参与了许多J2EE项目,其中视图层是JSP.在大多数项目中,我已经看到我们使用scriptlet中的contextPath引用外部资源,即images,javascript,jsp,css等.

代码如下,

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>GC Demo Using HandlebarsJS</title>
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/jqueryUI-AutoComplete/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/jqueryUI-AutoComplete/jquery-ui-1.10.3.custom.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/handlebarsJS/handlebars.js"></script>
    <link rel="stylesheet" type="text/css" href="${pageContext.servletContext.contextPath}/js/jqueryUI-AutoComplete/jquery-ui-1.10.3.custom.css">
Run Code Online (Sandbox Code Playgroud)

从上面的jsp中,我在这里导入外部资源,这些资源位于我的同一个项目包中,即在我的战争中.

现在上面的JSP可以写成如下代码,

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>GC Demo Using HandlebarsJS</title>
    <script type="text/javascript" src="../js/jqueryUI-AutoComplete/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="../js/jqueryUI-AutoComplete/jquery-ui-1.10.3.custom.js"></script>
    <script type="text/javascript" src="../js/handlebarsJS/handlebars.js"></script>
    <link rel="stylesheet" type="text/css" href="../js/jqueryUI-AutoComplete/jquery-ui-1.10.3.custom.css">
Run Code Online (Sandbox Code Playgroud)

在第二个例子中,我也引用了战争中的资源.

现在考虑上述两种情况,第一种情况作为最佳实践被赋予更多意义.

为什么?

使用第二种情况有什么缺点?

使用第二种情况,我们的项目是否与contextpath更紧密地结合在一起?

请向我解释.

jsp contextpath

25
推荐指数
1
解决办法
11万
查看次数

将符号公开给$ ContextPath

有多种的Internal`情况下的功能是有用的,如InheritedBlock,BagStuffBag等,以及许多有用Developer`的功能.

我希望公开这些符号的选择,以便可以在没有上下文名称的情况下明确地解决它们,但我不想通过添加Internal`Developer`来公开所有这些符号$ContextPath.

我可以使用代理符号,Bag = Internal`Bag但这既不干净也不完全正确,因为它是一个引用,例如属性不会被继承.

有没有办法有选择地暴露我想要的符号,而不是诉诸上面的kluge?

symbols wolfram-mathematica contextpath

22
推荐指数
2
解决办法
761
查看次数

JSP中的Spring MVC请求URL

我正在使用Spring MVC编写Web应用程序.我正在使用控制器的注释等.一切都工作正常,除了它涉及应用程序中的实际链接(表单操作,<a>标签等)当前,我有这个(显然缩写):

//In the controller
@RequestMapping(value="/admin/listPeople", method=RequestMethod.GET)

//In the JSP
<a href="/admin/listPeople">Go to People List</a>
Run Code Online (Sandbox Code Playgroud)

当我直接输入"http:// localhost:8080/MyApp/admin/listPeople"这样的URL时,页面会正确加载.但是,上面的链接不起作用.它丢失了应用程序名称"MyApp".

有谁知道是否有办法配置Spring在那里抛出应用程序名称?

如果您需要查看我的任何Spring配置,请告诉我.我正在使用带有视图解析器等的标准调度程序servlet.

html spring spring-mvc contextpath

20
推荐指数
3
解决办法
7万
查看次数

如何从JBoss中的"root(/)"上下文自动指向"我的Web应用程序"?

我正在使用JBoss 6.0.

我已经在web-context下部署了我的Web应用程序:myApp.ear:" / test ".所以在browser-url中如果输入" http:// localhost:8080/test / ",我会得到我的登录页面(myLogin.jsp).

由于我的WAR存在于EAR文件中,因此我使用web模块内部的context-root元素在application.xml文件中指定了上下文根- 即

<module>
    <web>
        <web-uri>myWeb.war</web-uri>
        <context-root>/test</context-root>
    </web>
</module>
Run Code Online (Sandbox Code Playgroud)

我的问题是如何从"根上下文" 自动将用户引导到我的网络应用程序?

我的意思是如果用户键入" http:// localhost:8080 / ",我希望加载我的web应用程序的登录页面(而不是JBoss的默认ROOT.war的index.html页面).

我从{JBOSS}\server\default\deploy\ROOT.war中删除了现有的index.html,并在那里创建了一个login.jsp.现在我可以看到当我键入http:// localhost:8080 /时会调用"login.jsp" .但我无法将用户请求重定向到我的网络应用程序的登录页面.

在那个login.jsp中,我尝试过: <jsp:forward page="/test" />,但是我收到错误:"HTTP状态404 - /test".

如果我调用,<jsp:forward page="/test/myLogin.jsp" />我仍然得到相同的404错误.

任何人都可以建议如何从root-context实现自动直接到我的网络应用程序?

jboss redirect contextpath

14
推荐指数
2
解决办法
3万
查看次数

symlinking tomcat 8目录资源

我想在Tomcat 8下使用符号链接JSP目录.
它在Tomcat 7中也可以这样工作:

    <Context allowLinking="true">
Run Code Online (Sandbox Code Playgroud)


但似乎Tomcat 8放弃了这个功能,它开始使用资源

(http://tomcat.apache.org/migration-8.html#Web_application_resources).

我的示例用法:

ROOT/jsp目录 - > linksto - >/var/tmp/realplaceofjspfiles /

配置错误:

ROOT/META-INF/context.xml的:

<Context>
   <Resources allowLinking="true">
         <PreResources className="org.apache.catalina.webresources.DirResourceSet"   base="/var/tmp/realplaceofjspfiles" internalPath="jspdirectory"/>
    </Resources>
</Context>
Run Code Online (Sandbox Code Playgroud)

它为我丢掉了这个例外:

    07-Mar-2014 04:09:12.113 WARNING [localhost-startStop-1] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Context/Resources/PreResources} Setting property 'internalPath' to 'jspdirectory' did not find a matching
     property.
    07-Mar-2014 04:09:12.114 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
     org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)
            at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
            at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1780)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            at …
Run Code Online (Sandbox Code Playgroud)

resources contextpath tomcat8

14
推荐指数
2
解决办法
2万
查看次数

如何在Tomcat中将多个上下文映射到同一个war文件?

我正在使用tomcat来部署我的应用程序,我想部署为一个单一的战争应该服务器多个上下文路径.

目前我有app1.war和app2.war,但两者都有相同的内容,只有通过http:/// app1和http:///app1.war访问的名称不同.但我想这样做,部署app.war并通过app1和app2上下文路径访问它.在tomcat中可以做到吗?请帮我解决这个问题

mapping tomcat contextpath

12
推荐指数
1
解决办法
2万
查看次数