dwr反推java的简单介绍
本篇文章给大家谈谈dwr反推java,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作
- 2、我用dwr调用java的一个方法,但参数中有Object... objects,我该怎么传参。
- 3、Java 怎样用DWR实现页面无刷新
- 4、DWR JS方法同JAVA方法同名导致无限循环
- 5、java中的dwr框架怎么配置啊?主要用于什么地方啊?
使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作
在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session
具体设置的方法有三种:
1.在web容器中设置(以tomcat为例)
在tomcat-7.0\conf\web.xml中设置,以下是tomcat7.0中默认配置:
123
session-configsession-timeout30/session-timeout/session-config
tomcat默认session超时时间为30分钟,可以根据需要修改,负数或0为不限制session失效时间
这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果在调试程序,应该是修改服务器端时间来测试,而不是客户端
2.在工程的web.xml中设置
!--时间单位为分钟--
123
session-configsession-timeout15/session-timeout/session-config
这里的15是指15分钟失效
3.通过java代码设置
session.setMaxInactiveInterval(30*60);//以秒为单位,即在没有活动30分钟后,session将失效
三种方式优先等级:1 2 3
在一般系统中,也可能需要在session失效后做一些操作:
1.控制用户数,当session失效后,系统的用户数减少一个,控制用户数量在一定范围内,确保系统的性能
2.控制一个用户多次登录,当session有效时,如果相同用户登录,就提示已经登录了,当session失效后,就可以不同提示,直接登录
那么如何在session失效后,进行一系列的操作呢?
这里就需要用到监听器了,即当session因为各种原因失效后,监听器就可以监听到,然后执行监听器中定义好的程序就可以了
监听器类为:HttpSessionListener类,有sessionCreated和sessionDestroyed两个方法
自己可以继承这个类,然后分别实现
sessionCreated指在session创建时执行的方法
sessionDestroyed指在session失效时执行的方法
例子:
1 public class OnlineUserListener implements HttpSessionListener{ 2 public void sessionCreated(HttpSessionEvent event){ 3 HttpSession session=event.getSession; 4 String id=session.getId()+session.getCreationTime(); 5 SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用户 6 } 7 8 public void sessionDestroyed(HttpSessionEvent event){ 9 HttpSession session=event.getSession;10 String id=session.getId()+session.getCreationTime();11 synchronized(this){12 SummerConstant.USERNum--;//用户数减-13 SummerConstant.UserMap.remove(id);//从用户组中移除掉,用户组为一个map14 }15 }16 }
然后只需要把这个监听器在web.xml中声明就可以了
listener
listener-classcom.demo.OnlineUserListener/listener-class
/listener
我用dwr调用java的一个方法,但参数中有Object... objects,我该怎么传参。
Object... objects,表示你可以传多个参数,具体多少个根据你自己的需求来定,底层是用一个对象数据接收的
Java 怎样用DWR实现页面无刷新
IE进度条肯定会显示,另外想办法屏蔽吧,无刷新很简单,DWR提供了回调函数的接口,在回调函数中可以使用js动态改变数据
对于使用js只对数据进行刷新的操作应该了解吧!
下面例子是一个无刷新更改父页面信息的操作:
function update_hdsms() {
dwr.util.useLoadingMessage("正在提交...");
var formUpdate = dwr.util.getValues("formUpdate");
NewcpjhDWRJS.update(true,formUpdate, shows);//提交更新,shows为更新完成后的回调函数
}
function shows(data) {//回调函数中会有个更新完成后的返回值参数
if (data == "true") {//自己设置返回如果为true则进入刷新父页面数据
parent.selectser();//父页面中有selectser()的js函数对数据信息进行重刷新,只刷新数据部分
parent.win_tj_update.close();//这个没有必要知道了,这个是我关闭更新页面的方法
} else {
alert(data);
}
}
问题比较模糊,只能给你大概说说
DWR JS方法同JAVA方法同名导致无限循环
实际上
DWR是把java的deleteRegistSub方法也模拟成了一个JS方法.所以就有两个方法了..你可以在你的项目里面找一下,能找到把JAVA转换成JS后的代码
java中的dwr框架怎么配置啊?主要用于什么地方啊?
配置很简单~主要用于直接调用java函数~!!!
首先需要用到dwr.jar
web.xml
?xml version="1.0" encoding="UTF-8"?
web-app version="2.4"
xmlns=""
xmlns:xsi=""
xsi:schemaLocation="
"
display-nametest/display-name
servlet
servlet-namedwr/servlet-name
servlet-classorg.directwebremoting.servlet.DwrServlet/servlet-class
init-param
param-namedebug/param-name
param-valuetrue/param-value
/init-param
/servlet
servlet-mapping
servlet-namedwr/servlet-name
url-pattern/dwr/*/url-pattern
/servlet-mapping
welcome-file-list
welcome-fileindex.html/welcome-file
welcome-fileindex.htm/welcome-file
welcome-fileindex.jsp/welcome-file
welcome-filedefault.html/welcome-file
welcome-filedefault.htm/welcome-file
welcome-filedefault.jsp/welcome-file
/welcome-file-list
/web-app
dwr.xml
!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
""
dwr
allow
create javascript="UserDAOAjax" creator="new"
param name="class" value="org.thj.UserDAOAjax"/param
/create
create javascript="MyProjectDao" creator="new"
param name="class" value="org.thj.MyProjectDao"/param
/create
convert match="org.thj.User" converter="bean"/convert
/allow
/dwr
MyProjectDao.java
package org.thj;
import java.util.HashMap;
import java.util.Map;
public class MyProjectDao {
public String getName(String str){
String returnStr="";
returnStr="((("+str+"))))MyProjectDao.getName-return String";
return returnStr;
}
public Map getMap(){
MapString,String map=new HashMapString,String();
map.put("1", "v1");
map.put("2", "v2");
map.put("3", "v3");
return map;
}
}
my.jsp
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
script type="text/javascript" src="dwr/engine.js"/script%--固定写法--%
script type="text/javascript" src="dwr/util.js"/script
script type="text/javascript" src="dwr/interface/MyProjectDao.js"/script%--由框架自动生成,文件名根据DWR文件而来--%
title测试/title
script type="text/javascript"
function validate()
{
var name = form1.username.value;
MyProjectDao.getName("黄东辉",callBack);
//UserDAOAjax.exitUser(name,show);%--exitUser()函数的返回值会赋给show()函数--%
}
function callBack(data){
alert("the return value is " + data);
}
function getMap(){
MyProjectDao.getMap(getMapCallBack);
}
function getMapCallBack(data){
for(var property in data){
alert("property:"+property);
alert(property+":"+data[property]);
}
}
/script
/head
body onload="validate()"
form action="#" name="form1"
table id="table1" border="0"
trtd 用户名:input type="text" name="username"//td/tr
trtd 密码:input type="text" name="password"/ /td/tr
trtd input type="button" value="点击" onclick="getMap();" / /td/tr
/table
/form
/body
/html
dwr反推java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、dwr反推java的信息别忘了在本站进行查找喔。
发布于:2022-12-12,除非注明,否则均为
原创文章,转载请注明出处。