小编JR.*_*JR.的帖子

Java中实用程序类的命名约定

在Java中编写实用程序类时,要遵循哪些好的指导原则?

包装应该是"util"还是"utils"?是ClassUtil还是ClassUtils?什么时候是"助手"或"效用"?公用事业或公用事业?或者你使用它们的混合物?

标准Java库使用Utils和Utilities:

  • javax.swing.Utilities
  • javax.print.attribute.AttributeSetUtilities中
  • javax.swing.plaf.basic.BasicGraphicsUtils

Apache使用各种Util和Utils,尽管主要是Utils:

  • org.apache.commons.modeler.util.DomUtil
  • org.apache.commons.modeler.util.IntrospectionUtils
  • org.apache.commons.io.FileSystemUtils
  • org.apache.lucene.wordnet.AnalyzerUtil
  • org.apache.lucene.util.ArrayUtil
  • org.apache.lucene.xmlparser.DOMUtils

Spring使用了很多Helper和Utils类:

  • org.springframework.web.util.UrlPathHelper
  • org.springframework.core.ReflectiveVisitorHelper
  • org.springframework.core.NestedExceptionUtils
  • org.springframework.util.NumberUtils

那么,您如何命名实用程序类?

java naming-conventions

110
推荐指数
4
解决办法
5万
查看次数

防止在浏览器中使用iframe缓存

你如何阻止Firefox和Safari缓存iframe内容?

我有一个简单的网页,其中包含iframe到不同网站上的网页.外部页面和内部页面都有HTTP响应头以防止缓存.当我单击浏览器中的"后退"按钮时,外部页面正常工作,但无论如何,浏览器总是检索iframed页面的缓存.IE工作正常,但Firefox和Safari给我带来了麻烦.

我的网页看起来像这样:

<html>
  <head><!-- stuff --></head>
<body>
  <!-- stuff -->
  <iframe src="webpage2.html?var=xxx" />
  <!-- stuff -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

var变量总是变化.尽管iframe的URL已更改(因此,浏览器应该向该页面发出新请求),但浏览器只是获取缓存的内容.

我已经检查了来回的HTTP请求和响应,我注意到即使外部页面包含<iframe src="webpage2.html?var=222" />,浏览器仍然会获取webpage2.html?var=111.

这是我到目前为止所尝试的:

  • 使用随机var值更改iframe网址
  • 将Expires,Cache-Control和Pragma标头添加到外部网页
  • 将Expires,Cache-Control和Pragma标头添加到内部网页

我无法做任何JavaScript技巧,因为我被同源策略阻止了.

我的想法已经不多了.有谁知道如何阻止浏览器缓存iframed内容?

更新

我安装了Fiddler2,因为Daniel建议再进行一次测试,不幸的是,我仍然得到了相同的结果.

这是我进行的测试:

  1. 外页Math.random()在JSP中使用随机数生成.
  2. 外页在网页上显示随机数.
  3. 外页调用iframe,传入随机数.
  4. 内页显示随机数.

通过此测试,我能够确切地看到哪些页面正在更新,以及哪些页面被缓存.

视觉测试

为了快速测试,我加载页面,导航到另一个页面,然后按"返回".结果如下:

原始页面:

  • 外页:0.21300034290246206
  • 内页:0.21300034290246206

离开页面,然后回击:

  • 外页:0.4470929019483644
  • 内页:0.21300034290246206

这表明内部页面正在被缓存,即使外部页面在URL中使用不同的GET参数调用它.出于某种原因,浏览器忽略了iframe请求新URL的事实; 它只是加载旧的.

提琴手测试

果然,Fiddler证实了同样的事情.

(我加载页面.)

外页被调用.HTML:

0.21300034290246206
<iframe src="http://ipv4.fiddler:1416/page1.aspx?var=0.21300034290246206" />
Run Code Online (Sandbox Code Playgroud)

http://ipv4.fiddler:1416/page1.aspx?var = 0.21300034290246206被调用.

(我离开页面,然后回击.)

外页被调用.HTML:

0.4470929019483644
<iframe src="http://ipv4.fiddler:1416/page1.aspx?var=0.4470929019483644" />
Run Code Online (Sandbox Code Playgroud)

http://ipv4.fiddler:1416/page1.aspx?var = 0.21300034290246206被调用.

好吧,从这个测试中,看起来好像Web浏览器没有缓存页面,但它正在缓存iframe的URL,然后在该缓存的URL上发出新请求.但是,我仍然难以理解如何解决这个问题.

有没有人对如何阻止Web浏览器缓存iframe URL有任何想法?

browser iframe caching back-button

76
推荐指数
7
解决办法
9万
查看次数

包括类库中的服务引用

