文档介绍:servlet 生命周期
加载并实例化、初始化、服务、销毁在整个生命周期中只初始化一次,在使用资源紧张和长期没有servlet请求发出时servlet销毁
struts1:要继承如dispatchAction基类、依赖servlet API、后台方法里有httpservletrequest,要定义ActionForm,单例
struts2:不依赖servlet API,脱离web容器运行,请求时有namespace,后台需要session时要实现相应接口,后台Action属性接收参数,多例
spring 对类的实例化,配置文件加载
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("file:"+ctxPath);
获取时 (id);
//获取客户端IP
HttpServletRequestWrapper hr = new HttpServletRequestWrapper(request){
public String getRemoteAddr() {
String clientIpStr = "X-ClientIP";
String realIP = (clientIpStr);
if (!(realIP)) {
return realIP;
}
return ();
}
};
String bindIP = ();
String IP = ();
if(!(bindIP) && !(bindIP)){
(, "您的终端IP与该4A主账号绑定的终端IP不一致,不能登录");
(loginPage).forward(request, response);
return null;
}
多线程来获取任务池中的任务,取不到任务就等待,有任务放入就唤醒所有等待的线程调任务
fastjson json-lib json比较
public static int i;
static{
i = 9;
(" ChildClassstatic "+i);
}
服务启动后调用该类(如访问静态成员变量i),static静态代码块执行,以后再调用该类不再执行(把static里的i改变不起作用)
--------------------------------------javaScript知识点
el表达式:${(( == null)||( eq '1')) ? 'checked'