小编Ali*_*ahi的帖子

使用 spring EL 获取 Spring 配置文件名称

考虑使用 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)

java spring spring-el

3
推荐指数
1
解决办法
8510
查看次数

Quartz 2.2多调度程序和@DisallowConcurrentExecution

请考虑这个例子。

一个示例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)

有更好的方法吗?

java quartz-scheduler

3
推荐指数
1
解决办法
6321
查看次数

在Struts 2中使$ {}运算符XSS安全(与tapestry相同)

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名称时,您可以看到警报!

xss jsp jstl struts2 ognl

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

用于隐藏文本的CSS选择器

考虑下面的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)

但没有运气.

http://jsfiddle.net/6powxzru/

我无法更改上面的HTML,因为这是一个动态生成的代码(带有JSP标记).

html css css-selectors

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

使用级联函数调用设计API(Class.doThis("...").doThat("...").....)

我已经看到一些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设计的名称是什么?这样的设计好吗?

java oop api design-patterns

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

Tomcat 8 如何设置jarsToSkip

我们正在使用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。

java tomcat web-services

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

Java为什么Map的Map(例如:Map <String,Map <String,String >>)不可序列化

我们正在使用HashMapJDK 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)

据我的猜测HashMapserializeable,如果它的键和值是serializeable.但似乎如果我将一个HashMap值设置为另一个HashMap,原始的HashMap根本就不会serializeable.

这个声纳问题是否正确?!如果是我该如何解决它?

java serialization hashmap sonarqube

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

三秒钟后隐藏bootstrap工具提示

在基于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)

http://jsfiddle.net/red4w2re/

问题是工具提示没有被破坏并继续显示.如果我改变$(this).tooltip('destroy');$("[title!='']").tooltip('destroy');它会工作,但它是不正确的,因为它会删除所有其他工具提示.

任何意见?

javascript css jquery twitter-bootstrap twitter-bootstrap-3

1
推荐指数
1
解决办法
2243
查看次数

打开时更改选择2版本4边框颜色

我试图在打开时更改选择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

如你所见,我无法改变选择2头颜色的颜色.我找不到任何可以改变标记颜色边框的独特选择器.

css jquery css3 jquery-select2-4 select2

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