如何让浏览器关闭后session失效?
如果用户不点击网站的“退出”链接,而直接关闭浏览器(或者强制关闭浏览器进程、死机等),服务器无法处理用户退出网站的请求,解决方式如下:
方式1:在每个页面中加入隐藏的IFrame,以异步刷新的方式定期刷新iframe页面,如每隔10S刷新一次,当服务器在一定的时间内未收到用户的刷新请求,则认为用户已经退出
优点:能在短时间内判断出用户是否已经退出 缺点:增加用户请求次数,所消耗的服务器资源较大
方式2:使用cookie保存用户登录信息,不要设置cookie的过期时间,当关闭浏览器时,cookie会自动过期
优点:处理方便 缺点:用户浏览器不一定支持cookie,也就无法实现该方式
方式3:在页面中添加onunload事件,当关闭浏览器时,自动跳转到“退出”页面(loginout.action)
优点:退出时,能及时进行处理 缺点:当用户打开多个页面时,关闭任何一个页面都有可能导致用户的退出
方式4:记录用户的每次操作时间(包括页面刷新、提交表单等),在数据库中用作业每隔一段时间检查上次的操作时间,当操作时间大于一定的数值时,就认为该用户已经退出
优点:无论哪种非正常退出,都能够进行处理 缺点:进行检查的时间间隔不容易确定,如果用户在线,当长时间未操作,也会认为用户已经退出
方式5:等待session失效
优点:你可以不用做任何工作 缺点:用户可以在你等待的这段时间内重新登录
使用原生JS操作网页的几个例子
原生js操作网页emmm添加网页元素移除网页元素代码 Title div{ border: 1px solid black; width: 100px; height: 100px; text-align: center; }div1div2 var div = document.createElement("div"); div.innerText = "这是使用js添加的元素"; //添加一个div元素 document.body.appendChild(div); alert("3秒后移除div1"); //移除html元素 setTimeout(function () { var divList = document.getElementsByTagName("div"); divList[0].remove(); },3000);这两个很基础,其实所有其他js库(jquery之类的)能做的事情原生js都能做。
php如何实现全选批量删除
<!--
function quan()
{
if(document.getElementsByName("qx[]")[0].checked==false)
{
for(var i=0;i<document.getElementsByName("quanxuan[]").length;i++)
{
document.getElementsByName("quanxuan[]")[i].checked=false;
}
}
if(document.getElementsByName("qx[]")[0].checked)
{
for(var i=0;i<document.getElementsByName("quanxuan[]").length;i++)
{
document.getElementsByName("quanxuan[]")[i].checked=true;
}
}
}
//-->
function xuan()
{
var a=new Array();
var i;
var c=0;
for(i=0;i<document.getElementsByName("quanxuan[]").length;i++)
{
if(document.getElementsByName("quanxuan[]")[i].checked)
{
a[c]=document.getElementsByName("quanxuan[]")[i].value;
c++;
/*alert(a);*/
}
}
if(a.length==0)
{
alert("请选择");
}
else
{
var ss=confirm("确定删除?");
if(ss==true)
{
location.href="shanchu.php?id="+a;
}
}
}
全选
选择删除
a
b
c
d
e
传值以后 在PHP页 接值 $zhi=$_GET["a"]; 然后把 $zhi 拆分成数组
$zhi=explode(',',$zhi);
在循环删除就可以
for($i=0;$i<count($idd);$i++)
{
$con->query("delete from 表名 where ajbg_bh='$zhi[$i]'");
}
如何实现springmvc+mybatis用多选框批量删除的功能Java代码
今天写了一个批量删除的功能,在后台传值过程中一直出错,最终还是请教了北京的一位高手帮我解决的,在此首先要好好感谢他,以后我有幸能帮助别人的话,决不推辞。
废话不说,直接进入正题,我会将在编写过程中出现的一些小知识点也进行总结概括的。
此项目基于的框架是:springmvc+mybatis
(1)controller
/**
* 批量删除 batch
*/
@RequestMapping("/batchDeletes")
@ResponseBody
public void batchDeletes(HttpServletRequest request,HttpServletResponse response){
String items = request.getParameter("delitems");
List delList = new ArrayList();
String[] strs = items.split(",");
for (String str : strs) {
delList.add(str);
}
userService.batchDeletes(delList);
}
代码思路:
从前台勾选的选择框中传过来的值用“,”分开,然后遍历存放到delList集合里面,直接删delList集合里面的所有字符串。
(2)service
/**
* 批量删除
*/
void batchDeletes(List delList);
(3)impl
/**
* 批量删除
*/
@Override
public void batchDeletes(List delList) {
userMapper.batchDeletes(delList);
}
(4)mapper
/**
* 批量删除
*/
void batchDeletes(List delList);
(5)mapper.xml
DELETE FROM tp_user where uname in
#{item}
如上的mybatis指代的意思如下:
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名. (直接找到对应的delList集合里面的所有元素,item="item"中的item(后一个)必须与#{item} 中的item一致)
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.
close表示以什么结束.
php中相当于java的request.setAttribute()的方法是什么?
我是一写PHP的,查了下request.setAttribute,作用域好像只是当前的SESSION。
那就是php的$_SESSION了
<?php
session_start();
if(!isset($_SESSION['KEY'])) {
#相当于setAttribute()
$_SESSION['KEY'] = 'test';
} else {
#相当于get
$test = $_SESSION['KEY'];
}
另,需要注意的是一定要session_start(),并且不能调用两次session_start,否则会无效的。
有不明白的可以PM我。
JAVA servlet 怎样修改存在session中一个对象中一个字段
User user = (User)session.getAttribute("username")
user.setName("大哥");//设置的方法自己在User类中定义
BS架构中,客户端与服务器一连接在服务端就会自动创建一个session对象.session.setAttribute("username",username);这句话的意思就是说,当客户端执行了某个操作后(刚一登陆,或其他操作)服务端就会在session对象中存储一个名称为username的参数这个相当于hashMap,"username"
相当于key username就是key对应的值(但注意这个值必须是一个对象).这样以后你可以通过session.getAttribute("username")的方法获得这个对象.比如说,当用户已登录系统后你就在session中存储了一个用户信息对象,此后你可以随时从session中将这个对象取出来进行一些操作,比如进行身份验证等等.
JSP应用程序上下文到底指的是什么?是指当前页面和下一页面?还是指啥?希望各路大神解释一下,谢谢啦。
上下文就指的是当前的语言环境,背景,内容等. 就是你当前代码片段所处的位置.
说简单点就是之前和之后的内容.
可以光说也不好理解,举例说明吧.
甲:"英文中doctor是什么意思呀?"
乙:"这个词可以是医生,也可能是博士,你得告诉我上下文我才能知道."
甲:"噢. 是这样 i`m a doctor, i work in a hospital"
乙:"你这里的doctor就是医生的意思."
这只是一个简单的例子.大约就是这个意思.
有的时候你光看一段代码,很难知道这段代码是如何运行的. 只有当你了解了上下文才能贯通所有的内容.
希望能帮到你.
jsp 页面的隐藏对象中的pagecontext.(jsp页面上下文), page(jsp页面本身
pageContext对象代表页面上下文,该对象主要用于访问JSP之间的共享数据。
page就是jsp
pageContext是PageContext类的实例,使用pageContext可以访问page、request、session、application范围的变量。
getAttribute(String name):取得page范围内的name属性。
getAttribute(String name,int scope):取得指定范围内的name属性,其中scope可以是如下4个值:
PageContext.PAGE_SCOPE:对应于page范围。
PageContext.REQUEST_SCOPE:对应于request范围。
PageContext.SESSION_SCOPE:对应于session范围。
PageContext.APPLICATION_SCOPE:对应于application范围。