在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(用于背景图像等)的问题.
我很好奇其他人使用什么技术来缓解和解决这个问题.许多人只是简单地将其编写并硬编码,无论是服务器根目录还是他们碰巧使用的任何上下文.我已经知道答案了,那不是我想要的.
你是做什么?
与静态类型语言相比,动态类型语言的优点和局限是什么?
另请参阅:对动态语言的热爱(更具争议性的话题......)
我试过这个,但在调用时得到一个ClassNotFoundException:
Class.forName("com.AClass", false, mySpecialLoader)
Run Code Online (Sandbox Code Playgroud) 我正在写一个自定义的maven2 MOJO.我需要从这个MOJO访问另一个插件的运行时配置.
做这个的最好方式是什么?
我有引用Web服务的代码,我希望该Web服务的地址是动态的(从数据库,配置文件等中读取),以便轻松更改.其中一个主要用途是部署到机器名称和IP地址不同的多个环境.所有部署中的Web服务签名都是相同的,只是位于其他位置.
也许我刚刚被Visual Studio"添加Web引用"向导所破坏 - 看起来这应该是相对简单的事情.
不确定这是否可行,或者我是否正确地表达了我正在寻找的内容,但我在我的库中反复使用以下代码,并想练习一些DRY.我根据用户提供的简单搜索字段ala Google查询了一组SQL Server表.我正在使用LINQ根据搜索字符串中的内容组成最终查询.我正在寻找一种方法来使用泛型并传递lambda函数来创建一个可重用的例程:
string[] arrayOfQueryTerms = getsTheArray();
var somequery = from q in dataContext.MyTable
select q;
if (arrayOfQueryTerms.Length == 1)
{
somequery = somequery.Where<MyTableEntity>(
e => e.FieldName.StartsWith(arrayOfQueryTerms[0]));
}
else
{
foreach(string queryTerm in arrayOfQueryTerms)
{
if (!String.IsNullOrEmpty(queryTerm))
{
somequery = somequery
.Where<MyTableEntity>(
e => e.FieldName.Contains(queryTerm));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望创建一个带签名的通用方法,它看起来像:
private IQueryable<T> getQuery(
T MyTableEntity, string[] arrayOfQueryTerms, Func<T, bool> predicate)
Run Code Online (Sandbox Code Playgroud)
我在所有表中使用相同的搜索策略,因此唯一与使用情况完全不同的是搜索到的MyTable和MyTableEntity以及搜索到的FieldName.这有意义吗?LINQ是否有办法在where子句中动态传递要查询的字段名称?或者我可以将其作为谓词lambda传入?
e => e.FieldName.Contains(queryTerm)
Run Code Online (Sandbox Code Playgroud)
我意识到在SQL中有一百五十种方法可以做到这一点,可能更容易,但我很乐意为LINQ系列保留所有内容.此外,我觉得泛型应该对这样的问题很方便.有任何想法吗?
我们有一个Java服务器应用程序,它运行在许多计算机上,都连接到Internet,一些在防火墙后面.我们需要从中央站点远程更新JAR文件和启动脚本,而不会对应用程序本身造成明显的中断.
这个过程必须是无人值守和万无一失的(即我们无法承受因不合时宜的互联网中断而破坏应用程序).
在过去,我们使用各种外部脚本和实用程序来处理类似的任务,但由于它们有自己的依赖关系,因此结果难以维护且便于携带.在制作新内容之前,我想从社区获得一些意见.
有人找到了一个很好的解决方案吗?有任何想法或建议吗?
只是为了澄清:这个应用程序是一个服务器,但不适用于Web应用程序(此处没有webapp容器或WAR文件).它只是一个自治的Java程序.
我正在开发一种密码验证算法,需要根据字典检查潜在的密码.如果可以在字典中找到密码或其任何部分,请拒绝它.功能很简单,但我在哪里获得单词列表?是否有用于查找单词的Web服务?我捅了一些,但没有找到任何尖叫"挑选我!"的东西.谢谢.
编辑:当我问这个问题时,我没有想过像@Joe Skora那样包含可以避免的单词的特定密码词典.因此,我将扩展问题以包括该类型的字典,以及我可能没有考虑编写此函数的任何其他内容.
平台是C#/ ASP.Net/SQL Server.这只是需要实现的强密码算法的一个组成部分.再次感谢.
java ×3
.net ×2
c# ×2
add-in ×1
classloader ×1
contextpath ×1
database ×1
exception ×1
interrupt ×1
jsp ×1
lambda ×1
linq ×1
maven-2 ×1
maven-plugin ×1
passwords ×1
reflection ×1
security ×1
servlets ×1
sql ×1
terminology ×1
type-systems ×1
url ×1
web-services ×1