我看到我的同事开发的一些JSF项目,这些项目在我看来非常慢.有没有人有相同的意见?
我目前正在为"富"客户端使用jsp + jstl和jQuery.
我想知道现代框架(jsf,wicket,tapestry ......)优于旧普通jsp的优点和缺点.
如果使用所有这些技术的人都回答了会很棒.
这对我来说也很有趣,最令人兴奋的功能让你离开jsp并使用"大规模"框架(我的意思是,例如Spring中的AOP或其他任何你能注意到的东西).
感谢所有评论.
我有一些属性文件/WEB-INF.我想在JSF托管bean中加载它.有没有办法做到这一点?
我多次访问二叉树的最小元素.什么实现允许我在恒定时间内访问最小元素,而不是O(log n)?
java algorithm complexity-theory binary-tree data-structures
我听说过很多关于jsf的性能问题(甚至在前一段时间问过相关问题).
但今天我已经听到了jsf性能测试的具体结果.从结果中,jsp显示响应时间为0-100ms,jsf应用显示1000-1200ms.表单提交测试显示jsp为100-200ms,jsf为~1500ms.
我没有看到代码(我在jsf中没有那么大的专家来验证代码),但我知道人们花了很多时间来优化测试应用程序中的jsf性能.
这是否意味着如果我的网站每秒应处理100多个请求,那么我应该使用其他东西而不是jsf?
介绍:
我正在开发一个API,可以访问Picasa,Flickr和其他一些图像服务.
我有一个WebAlbum类(它提供对嵌套照片,专辑的访问,如果允许,以及一些元信息).
我的API不仅允许用户阅读专辑,还允许用户创建新专辑.在一般情况下,为了创建新专辑,API用户应该使用工厂方法,该方法创建专辑然后调用该方法WebGallery#addAlbum (newAlbum).
但是Flickr不允许创建空白专辑,它需要在任何新专辑中至少有一张预定义的照片(可能会制作漂亮的专辑预览).在Flickr术语中,第一张照片称为Primary Photo.因此,为了为Flickr创建相册,用户应使用工厂方法,然后将图像添加到新相册,然后调用WebGallery#addAlbum (newAlbum).
问题:
目前WebAlbum类有这种方法
public interface WebAlbum {
...
public boolean requiresPrimaryPhoto ();
}
Run Code Online (Sandbox Code Playgroud)
我不能保留此名称,因为PrimaryPhoto只是一个Flickr术语.我可以改成它
public interface WebAlbum {
...
//with spaces: requires one added photo to create new album
public boolean requiresOneAddedPhotoToCreateNewAlbum ();
}
Run Code Online (Sandbox Code Playgroud)
请建议一个具有相同含义的较短名称.
在我当前的项目中,我注意到方法内的所有类字段和变量都尽可能使用 Final 修饰符进行声明。
就像这里一样:
private final XMLStreamWriter _xmlStreamWriter;
private final Marshaller _marshaller;
private final OutputStream _documentStream;
private final OutputStream _stylesStream;
private final XMLStreamWriter _stylesStreamWriter;
private final StyleMerger _styleMerger;
public DocumentWriter(PhysicalPackage physicalPackage) throws IOException {
final Package pkg = new Package(physicalPackage);
final Part wordDocumentPart = pkg.createPart(
"/word/document.xml",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml",
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument");
// styles.xml
final Pair<Part, String> wordStylesPart = wordDocumentPart.createRelatedPart(...);
...
}
Run Code Online (Sandbox Code Playgroud)
有什么理由这样做吗?
ps 据我所知,项目不应该是多线程的(至少我没有听说过)。
我想通过java程序创建注册表项,在启动时添加jar文件.
RegistryKey r=new RegistryKey(RootKey.HKEY_CURRENT_USER,"Software/Microsoft/Windows/CurrentVersion/Run");
r.createSubkey("sample");
Run Code Online (Sandbox Code Playgroud)
但我得到了错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: ca.beq.util.win32.registry.RegistryKey.testInitialized()V
at ca.beq.util.win32.registry.RegistryKey.testInitialized(Native Method)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
谢谢
是否有可能从JSF应用程序中找到部署路径?
还有一个问题(如果前一个问题的答案是真的):在那里存储一些上传的文件是否合法?
假设一个程序正在读取文件F.txt,另一个程序正在同时写入该文件.
(当我考虑如果我是系统程序员时如何实现此功能)我意识到可能存在歧义:
第一个项目会看到什么?
第二个程序在哪里写新字节?(即写入"就地"vs写入新文件,然后用新文件替换旧文件)
有多少程序可以同时写入同一个文件?
..也许是不那么明显的事情.
所以,我的问题是:
读/写文件功能的主要策略是什么?
哪些操作系统(Windows,Linux,Mac OS等)支持哪些?
它可以依赖于某种编程语言吗?(我可以假设Java可以尝试在所有支持的操作系统上提供一些统一的行为)
java filesystems operating-system programming-languages file
我有一个Web应用程序.我正在为它配置CI.
我们没有使用构建工具(既不是Ant也不是Maven),而是通过IDE进行构建.现在我正在研究一个将由我们的构建系统使用的Ant脚本.
当项目在构建服务器上构建但在本地计算机上不构建时,有几个属性文件应具有不同的属性值.
处理这种情况的常用方法有哪些?
如果我们使用Maven,我可能会使用不同的配置文件,但我们有Ant.
我能看到的一个可能的解决方案是为所有属性文件集创建一个根文件夹,并将每个集存储在一个单独的子文件夹中(参见下面的模式).
/profiles
/dev1
prop1.properties
prop2.properties
/dev2
prop1.properties
prop2.properties
/build-server
prop1.properties
prop2.properties
/webapp
/WEB-INF
Run Code Online (Sandbox Code Playgroud)
然后在Ant构建期间,我们可以将正确的集合复制到正确的位置.但是像我们以前那样通过IDE进行构建可能是一个问题(因为属性文件不再存储在src文件夹下的适当位置).
还有其他方法吗?
java ×9
jsf ×4
jsp ×2
performance ×2
properties ×2
algorithm ×1
ant ×1
api-design ×1
binary-tree ×1
coding-style ×1
comparison ×1
deployment ×1
file ×1
file-upload ×1
filesystems ×1
final ×1
managed-bean ×1
oop ×1
registry ×1
web-inf ×1