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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web中页面加载时执行函数的问题相关的知识,希望对你有一定的参考价值。

本人想在页面加载和关闭的时候都对数据库操作一次,但发现javascript无法访问数据库,也不知道beforeunload方法后面是不是只能跟js的方法,不知道大家有没有什么好建议,最好写一点代码看看,急!!!QQ:907600323

参考技术A 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)
你需要判断下了,本回答被提问者采纳
参考技术B

    类似session监听吗?

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

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

参考技术C 用DWR或者先刷新一次页面,把要得到的数据隐藏起来!之后再用JQ进行判断! 参考技术D JS回调代码,AJ

java web开发,关于ajax提交验证通过后 window.open无法加载页面的问题

首先这是我定义的js函数ajax提交验证没问题,通过后进入回调函数

按照href的路径来到控制器:

可以看到我想定位到objectSelectForm那个界面

但是为什么window打开后,没有加载到那个页面,而是显示了我定义的请求呢?!!!!!!
求大家帮帮忙,弄了好久,我都快放弃治疗了。。。

参考技术A ajax的后台怎么这样写?
一般我们会写返回值为null,如果想传递数据最好以流的方式写到前台。
页面js这块,你是想打开新页面吗?
如果是想打开新页面那重定向也不能这样写,ajax使用是为了不刷新页面提交数据,这样就减少了与服务器交互的数据量,有利于提升用户体验,你要先搞清楚是不是有这个需求啊

以上是关于java web中页面加载时执行函数的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在页面加载时执行 javascript 函数?

代码正在执行,但从函数调用时视图未加载?

节流函数与页面滚动处理的一些方式

页面加载完毕执行多个JS函数

java web开发,关于ajax提交验证通过后 window.open无法加载页面的问题

PHP Sleep - 页面加载问题