在构造函数中尝试/捕获 – 推荐的做法?

我一直很好奇的东西 public class FileDataValidator { private String[] lineData; public FileDataValidator(String[] lineData){ this.lineData = lineData; removeLeadingAndTrailingQuotes(); try { validateName(); validateAge(); validateTown(); } catch(InvalidFormatException e) { e.printStackTrace(); } } //validation methods below all throwing InvalidFormatException 不建议在我的构造函数中包含try / catch块吗? 我知道我可以让Constructor将Exception抛回给调用者。 你们在调用像我在构造函数中所做的那样的方法时,你们更喜欢什么? 在调用类中,您更喜欢创建FileDataValidator的实例并在该实例上调用那里的方法吗? 只是有兴趣听一些反馈!

Spring welcome-file-list正确映射

我知道在spring我必须定义welcome-file,它应该在WEB-INF文件夹之外,所以我这样定义: web.xml中: index.jsp spring / 但实际上我的真实代码是在WEB-INF / jsp / contact.jsp中 所以我总是这样做: 在我的控制器中,这意味着: @RequestMapping(“/index”) public String listContacts(Map map) { map.put(“contact”, new Contact()); map.put(“contactList”, contactService.listContact()); return “contact”; } 我怎么能这样做,欢迎文件总是进入我的索引映射,这导致contact.jsp? 如果这令人困惑,请随意提问…

我可以使用Spring Security管理多个浏览器选项卡吗?

我想知道,使用Spring Security,我可以validation用户会话,只允许打开一个浏览器选项卡。 可能吗? 我还想知道我是否可以这样做,当用户关闭选项卡并在会话结束之前再次打开它会直接应用程序SessionFilter,而无需进入登录屏幕。 我正在使用JSF 1.2,RichFaces 3.3.3,Hibernate和co … 细节:我知道spring的安全,我只是在研究它。 现在,谢谢,请原谅我糟糕的英语。 再见!

SSLPeerUnverifiedException:peer未经过身份validation

再一次,SSLPeerUnverified的沉闷问题,但我没有使用自签名证书。 我尝试使用https连接到主机。 该主机具有正确的证书,Firefox和HttpsUrlConnection都没有任何问题。 无论如何尝试使用HttpClient进行连接,我都会遇到可怕的exception。 有什么线索吗? 或者提示哪里看得更近? 谢谢! 编辑:调试输出 main,处理exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target main,getSession()中的IOException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

new String()vs literal string performance

StackOverflow上多次询问过这个问题,但没有一个是基于性能的 。 在Effective Java一书中,我们给出了这一点 如果String s = new String(“stringette”); 在循环或频繁调用的方法中,可以不必要地创建数百万个String实例。 改进版本只是以下内容: String s = “stringette”; 此版本使用单个String实例,而不是每次执行时都创建一个新实例。 所以,我尝试了两者,发现性能有了显着提高 : for (int j = 0; j < 1000; j++) { String s = new String("hello World"); } 需要大约399 372纳秒。 for (int j = 0; j < 1000; j++) { String s = "hello World"; } 大约需要23 000纳秒。 […]

如何在Java中更改默认类加载器?

假设我有三个类,example.ClassA,example.ClassB和example.ClassLoader。 ClassA打印出HelloWorld,ClassB导入example.ClassA并调用其main()方法。 如果我这样做: java -cp Example.jar -Djava.system.class.loader = example.ClassLoader example.ClassA 它工作并使用我的类加载器。 但是,如果我这样做: java -cp Example.jar -Djava.system.class.loader = example.ClassLoader example.ClassB ClassB使用我的类加载器,但ClassA(由ClassB导入)使用默认的类加载器加载。 有没有办法强制Java总是使用我的类加载器(除非明确指定另一个类加载器)? 编辑:感谢下面的PaŭloEbermann的回答,我认为问题是我正在调用父类加载器(URLClassLoader)来加载我不需要触摸的类,并且那些加载的类设置为它的上下文类加载器,因此从它导入的类使用我的自定义加载器的父类加载器。 (令人困惑,抱歉)现在我可以通过手动读取每个类来使它工作,但是它似乎是多余的,因为我直接复制了URLClassLoader的代码。 有没有办法告诉父类加载器查找和定义类,但是将Class的上下文类加载器设置为自定义类?

PrimeFaces 3.4 Charts datatipFormat

今天我想尝试新的PrimeFaces版本3.4.RC1。 对于图表,有一个名为datatipFormat的新属性。 我想仅在折线图中显示值(y轴)作为datatip。 喜欢这个: 我该怎么做只显示这个? 我找不到一个带有模板String的例子。 最好的问候Veote

寻找Dagger辅助注射的例子

从匕首讨论@ : 我有一个类从对象图中获取一些依赖项,并在运行时从调用者获取其他依赖项。 public class ImageDownloader { // Get these dependencies from the injector. private final HttpClient httpClient; private final ExecutorService executorService; // Get these from the caller. private final URL imageUrl; private final ImageCallback callback; … } 我提出了一个解决方案,我定义了一个工厂, public class ImageDownloader { … public static class Factory { private final HttpClient httpClient; private final […]

使用Java忽略SSL证书错误

Apache Http客户端。 您可以在此处查看相关代码: String url = “https://path/to/url/service”; HttpClient client = new HttpClient(); PostMethod method = new PostMethod(url); // Test whether to ignore cert errors if (ignoreCertErrors){ TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager(){ public X509Certificate[] getAcceptedIssuers(){ return null; } public void checkClientTrusted(X509Certificate[] certs, String authType) {} public void checkServerTrusted(X509Certificate[] certs, String authType) {} } }; […]

是否有可能找到Java本机方法的源代码?

我在Java中找到了Object的clone()方法: protected native Object clone() throws CloneNotSupportedException; 该方法的来源是否可用? 也许在OpenJDK ?