考虑使用 spring 4 的基于 Web 的应用程序。spring bean 配置文件在 web.xml 中定义,如下所示:
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>prod,edb,cas</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
现在考虑一个 bean 在 spring-applicaiton-context.xml 中定义为
<util:properties id="myPolicy"
location=
"classpath:/configs/${ACCESS-ACTIVE-PROFILE-SECOND-ITEM}/my-policy.properties" />
Run Code Online (Sandbox Code Playgroud)
我是否可以访问活动配置文件列表并选择第二个(在我的示例 edb 中)。通过这种方式,我可以在活动配置文件更改时动态加载我的资源。
这可能有帮助!当网络应用程序使用以下代码启动时,我可以获得活动配置文件:
public void contextInitialized(ServletContextEvent event){
ApplicationContext applicationContext = WebApplicationContextUtils
.getWebApplicationContext(event.getServletContext());
String activeProfiles[] = applicationContext.getEnvironment().getActiveProfiles();
system.out.print(activeProfiles[1])
}
Run Code Online (Sandbox Code Playgroud) 请考虑这个例子。
一个示例Web应用程序要求scheduler.start()其启动。调度程序配置为将其作业存储在DB中。
该应用程序被复制到六个Web服务器上。
因此,如果启动六个Web服务器,则在单个DB上将有六个具有相同名称的调度程序。如https://quartz-scheduler.org/documentation/quartz-2.1.x/cookbook/MultipleSchedulers中所述:
切勿针对运行(start()ed)具有相同调度程序名称的任何其他实例的同一组数据库表启动(scheduler.start())非集群实例。您可能会遇到严重的数据损坏,并且肯定会遇到不稳定的行为。
因此,这将失败。
我的问题是,如果我确定我所有的工作@DisallowConcurrentExecution都会胜任工作,否则仍然失败?
如果@DisallowConcurrentExecution没有帮助,我应该手动将一台服务器配置为某些主机
public class StartUp implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
if(THIS_IS_MASTER_TOMCAT){
scheduler.start()
}
}
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?
如http://www.disasterarea.co.uk/blog/xss-vulnerabilities-in-web-frameworks-2/中所述
在struts 2中$ {}不是xss安全的,而在tapestry 5中是安全的.
我不是Tapestry的人,但我想知道上面是否正确.
据我所知,它${}是JSLT的一部分,它不依赖于任何Web框架.因此,如果上面的句子是正确的并且${}在挂毯中是安全的XSS,我们怎样才能在struts 2中使其安全.
更新:
为了测试它我运行struts2-showcase应用程序,打开modelDriven\modelDrivenResult.jsp并添加以下行:
Am I safe ${name}
Run Code Online (Sandbox Code Playgroud)
现在,当您运行展示案例并输入<script> alert('xxxx') </script>gangester名称时,您可以看到警报!
考虑下面的HTML
<nav id="nav-main">
<li>
<a href="javascript:void(0)">
<img src="http://jsfiddle.net/img/initializing.png">
<span>Sample Link</span>
</a>
Hide Me with CSS
</li>
</nav>
Run Code Online (Sandbox Code Playgroud)
是否可以删除或隐藏使用CSS隐藏 CSS?
我试过了:
#nav-main li a:after{
content: "";
}
Run Code Online (Sandbox Code Playgroud)
但没有运气.
我无法更改上面的HTML,因为这是一个动态生成的代码(带有JSP标记).
我已经看到一些API的设计方式必须使用它们如下面的代码
Class.doThis("...").doThat("...").....
Run Code Online (Sandbox Code Playgroud)
例如,HTTPCommon(Fluent API)可用作:
Request.Get("http://somehost/")
.connectTimeout(1000)
.socketTimeout(1000)
.execute().returnContent().asString();
Run Code Online (Sandbox Code Playgroud)
石英计划可用作:
JobDetail job = newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build();
Run Code Online (Sandbox Code Playgroud)
SimpleCatptch可用作:
Captcha captcha = new Captcha.Builder(200, 50)
.addText()
.addBackground()
.addNoise()
.gimp()
.addBorder()
Run Code Online (Sandbox Code Playgroud)
这种API设计的名称是什么?这样的设计好吗?
我们正在使用Tomcat 7.0,我们想切换到tomcat 8。Tomcat 7.0中有一个参数,org.apache.catalina.startup.ContextConfig.jarsToSkip但它在tomcat 8.0中不起作用。
任何的想法 ?!
很长的故事
我们的网络应用程序提供了一些网络服务。我们使用webservices-rt-2.3.1.jar来实现 Web 服务。jar 有一个servlet名称WSServletContainerInitializer,它扩展ServletContainerInitializer了 Tomcat 的自动启动。这不是我们想要的,所以我们使用org.apache.catalina.startup.ContextConfig.jarsToSkip=webservices-rt-2.3.1.jar来强制 Tomcat 跳过这个 jar。
我们正在使用HashMap中JDK 1.7,我和代码审查过程中面临的一些问题SonarQube.
请考虑以下样本:
public class SerializationTest implements Serializable {
private Map<String,String> test1=new HashMap<>(); //Serializeable
private Map<ANEnum,String> test2=new HashMap<>(); //Serializeable
private Map<String,ASerializeableObject> test3=new HashMap<>(); //Serializeable
private Map<String,Map<String,String>> test4=new HashMap<>(); //Not Serializeable
private Map<ANEnum,Map<String,String>> test5=new HashMap<>(); //Not Serializeable
private Map<String,Map<String, ASerializeableObject>> test6=new HashMap<>(); //Not Serializeable
Run Code Online (Sandbox Code Playgroud)
声纳标记最后三个HashMap不是serializeable.声纳错误是(Make "test4" transient or serializable)
据我的猜测HashMap是serializeable,如果它的键和值是serializeable.但似乎如果我将一个HashMap值设置为另一个HashMap,原始的HashMap根本就不会serializeable.
这个声纳问题是否正确?!如果是我该如何解决它?
在基于bootstrap 3.5的网站中,我们将在单击按钮时更改输入文本工具提示,并在三秒钟内删除工具提示.
<input type="text" id="sample" title="Tip">
<button name="change me" id="changeBtn">Change Tool Tip!</button>
//Initiall tooltip for all elements
$("[title!='']").tooltip();
$("#changeBtn").click(function () {
//Change tooltip text
$("#sample").attr('title', 'New Tip!').tooltip('fixTitle').tooltip('show');
//remove tooltipe after 3 sec
setTimeout(function () {
$(this).tooltip('destroy');
}, 3000)
})
Run Code Online (Sandbox Code Playgroud)
问题是工具提示没有被破坏并继续显示.如果我改变$(this).tooltip('destroy');到$("[title!='']").tooltip('destroy');它会工作,但它是不正确的,因为它会删除所有其他工具提示.
任何意见?
我试图在打开时更改选择2版本4的边框颜色:
.select2-dropdown--above {
border: 1px solid blue !important;;
border-bottom: none !important;
}
.select2-dropdown--below{
border: 1px solid blue !important;;
border-top: none !important;
}
Run Code Online (Sandbox Code Playgroud)
代码:http://jsfiddle.net/7c0Lm033/
这是我得到的:
如你所见,我无法改变选择2头颜色的颜色.我找不到任何可以改变标记颜色边框的独特选择器.