小编obe*_*ger的帖子

HTML5文件上传到Java Servlet

我的问题就是说了这一切.我目前正在使用Uploadify(Flash + Ajax)到Servlet(Commons Upload w/OWASP ESAPI overlay)成功,但我想知道如何构建HTML5支持,或者更确切地说是支持Flash的HTML5.

我知道如何使HTML5 DnD工作,但我无法弄清楚Java Servlet连接和/或后端的机制.我搜索了很多地方,但我找不到任何答案,所以任何帮助都是值得赞赏的.

java html5 servlets file-upload

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

$ window.sessionStorage vs $ cookieStore

使用$ cookieStore和&window.sessionStorage有什么区别?是否有时候应该使用另一个?安全问题?

这是我目前所知道的:

AngularJS文档声明$ cookieStore服务由"会话cookie"(https://docs.angularjs.org/api/ngCookies/service/ $ cookieStore)支持.因此,使用$ cookieStore存储的信息似乎与使用它的窗口/选项卡相关联.:这是通过在$的CookieStore代码使用了神秘$浏览器服务的肯定https://github.com/angular/angular.js/blob/master/src/ngCookies/cookies.js#L125.

但是,由于$ browser是一个内部服务并且可能会发生变化,我无法看到它是如何存储数据的,看看它是否与sessionStorage类似.

相同的浏览器/选项卡/窗口范围似乎适用于$ window.sessionStorage(sessionStorage和localStorage的范围).

javascript cookies session-storage cookiestore angularjs

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

同步对易失性字段的写访问(廉价读写块)

假设我有以下类会被大量读取,但只是偶尔写入.它将用于多线程Web应用程序,因此它需要是线程安全的:

public class Foo {
    private volatile String foo;
    public String getFoo() {
        return foo;
    }
    public synchronized String setFoo(String in) {
        this.foo = in;
    }
}
Run Code Online (Sandbox Code Playgroud)

Java Concurrency(http://www.ibm.com/developerworks/java/library/j-jtp06197/index.html)指出,这是一种在提高读访问权限的同时保护写访问的脆弱方法.什么是这种模式的更强的替代品?或者,如果foo在读取繁重的环境中需要变量,还是其他任何选择?谢谢.

java multithreading synchronization volatile thread-safety

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

记录线程安全(Java +注释)

我试图更新使用依赖注入,在这样一个应用程序,我想每个文档类与"线程安全"的注释(需要的话),既为其他编码器和错误检查器.

如果我有一个服务类,如下:

@ImplementedBy(FooImpl.class)
public interface FooSrvc {

}
Run Code Online (Sandbox Code Playgroud)

它是相关的实施

class FooImpl implements FooSrvc {

}
Run Code Online (Sandbox Code Playgroud)

*我应该使用线程安全注释来记录或注释接口和具体实现吗?只是服务,因为它是公开的,只是实施?*例如两者:

@javax.annotation.concurrent.ThreadSafe
@org.checkthread.annotations.ThreadSafe
@ImplementedBy(FooImpl.class)
public interface FooSrvc {

}

@javax.annotation.concurrent.ThreadSafe
@org.checkthread.annotations.ThreadSafe
class FooImpl implements FooSrvc {

}
Run Code Online (Sandbox Code Playgroud)

注 - 我使用两个不同的线程安全注释集来使用较旧的并发错误查找器CheckThread(我找不到支持jsr-305注释的文档)和FindBugs.

谢谢.

java documentation annotations findbugs thread-safety

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

Servlet 3.0注释与Guice结合使用

我正在尝试更新遗留的Guice应用程序,我想知道在考虑Servlet 3.0注释时是否有任何一种首选的方法.例如,我的应用程序有一个过滤器FooFilter,它在Guice Module Factory方法configureServlets()中定义,如下所示:

    Map<String, String> fooParams = new HashMap<String, String>();
    fooParams.put("someParam", "parameter information");                              
    filter("/foo.jsp","/foo/*").through(com.example.filter.FooFilter.class, fooParams);
Run Code Online (Sandbox Code Playgroud)

以上绑定是否仍然必要,或者它是否会使用@WebFilter Servlet 3.0注释干扰以下内容:

    @Singleton
    @WebFilter(
        filterName="FooFilter",
        urlPatterns={"/foo.jsp", "/foo/*"},
        initParams = {
                    @WebInitParam(name="foo", value="Hello "),
                    @WebInitParam(name="bar", value=" World!")
                 })
    public class FooFilter implements Filter {
    etc....
Run Code Online (Sandbox Code Playgroud)

现在首选哪种方法?他们会互相混乱吗?

annotations guice servlet-3.0 servlet-filters guice-servlet

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

Guice-Injected DAO应该是单身吗?

我目前正在开发一个利用Guice/JPA/Hibernate从我的数据库中获取信息的应用程序.

我在这里阅读了有关使用JPA和EntityManagars的Guice文档:http://code.google.com/p/google-guice/wiki/JPA,

但我很难理解何时应该制作我的DAO实现单身人士.

我看了这个问题,它说关于Spring的使用DAO的对S/O:

为每个请求实例化DAO都会很疯狂.

对于除Spring以外的DI容器,这会延续吗?如果我将DAO Provider注入我的Servlet并在需要时调用,DAO服务实现是否应该是Singleton?

这是我的一个DAO的基本轮廓:

public DAOImpl implements DAOService { <-- SHOULD THIS BE ANNOTATED @Singleton?

    @Inject
    private EntityManager em;
    // OR 
    // @Inject 
    // private Provider<EntityManager> emProvider - If it's a singleton.

    @Inject
    DAOImpl(OtherServices os) {
        this.otherServices = os;
    }

    @Transactional
    public MyPersistedObject getPersistedObject(long id) {
        MyPersistedObject mpo = em.find(MyPersistedObject.class, id);
        return mpo;
    }
}
Run Code Online (Sandbox Code Playgroud)

它是如何被称为:

   @Singleton
   public MyServlet(HttpRequest req, HttpRequest res) 
           extends ServletInterfaceOfTheDay {

       private final daoService; // If …
Run Code Online (Sandbox Code Playgroud)

java dao hibernate jpa guice

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

在ConcurrentHashMap中修改值的首选方法是什么?

假设我有一个高读,低写并且需要存储应用程序数据的并发映射:

ConcurrentMap<UUID, Data> map = new ConcurrentHashMap<UUID, Data>();
Run Code Online (Sandbox Code Playgroud)

然后,在启动期间和通过用户输入,数据将添加到地图中:

public void createData(Data newData) {
    map.put(newId, newData); // etc...
}
Run Code Online (Sandbox Code Playgroud)

如果我需要更改数据,我应该:

A)使Data类对象不可变,然后每次需要对Data对象进行更改时执行put操作:

public void changeData(UUID oldId, Foo newInfo) {
    Data oldData = map.get(oldId);
    Data newData = new Data(oldData, newInfo); // Constructor for demo only
    map.put(newData);
    saveToDatabase(newData);
}
Run Code Online (Sandbox Code Playgroud)

B)使用volatile字段,原子引用或最终并发字段使Data类对象可变但是线程安全,并根据需要简单地修改对象:

public void changeData(UUID oldId, Foo newInfo) {
    Data data = map.get(id);
    data.changeSomething(newInfo);
    saveToDatabase(data);
}
Run Code Online (Sandbox Code Playgroud)

C)以上都不是

java concurrency thread-safety concurrenthashmap

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

通过ngInject和ng-annotate在AngularJS中双重注入

我正在使用Gulp为AngularJS应用程序构建我的主要javascript文件(app.js).一切都很好,除了一件困扰我的小事.我正在使用ng-annotate自动解析我的角度js并添加依赖注入语法.所以我从这里开始(手动注射而不使用ng-annotate):

angular.module('base.controllers')
        .controller('RandomeCtrl',
                ['$scope', '$routeParams', ...,
                    function($scope, $routeParams, ...) { 
Run Code Online (Sandbox Code Playgroud)

对此(将通过ng-annotate适当修改的代码):

angular.module('base.controllers')
        .controller('RandomeCtrl', 
                    function($scope, $routeParams, ...) {
Run Code Online (Sandbox Code Playgroud)

但是,在主要项目中,如果代码被重复使用或(喘气)剪切和粘贴,无论是单独使用还是作为一组控制器,我喜欢我未来的自我警告,以及其他开发人员添加/* @ngInject */注释的警告.像这样:

angular.module('base.controllers')
        .controller('RandomeCtrl', 
        /*@ngInject*/
                function($scope, $routeParams, ...) {
Run Code Online (Sandbox Code Playgroud)

双注射阵列存在问题,如下所示:https://github.com/olov/ng-annotate/issues/28.然而,这似乎并不适用于相同的情况,我想知道是否存在双重注射的一个主要问题,我需要死心地害怕,我在网上找不到其他的后果.

javascript annotations dependency-injection angularjs

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

带有Elastic Beanstalk和Tomcat 7的ClassNotFoundException

我正在尝试将maven构建的Java Web应用程序部署到Elastic Beanstalk,后者正在运行Amazon Linux Tomcat 7版本下的环境.该应用程序在localhost上工作正常,即使使用外部mysql数据库(XEROUND).

我原来的context.xml有一个资源如下:

<Resource auth="Container"        
    driverClassName="com.mysql.jdbc.Driver" 
    logAbandoned="true" 
    maxActive="100" 
    maxIdle="30" 
    maxWait="10000" 
    name="jdbc/xxxx-01292013" 
    password="xxxx" 
    removeAbandoned="true" 
    removeAbandonedTimeout="60" 
    type="javax.sql.DataSource" 
    url="jdbc:mysql://instancexxxx.db.xeround.com:xxxx/xxxx-01292013?   autoReconnect=true"
    username="xxxx-general"/>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此应用程序时,我收到以下错误:

java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
Run Code Online (Sandbox Code Playgroud)

我尝试将以下行添加到我的context.xml资源中:

factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
Run Code Online (Sandbox Code Playgroud)

但那也不起作用.然后我尝试添加这一行:

factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
Run Code Online (Sandbox Code Playgroud)

但这给了我新的例外:

javax.naming.NamingException: com.mysql.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)

我在这里碰到一堵墙,有谁知道我能做些什么才能让这个东西运转起来?

mysql jdbc tomcat7 amazon-elastic-beanstalk

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