有人可以解释我如何编写一个自定义登录拦截器来检查用户名,密码,并检查用户的有效日期是否大于当前日期.我是java编程和struts 2的新手......我真的很感激一步一步的信息.我通过手动jdbc连接获得用户名等信息...我有一个jndi设置.这也需要进行会话管理.
所以一步一步地使用以下代码示例会很好,
1)dao使用jndi从DB获取用户名等
2)具有会话感知的登录操作
3)拦截器
4)login.jsp
5)拦截器的struts.xml定义
6)task.jsp和task2.jsp(只有在用户登录时才能看到的内部页面)
谢谢!
我的机器是32位还是64位?我的机器上安装的Java是32位还是64位?
uname -a 生产:
Linux xhost 2.6.18-194.el5xen #1 SMP Tue Mar 16 22:01:26 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
java -version 生产:
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Server VM (build 19.1-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud) 我有一个基于EJB的库,需要修改才能与Tomcat应用服务器兼容(即没有JaveEE).我在Hibernate上浏览了一下,感到非常困惑.
显然,有一个自然的Hibernate分支使用.cfg文件作为基础,符合Java SE,然后有一个基于JPA的Hibernate分支,它有条件地依赖于Java EE.我也觉得讨厌的一件事是显然不支持某些接口 - 例如CriteriaQuery.
所以我想,我必须去自然的Hibernate分支来实现摆脱Java EE的目标(考虑到差异,这很烦人).OTOH,也有TomEE可用,符合Tomcat,并且可能让我保持大部分代码不变
如果我能得到一些反馈,那就太好了.谢谢.
为什么Tomcat支持Hibernate?Hibernate是JPA的实现,但Tomcat不支持Java EE.那么为什么我们可以在Tomcat中使用Hibernate呢?
让我们考虑一下我有一些具有B类属性的A类.
public class ClassA{
private ClassB classB;
public ClassA(ClassB classB){
this.classB = classB;
}
//some methods ommitted.
}
Run Code Online (Sandbox Code Playgroud)
不,我有CGLIB代理:
public class CGLibProxy implements MethodInterceptor{
@Override
public Object intercept(Object object, Method method, Object[] args,
MethodProxy methodProxy) throws Throwable {
if (method.getName().startsWith("print")){
System.out.println("We will not run any method started with print");
return null;
}
else
return methodProxy.invokeSuper(object, args);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我CGLib用于ClassA时,代理会创建ClassA实例.
我的问题是如何将classB参数传递给此代理,因为据我所知,CGLib将为ClassA运行空构造函数?
我正在尝试实现EJB命令来传递两个jsf项目.
我创建了一个EAR,其中有两个jsf项目+ ejb.
不幸的是,我似乎无法启动该项目.
WARNING: StatefulContainerbuilder instantiated store: org.glassfish.ha.store.adapter.file.FileBackingStore@ece71a0; ha-enabled: false ==> BackingStoreConfiguration{clusterName='null', instanceName='null', storeName='Login-88570309275090944-BackingStore', shortUniqueName='88570309275090944', storeType='file', maxIdleTimeInSeconds=-1, relaxVersionCheck='null', maxLoadWaitTimeInSeconds=0, baseDirectoryName='C:\Users\Joff\AppData\Roaming\NetBeans\7.2\config\GF3\domain1\session-store\Login-88570309275090944', keyClazz=interface java.io.Serializable, valueClazz=class org.glassfish.ha.store.util.SimpleMetadata, synchronousSave=false, typicalPayloadSizeInKiloBytes=0, vendorSpecificSettings={start.gms=false, async.replication=true, key.transformer=com.sun.ejb.base.sfsb.util.SimpleKeyGenerator@9bdd877, local.caching=true, value.class.is.thread.safe=true, broadcast.remove.expired=false}}
SEVERE: Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method
java.lang.RuntimeException: EJB Container initialization error
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:242)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:305)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:108)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:460)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179) …Run Code Online (Sandbox Code Playgroud) 如何将子类转换为具有相同超类的另一个子类?我知道它不允许直接从子类转换为子类.另一种方式?ID被设置为超类,因此制作新对象并不好; 我用它来表示状态模式.如果状态改变,那么类的类型应该改变.
@Entity
public class Request() {}
@Entity
public class OpenRequest extends Request() {}
@Entity
public class CloseRequest extends Request() {}
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一个名为的域类Subscriber,它的定义是这样的:
public class Subscriber {
private long id;
private String email;
private String subscriberName;
private Topic subscribingTopic;
//other attributes and getters setters.
}
public class Topic{
private long id;
private String topicName; //unique
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我需要覆盖此Subscriber类的equal()和hashCode()方法.覆盖equal()是一项简单的任务(只是比较基本属性,在这种情况下有三个).但是我在覆盖hashCode()方法时遇到了问题.我如何编写hashCode(),我可以信任安全地使用hibernate,同时管理我的域.我可以信任IDE生成的吗?
任何帮助将不胜感激,并提前感谢!
我正在使用PrimeFaces,我想<p:graphicImage>在执行上传操作后显示上传图像的预览.
任何人都可以提供有关Java最佳编码实践的一些提示,以便在AIX中实现低CPU利用 例如,避免while(true)循环,等等我的要求是我的java应用程序应该以低CPU使用率运行,这样它就不会占用在同一服务器上运行的其他关键应用程序
java-ee ×10
java ×7
ejb ×2
hibernate ×2
32bit-64bit ×1
aix ×1
ajax ×1
apache-tomee ×1
cglib ×1
glassfish ×1
graphicimage ×1
hashcode ×1
jpa ×1
jsp ×1
performance ×1
primefaces ×1
spring ×1
struts2 ×1