Tag: java ee

如果url模式匹配多个servlet怎么办?

s1 /abc s2 /abc s3 /* 如果请求/ abc到来,将调用哪个servlet?为什么?

如何在多次战争之间共享一个jsf错误页面

我正试图在多次战争之间共享一个错误页面(error.xhtml)。 它们都是一个大耳朵应用程序,并且都使用一个常见的jar库,我想把它放在这里。 错误页面应使用web.xml或更好的web-fragment.xml,并将声明为标准java ee错误页面。 实际EAR结构: EAR EJB1 EJB2 WAR1 (using CommonWeb.jar) WAR2 (using CommonWeb.jar) WAR3 (using CommonWeb.jar) 只是将错误页面放在META-INF / resources下面是行不通的,因为它不是资源。 我想尽可能少地配置每个war文件。 我正在使用Glassfish 3.1,但我希望尽可能使用Java EE 6标准。

EJB的用途是什么

我目前正在学习Jave-EE,拥有丰富的C ++经验并且学过Java SE。 我不明白Enterprise Java Beans的目的; 谁能为我澄清这一点。 我对遗留用途不感兴趣:这是在EJB-3.1和Java-EE 6的上下文中。 似乎有些人使用它们来包含业务逻辑,用于实现传统3层架构的业务层。 这将域逻辑与域对象分开,导致贫血域模型 。 但这违背了我所有的OOD本能; 我同意Martin Fowler认为这是一种反模式 。 我是否应该放松对贫血领域模型的反对意见? 或者EJB有其他用途吗?

如何使用JPA注释创建连接表?

我需要使用JPA注释在我的数据库中创建一个连接表,结果将是这样的: 到目前为止,我刚刚实施了2个实体 @Entity @Table(name=”USERS”, schema=”ADMIN”) public class User implements Serializable { private static final long serialVersionUID = -1244856316278032177L; @Id @Column(nullable = false) private String userid; @Column(nullable = false) private String password; public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public String getPassword() { return password; } public […]

序列化中readObject / writeObject的使用

我正在阅读本文以了解有关Java序列化过程的更多信息。 说到readObject/writeObject使用,我可以看到两个用例: 我们可以使用writeObject在序列化之前加密字节码。 从安全的角度来看,这是件好事。 我们可以使用readObject来执行需要在反序列化后立即执行的任何特定代码片段,当然从#1开始,我们甚至可以使用readObject来解密序列化对象时被截取的字节代码。 在编写自定义readObject / writeObject方法时序列化/反序列化对象时是否还有其他实际情况? 或者,如果你能指出我可以看到readObject / writeObject的一些体面和实际用途的任何地方?

什么是Java中的阴影变量?

我正在读一本书,并在Java中遇到了“阴影变量”一词,但没有任何描述。 最终这些变量用于什么以及如何实施?

如何在启动时使Tomcat预编译JSP?

我正在使用Apache Tomcat 6.0和Jetty 6。 我们主要使用Jetty进行测试(它非常适合在JUnit测试中运行嵌入式)和Tomcat用于生产。 默认情况下,Tomcat会在用户请求时动态编译JSP。 但这会导致第一次打击的性能下降。 它还突出了Tomcat的JSP编译器中的奇怪错误 。 Tomcat文档提供了在构建时使用Ant预编译JSP的建议(并且还提供了Maven插件)……但是生成的WAR包含特定于Tomcat的东西,例如PageContextImpl.proprietaryEvaluate,因此我们不能在Jetty中使用它。 是否有一些标志或设置我们可以使用某个地方强制Tomcat在WAR初始化后立即预编译所有JSP? 我们准备在启动时等待一段时间。 事先:我知道有一种方法可以通过在web.xml中为一个JSP显式标识/ servlet / load-on-startup标记来预编译一个JSP。 但对于数十甚至数百个难以管理的JSP而言。

使用struts 2 form对象编辑对象的ArrayList

我有2个class – Student和Course 。 两者都在其内部的属性上定义了所有getter和setter。 使用这两个类,我正在尝试构建一个Web应用程序,其中包含编辑和在不同jsp页面中添加学生等常规function。 我的学生可以注册多个课程,每个学生的每门课程的分数都应该可以在应用内编辑。 现在我有一个studentMarks.jsp ,它从一个动作类加载数据 – StudentAction public class StudentAction extends ActionSupport { private static final long serialVersionUID = 1L; private List studentList; private List courseList; private HashMap<Student,List> studentCourseList; private int rollNo; private String name; private String DOB; StudentService studentService; CourseService courseService; Student student; Course course; /**** Setters and getters for […]

服务和DAO层的责任和使用

我目前正在使用带有Spring插件和hibernate的Struts2开发一个Web应用程序,当我查看在线示例时,我看到了Service和DAO层的使用,现在我看到了Service和数据访问对象层的真正用途是什么? 如果服务层只是调用DAO层的方法来执行CRUD操作。 直接调用DAO图层方法是不明智的? 让我们说这个Dao和服务层的例子 PeopleService @Transactional public class PeopleService { private PeopleDao pDao; public PeopleDao getPDao() { return pDao; } public void setPDao(PeopleDao peopleDao) { this.pDao = peopleDao; } public void createPerson(String name){ pDao.createPerson(name); } public List getPeople(){ return pDao.getPeople(); } } PeopleDao public class PeopleDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { […]

企业Java实体应该是愚蠢的吗?

在我们的遗留Java EE应用程序中,有大量的值对象(VO)类,它们通常只包含getter和setter,可能是equals()和hashCode() 。 这些(通常)是要在持久性存储中保存的实体。 (为了记录,我们的应用程序没有EJB – 尽管将来可能会改变 – 并且我们使用Hibernate来持久化我们的实体。)操作VO中的数据的所有业务逻辑都在不同的类中(不是EJB,只是POJO) )。 我的OO心态讨厌这个,因为我确实认为给定类的操作应该驻留在同一个类中。 所以我迫切希望将逻辑转化为相关的VO。 我刚刚与一位在Java EE方面比我更有经验的同事进行了讨论,并且他确认愚蠢的实体至少曾经是推荐的方式。 然而,他最近也阅读了有关这一立场有效性的意见。 我知道有些问题至少限制了实体类中的内容: 它不应该直接依赖于数据层(例如,查询代码应该进入单独的DAO) 如果它直接暴露于更高层或客户端(例如通过SOAP),则可能需要限制其接口 有没有更合理的理由不将逻辑移入我的实体? 还是要考虑其他任何问题?