我有一个C#类库和一个启动项目(一个控制台应用程序).类库包括对Web服务的服务引用.当我尝试运行项目时,我得到一个InvalidOperationException,因为启动项目没有读取类库的app.config,而是忽略了服务引用.为了使它工作,我被迫为启动项目添加相同的服务引用.有什么方法可以避免这种情况吗?我是否可以使启动项目识别类库的服务引用和app.config而无需将其复制到启动项目?

我已经尝试从类库中添加指向app.config的链接,但这不起作用.如果类库需要使用它来将该服务引用添加到启动项目中,则该类库不是非常便携.

c# app-config service-reference

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

在多个项目中共享JAR的最佳方式是什么?

当您有多个项目都使用同一组JAR库时,为每个项目反复包含相同的JAR是很繁琐的.如果我正在处理20个不同的项目,我宁愿没有20个相同的JAR文件集.使所有这些项目(以及新项目)引用同一组JAR的最佳方法是什么?

我有一些想法,但每个都有一些缺点:

  • 将所有JAR放在一个文件夹中,让每个项目都在该文件夹中查找.
  • 使用Eclipse创建"用户库"并让每个项目引用该用户库.
  • 创建一个引用每个JAR的"库"项目,并让每个项目引用该库项目.

java eclipse jar include

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

在.NET中的HTTP请求中传递数组值

在.NET中的HTTP请求中传递和处理数组的标准方法是什么?我有一个解决方案,但我不知道这是否是最好的方法.

这是我的解决方案:

<form action="myhandler.ashx" method="post">
    <input type="checkbox" name="user" value="Aaron" />
    <input type="checkbox" name="user" value="Bobby" />
    <input type="checkbox" name="user" value="Jimmy" />
    <input type="checkbox" name="user" value="Kelly" />
    <input type="checkbox" name="user" value="Simon" />
    <input type="checkbox" name="user" value="TJ" />

    <input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

ASHX处理程序以逗号分隔的字符串接收"user"参数.您可以通过拆分字符串轻松获取值:

public void ProcessRequest(HttpContext context)
    {
        string[] users = context.Request.Form["user"].Split(',');
    }
Run Code Online (Sandbox Code Playgroud)

所以,我已经找到了我的问题的答案:为同一个参数名称分配多个值,假设ASHX处理程序将其作为逗号分隔的字符串接收,并拆分字符串.我的问题是这是否通常在.NET中完成.

这是什么标准做法?是否有一种更简单的方法来获取多个值,而不是假设该值是以逗号分隔并在其上调用Split()?这是数组通常如何在.NET中传递,还是使用XML?

有没有人对这是否是最好的方法有任何见解?

.net c# arrays http request

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

在Notepad ++中组合文件

是否有Notepad ++插件自动将所有当前打开的文件合并到一个文件中?

更新:是的,我非常了解复制和粘贴:)我正在处理大量文件,我想要一个解决方案,使这个过程中的这一步比几十个复制和粘贴快一点.

我知道用于组合文件的实用程序,但我希望能够方便地组合当前在文本编辑器中打开的文件.

如果那里没有插件,我会自己写一个; 我只是想知道它是否已经存在以节省我开发它的时间.

file notepad++

12
推荐指数
3
解决办法
5万
查看次数

JavaScript开发是否有任何良好的设计实践或标准?

使用Java或C#等面向对象语言进行开发时,开发人员在开始实现之前使用UML等设计工具制作类图,创建接口,定义主要组件和交互,概述API等等并不少见.

我知道对于大多数小型JavaScript应用程序来说,这些软件工程原理可能过度,但如果您正在开发一个库(jQuery,YUI)或创建一个大型应用程序(Gmail,Google Docs),那么创建一个设计是个好主意.在开始编写任何代码之前提前计划.

是否在JavaScript开发或Web开发中使用了类似的实践?

编辑:

为了澄清,我对创建类/接口或为JavaScript创建UML不感兴趣.JavaScript是与Java/C#不同的范例,因此需要不同的设计工具.我很想知道那些JavaScript设计工具/实践是什么,如果有的话.

也许这个问题更好地问我想知道什么:如果像Google这样的公司创建了一个大型Web应用程序并且有几十个团队成员创建它,那么团队使用哪些流程,文档和实践来成功创建,协作,并巩固设计?他们会使用什么工具(例如,UML,流程图,一张纸上的潦草笔记)来处理和共享应用程序的设计(无需编写一行代码)?

javascript

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

如何使用X.509保护WCF服务的Java客户端?

我有一个使用X.509证书进行身份验证的WCF服务.创建可以使用该服务的Java客户端的最佳方法是什么?我听说过Axis,CXF,Tango和WSS4J,但我不确定哪个支持X.509,哪个是使用WCF的好方法.

java security wcf interop web-services

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