做的后台的程序,问题是,每次点删除按钮,实际在数据库中已经删除,但页面上还存在,但按一下F5刷新就没了。、 所以求教如何自动刷新一次JSP页面. 源码如下
usermanger.jsp<%@ page language="java"%>
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>管理员管理</title>
<link href="css/Style.css" rel="stylesheet" type="text/css">
<script language=javascript>
function checkdel()
{
if(confirm("你确定要删除该管理员吗?一旦删除,将不能恢复!"))
return true;
else
return false;
}
</script>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body style="width:100%;">
<jsp:useBean id="connDBBean1" scope="page" class="Conn.conn"/>
<%
ResultSet rs=connDBBean1.executeQuery("select * from denglu");%>
<br>
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="1" style="border: 2px solid #ffffff;" class="border">
<tr align="center" class="sec_menu">
<td width="9%" class="tbbgtitle">ID</td>
<td width="20%" class="tbbgtitle">账号</td>
<td width="19%" class="tbbgtitle">姓名</td>
<td width="15%" class="tbbgtitle">最后登录IP</td>
<td width="19%" class="tbbgtitle">最后登录时间</td>
<td width="18%" class="tbbgtitle">操作</td>
</tr>
<%
while(rs.next()){
%>
<tr align="center" class="lineheight" onMouseOver="this.style.background='#F8F8F8';this.style.cursor='hand';" onMouseOut="this.style.background='';this.style.cursor='default';">
<%
String m=rs.getString(1);
int i=Integer.parseInt(m);
out.print("<td>"+i+"</td>");
out.print("<td>"+rs.getString(2)+"</td>");
out.print("<td>"+rs.getString(3)+"</td>");
out.print("<td>"+rs.getString(4)+"</td>");
out.print("<td>"+rs.getString(5)+"</td>");
%>
<td><a href="delete.jsp?id=<%=i%>" onclick="checkdel();">删除</a>
<input name="admindel" type="hidden" id="admindel" value="del"></td>
</tr>
<%
}%>
</table>
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="1" style="border: 2px solid #ffffff;" class="border">
<tr align="center" class="lineheight" onMouseOver="this.style.background='#F8F8F8';this.style.cursor='hand';" onMouseOut="this.style.background='';this.style.cursor='default';">
<tr align="center">
<td align="center"><a href="adminadd.jsp">*添加新用户*</a></td>
</tr>
</table>
</body>
</html>delete.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'wrong.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<jsp:useBean id="connDBBean2" scope="page" class="Conn.conn"/>
<%
String n = request.getParameter("id");
String sql="delete from denglu where pkid="+n+"";
connDBBean2.delete(sql);
response.sendRedirect("usermanger.jsp");
%>
</body>
</html>
从delete.jsp中可以看到,我是删除完数据之后自动跳转到usermanger.jsp。但usermanger.jsp界面不会自动刷新,所以求教了。
usermanger.jsp<%@ page language="java"%>
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>管理员管理</title>
<link href="css/Style.css" rel="stylesheet" type="text/css">
<script language=javascript>
function checkdel()
{
if(confirm("你确定要删除该管理员吗?一旦删除,将不能恢复!"))
return true;
else
return false;
}
</script>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body style="width:100%;">
<jsp:useBean id="connDBBean1" scope="page" class="Conn.conn"/>
<%
ResultSet rs=connDBBean1.executeQuery("select * from denglu");%>
<br>
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="1" style="border: 2px solid #ffffff;" class="border">
<tr align="center" class="sec_menu">
<td width="9%" class="tbbgtitle">ID</td>
<td width="20%" class="tbbgtitle">账号</td>
<td width="19%" class="tbbgtitle">姓名</td>
<td width="15%" class="tbbgtitle">最后登录IP</td>
<td width="19%" class="tbbgtitle">最后登录时间</td>
<td width="18%" class="tbbgtitle">操作</td>
</tr>
<%
while(rs.next()){
%>
<tr align="center" class="lineheight" onMouseOver="this.style.background='#F8F8F8';this.style.cursor='hand';" onMouseOut="this.style.background='';this.style.cursor='default';">
<%
String m=rs.getString(1);
int i=Integer.parseInt(m);
out.print("<td>"+i+"</td>");
out.print("<td>"+rs.getString(2)+"</td>");
out.print("<td>"+rs.getString(3)+"</td>");
out.print("<td>"+rs.getString(4)+"</td>");
out.print("<td>"+rs.getString(5)+"</td>");
%>
<td><a href="delete.jsp?id=<%=i%>" onclick="checkdel();">删除</a>
<input name="admindel" type="hidden" id="admindel" value="del"></td>
</tr>
<%
}%>
</table>
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="1" style="border: 2px solid #ffffff;" class="border">
<tr align="center" class="lineheight" onMouseOver="this.style.background='#F8F8F8';this.style.cursor='hand';" onMouseOut="this.style.background='';this.style.cursor='default';">
<tr align="center">
<td align="center"><a href="adminadd.jsp">*添加新用户*</a></td>
</tr>
</table>
</body>
</html>delete.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'wrong.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<jsp:useBean id="connDBBean2" scope="page" class="Conn.conn"/>
<%
String n = request.getParameter("id");
String sql="delete from denglu where pkid="+n+"";
connDBBean2.delete(sql);
response.sendRedirect("usermanger.jsp");
%>
</body>
</html>
从delete.jsp中可以看到,我是删除完数据之后自动跳转到usermanger.jsp。但usermanger.jsp界面不会自动刷新,所以求教了。
<%
response.setHeader("Cache-Control", "no-cache, no-store"); //HTTP 1.1
response.setHeader("Pragma", "no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0); //prevents caching at the proxy server
%>不需要被缓存的页面,都需要这样处理。当然你也可以写个Filter来全部处理掉。
<META HTTP-EQUIV= "pragma" CONTENT= "no-cache ">
<META HTTP-EQUIV= "Cache-Control" CONTENT= "no-cache, must-revalidate ">
<META HTTP-EQUIV= "expires" CONTENT= "0 ">
不会吧把 usermanger.jsp 前头几行贴出来看看?注意别弄错文件。
另外,你看看 IE 的设置,关于“历史记录/临时文件”的。有一项单选“检查所存网页的较新版本”,是否选择“自动”或者“每次访问网页时”?
response.setHeader("Cache-Control", "no-cache, no-store"); //HTTP 1.1
response.setHeader("Pragma", "no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0); //prevents caching at the proxy server
%>
那应该是<% ResultSet rs=connDBBean1.executeQuery("select * from denglu");%>这句话的执行问题,就是页面跳转回来后不执行这一句,还是用原有的rs对象