我有一些设计/建筑问题总是出现在我们的商店里。我说“我们的”,而不是“我”。在J2EE首次引入时做出了一些决定,因此有一些糟糕的设计选择和一些好的。
在网络环境中,您如何使用过滤器。什么时候应该使用J2EE过滤器,什么时候不应该使用?是否有可能有许多过滤器,特别是如果你有太多的逻辑。例如,我们的身份验证过程中有很多逻辑。如果您是此用户,请转到此站点,如果没有,请转到另一个站点。调试很困难,因为一个URL路径最终可能会呈现不同的目标页面。
JSP文件中替换值的属性资源包文件:似乎Java社区的共识是使用包含jsp解析的标签和标题的包文件。如果您使用多种不同的语言进行开发并根据区域设置切换标签值,我可以看到好处。但是如果你不使用多种语言呢?是不是必须将JSP文件或其他模板文件中的每个静态文本放入属性文件中。再一次,我们遇到调试问题,由于拼写错误的属性值键或损坏的属性文件,文本可能无法显示。此外,我们有一个过程,图形设计师将向我们发送html模板,然后我们将它们转换为jsp。然后删除静态文本,添加密钥,在属性文件中添加键/值等似乎更令人困惑。
E.g。 labels.properties文件可能包含Username:标签。它被一些键替换并呈现给用户。
编辑:以下是其中一些主题的一些很好的资源。
http://www.ibm.com/developerworks/java/library/j-diag1105.html
答案 0 :(得分:5)
答案 1 :(得分:0)
过滤器对于帮助移动逻辑(例如用户进行身份验证)非常有用,可以正确处理,因为您不希望每个页面都使用此逻辑。
由于你没有中央控制器,听起来你的过滤器正在提供这个功能,这很好,但正如你所提到的,它确实使调试更难。
这是单元测试可以派上用场的地方,因为你可以测试不同的情况,单独使用每个过滤器,然后测试容器外链中的所有过滤器,以确保它正常工作。
单元测试确实需要规范,但是,如果规则是在没有单元测试的情况下没有任何内容进入QA那么它可能有所帮助,并且有许多工具可以帮助生成测试,因此您只需编写测试。在调试,编写或更新单元测试之前,并显示单元测试失败,因此问题重复。
这将确保该错误不会返回,并且您已修复错误,并且您已更新单元测试。
对于资源包。如果你确定你永远不会支持另一种语言,那么当你重构时你就可以不再使用这些包,但是,如果文本实际上在一个地方,我认为更容易进行拼写/语法修正。
答案 2 :(得分:0)
答案 3 :(得分:0)
在网络环境中,您如何使用过滤器。什么时候应该使用J2EE过滤器,何时不应该使用?
过滤器旨在引导/修改/拦截实际的请求/响应/会话。例如:设置请求编码,确定登录用户,包装/替换请求或响应,确定应将请求转发到哪个servlet,等等。
要控制实际的用户输入(参数)和输出(结果和目标)并执行实际的业务逻辑,您应该使用servlet。
JSP文件中替换值的属性资源包文件。
如果你不做i18n,就不要使用它们。但是如果你成长并且客户/用户想要i18n,那么你会很高兴你已经准备好了。不仅如此,它还简化了CMS的使用,只需使用java.util.Properties
API即可编辑内容。
所有J2EE开发的单元测试
JUnit可以照顾它。您也可以考虑“正式”进行用户测试。创建几个用例并进行测试。