1.地址栏的中文参数问题,搜索了所有的帖子,用尽了所有的办法也不行
你说的是用?带参数的问题吧,我遇到过,是在ns里面,ie里面好象没有这个问题,这个问题没有直接的解决办法,但是可以间接解决,就是用隐藏域,传递参数。
2:应该用response.sendRedirect("/web/end.jsp?flag=payment02");吧,我用的这个没有这个问题啊。
你说的是用?带参数的问题吧,我遇到过,是在ns里面,ie里面好象没有这个问题,这个问题没有直接的解决办法,但是可以间接解决,就是用隐藏域,传递参数。
2:应该用response.sendRedirect("/web/end.jsp?flag=payment02");吧,我用的这个没有这个问题啊。
传递参数之前URLEncoder.encode(),取参数值时直接用request就可以了。2.没有遇到“找不到服务器错误”。你可以清除缓存,下面两种方法:
(1)
使用java提供的方法设置http头信息,在jsp或者servlet中都可以
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
%>
(2)
使用HTML标记,如下:
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD> 3.
没有用过。
pam1=java.net.URLEncoder.encode(pam1);2.同意 Tmsheng(小唐蔡) 的方法。如果还不好用,则检查所有cache,IE中检查网页选为“自动”;如果你IE是用代理服务器上网的,则暂时将代理服务器选项去掉。3. 确认你的ResultSet对象不是用<%!%>标记定义的,要在<%%>里面定义。
1.必须用querystring,而且是用javascript控制的,所以无法用UrlEnCode
2.确实有这种情况呀,不过我用了iframe,也可能跟这个有关,一般只要刷新一下整个页面就好了。我用的语句是:response.sendRedirect("error.html");
而且同一页面有多处,大体是:
if (xxx){
response.sendRedirect("error.html");
return;
}3.大家不用getRow(),那用什么取得记录总数呀?
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>
是每页都有的
为什么我的数据库里有N条记录:
我的代码是这样的:
rs.last();
count = rs.getRow() + 1;
在有的机器上是N,有的机器上是N+1呢?难道没人碰到过reques.sendRedirect(""),出现的页面缓存现象?
不过我的特殊,我有多处reques.sendRedirect(""),导致reques.sendRedirect("")执行多次,但我有return呀
谁有立即结束jsp程序的方法?就象asp里的Response.Redirect
实在想不通为什么一重定向就说找不到服务器或者dns错误
而且同样的程序在不同的机器上,getRow()的结果不同
2:你的应用服务器是什么的,webshpere下response.sendRedirect()的参数是相对路径。
response.sendRedirect("/web/end.jsp?flag=payment02");这里的web是jsp所在的目录。
在不行,就把你的jsp帖出来。
另外;强烈建议,不要在jsp里面写入操作数据库的代码。否则对调式和以后的维护都很不利
加个变值在URL后面。解决Cache问题,就好象CSDN的URL后的temp=xxxx.
response.sendRedirect("xxx.jsp?"+SystemcurrentTimeMillis());
2. 最好的方法在后面加一个自动变更的变量,如当前时间
3.getRow()是返回当前记录的行号
a.jsp
<%
String str="中文";
%>
<input type="button" onclick="javascript:window.location.href='b.jsp?str=<%=java.net.URLEncoder.encode(str)%>';" value="click">
在b.jsp中接收:
<%
out.println(new String(request.getParameter("str").getBytes("8859_1"), "GB2312"));
%>
***********************
2.清楚cache的方法除了使用temp随机参数之外,可以手动删除/tomcat目录下的work目录,重新启动tomcat即可
**************************
3.使用jdbc的话,先recordset.last();然后recordset.getRow();
<%@ page language="java" contentType="text/html;charset=gb2312" import="java.sql.*,My.*"%>
<%
//-----------权限判断处理--------------
String strProvId;strProvId = (String)session.getAttribute("prov_id");
if (strProvId==null){
response.setRedirect("error_p.jsp");
return;
}else if (!(strProvId.equals("1"))){
response.sendRedirect("error_p.jsp");
return;
}else{
//-----------权限判断处理--------------end
%>
<%
//修改用户信息表
Connection sqlCon = null; //数据库连接对象
java.sql.Statement sqlStmt = null; //SQL语句对象
ResultSet sqlRst = null; //选择结果集对象
ResultSet sqlSwType = null;int RunSQLRst ;//装载JDBC驱动程序
//try
//{
%>
<%@ include file="conndatabase.jsp" %>
<% String post = request.getParameter("post");
if(null==post)
{
%>
<HTML>
<HEAD>
<TITLE>添加/修改用户信息</TITLE>
<meta http-equiv='Expires' content='-10'>
<meta http-equiv='Pragma' content='No-cache'>
<meta http-equiv='Cache-Control', 'private'>
<link rel="stylesheet" href="/css.css">
<style>
td
{
text-align:left;
}
</style>
<script language="javascript">
function check()
{
return true;
} function returnback()
{
this.location='useradmin.jsp';
}
</script>
</HEAD>
<BODY bgcolor="#7aa9d3">
<form name='frmForm' action='adduser.jsp' onsubmit='check();'>
<input type='hidden' name='post' value='post'>
<TABLE border="0" cellspacing="1" cellpadding="0" width="60%">
<TR class="title">
<TD colspan="2" style="font-size:10pt;text-align:center"><strong>添加省</strong></TD>
</TR>
</TR class="content">
<TR class="content">
<TD class="right">省名:</TD>
<TD><input type="text" name="prov_name" value="" class="text"></TD>
</TR>
<TR class="content">
<TD class="right">密码:</TD>
<TD><input type="password" name="pass1" value="" class="text"></TD>
</TR>
<TR class="content">
<TD class="right">验证密码:</TD>
<TD><input type="password" name="pass2" value="" class="text"></TD>
</TR>
</TABLE><br>
<input type='submit' value='保存'> <input type='reset' value='重填'> <input type="button" value="返回" Onclick="returnback()">
</form>
</BODY>
</HTML>
<%
}
else
{
String prov_name = request.getParameter("prov_name");
prov_name = (prov_name == null) ? "" : new String(prov_name.getBytes("ISO-8859-1"),"GB2312");
String password = request.getParameter("pass1"); sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_UPDATABLE);
RunSQLRst = sqlStmt.executeUpdate("insert into prov(provname,password) values('"+prov_name+"','"+password+"')"); sqlStmt.close();
sqlCon.close();
response.sendRedirect("useradmin.jsp");
}
sqlCon.close();
//}
//catch(SQLException e)
//{
// out.print("调用数据库的SQL出错");
//}
}
%>问题找到了,是session丢失的问题,由于我在操作完数据库以后用了response.sendRedirect("useradmin.jsp");所以下次访问的时候出现了session丢失,所以第一次可以访问,第2次就提示没有权限
out.println("<meta http-equiv='refresh' content='0;url=error_p.jsp'>");
这样session就不会丢失了但用rs.last();rs.getRow();的结果在两台机器上还是不同
out.println("<meta http-equiv='refresh' content='0;url=error_p.jsp'>");
这样session就不会丢失了但用rs.last();rs.getRow();的结果在两台机器上还是不同
具以为大虾说,jdk1.4的ResultSet.getRow()方法有漏洞哎,可怜呀,怎么大家没碰到的问题都让我碰到了
select RowNum rn, m.* from mem m where ID > 0;int RowCount = rs.getInt("rn");
建议最好写代码时工整一点,养成好的习惯会有帮助的!
建议不要在jsp页面上写任何一些sql语句!
其它建议暂不发表!