java web中页面加载时执行函数的问题

本人想在页面加载和关闭的时候都对数据库操作一次,但发现Javascript无法访问数据库,也不知道beforeunload方法后面是不是只能跟js的方法,不知道大家有没有... 本人想在页面加载和关闭的时候都对数据库操作一次,但发现Javascript无法访问数据库,也不知道beforeunload方法后面是不是只能跟js的方法,不知道大家有没有什么好建议,最好写一点代码看看,急!!!QQ:907600323 展开
 我来答
dngoryaner
2013-03-18 · TA获得超过2350个赞
知道小有建树答主
回答量:2404
采纳率:0%
帮助的人:1132万
展开全部
JSP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<script language="JavaScript" type="text/javascript">
window.onload = function() {
checkLocation("onload");
};
function checkLocation(location){
var result = "";
if ( window.XMLHttpRequest )
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject( "Microsoft.XMLHTTP" );
}
var url = "myServlet?locationName="locationmyMethod;
xmlhttp.open( "GET", url , false );
xmlhttp.send( null );
result = xmlhttp.responseText;
xmlhttp.close;
if(result!=""){
//success
}else{
//error
}
}
function cos(){
checkLocation("close");//
window.close;
}
</script>
<body>
<form action="" method="post">
<table>
</table>
<input type="button" value="Close" onclick="cos();">
</form>
</body>
JAVA:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class myServlet
*/
public class myServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public myServlet() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String local = request.getParameter("locationName");
if("".equals("close")){
//关闭网页时你调用的数据库代码
}else{
//进入网页时你调用的数据库代码
}
}

}
WEB.XML加入
<servlet>
<javaee:description></javaee:description>
<javaee:display-name>myServlet</javaee:display-name>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.my.test.myServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>

当然,如果是网页强制关闭(就是点上方的X)
你需要判断下了,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2013-03-18 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2883万
展开全部
  1. 类似session监听吗?

  2. 这个代码有现成的,你可以搜索一下,代码一般分2部分,java部分和javascript部分。

  3. 要考虑浏览器被强制关闭的情况,这种情况下不会触发beforeunload。需要在session销毁时做处理。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c476076
2013-03-18 · 超过12用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:27.5万
展开全部
用DWR或者先刷新一次页面,把要得到的数据隐藏起来!之后再用JQ进行判断!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvxchen77
2013-03-20
知道答主
回答量:44
采纳率:0%
帮助的人:18.9万
展开全部
JS回调代码,AJ
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhao451966
2013-03-18 · TA获得超过137个赞
知道小有建树答主
回答量:224
采纳率:83%
帮助的人:48.3万
展开全部
这个用ajax试试
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式