我的问题就是说了这一切.我目前正在使用Uploadify(Flash + Ajax)到Servlet(Commons Upload w/OWASP ESAPI overlay)成功,但我想知道如何构建HTML5支持,或者更确切地说是支持Flash的HTML5.
我知道如何使HTML5 DnD工作,但我无法弄清楚Java Servlet连接和/或后端的机制.我搜索了很多地方,但我找不到任何答案,所以任何帮助都是值得赞赏的.
使用$ 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的范围).
假设我有以下类会被大量读取,但只是偶尔写入.它将用于多线程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在读取繁重的环境中需要变量,还是其他任何选择?谢谢.
我试图更新使用依赖注入,在这样一个应用程序,我想每个文档类与"线程安全"的注释(需要的话),既为其他编码器和错误检查器.
如果我有一个服务类,如下:
@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.
谢谢.
我正在尝试更新遗留的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)
现在首选哪种方法?他们会互相混乱吗?
我目前正在开发一个利用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) 假设我有一个高读,低写并且需要存储应用程序数据的并发映射:
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)以上都不是
我正在使用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.然而,这似乎并不适用于相同的情况,我想知道是否存在双重注射的一个主要问题,我需要死心地害怕,我在网上找不到其他的后果.
我正在尝试将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)
我在这里碰到一堵墙,有谁知道我能做些什么才能让这个东西运转起来?
java ×5
annotations ×3
angularjs ×2
guice ×2
javascript ×2
concurrency ×1
cookies ×1
cookiestore ×1
dao ×1
file-upload ×1
findbugs ×1
hibernate ×1
html5 ×1
jdbc ×1
jpa ×1
mysql ×1
servlet-3.0 ×1
servlets ×1
tomcat7 ×1
volatile ×1