当前位置: 技术问答>java相关
JSP里的恶心问题,N天了也没解决,我就不相信没人能解决
来源: 互联网 发布时间:2015-10-05
本文导语: 1.地址栏的中文参数问题,搜索了所有的帖子,用尽了所有的办法也不行 2.request.sendRedirect()问题,用了他以后,浏览器经常缓存页面,致使同样的程序第一次运行根第N(N>1)次运行结果不同。更奇怪的居然一用他就出现...
1.地址栏的中文参数问题,搜索了所有的帖子,用尽了所有的办法也不行
2.request.sendRedirect()问题,用了他以后,浏览器经常缓存页面,致使同样的程序第一次运行根第N(N>1)次运行结果不同。更奇怪的居然一用他就出现“找不到服务器错误”
3.recordset.getRow(),在不同的机器上返回值不同,有些是记录数目,有些是记录数目-1
机器配置:
jdk1.4+tomcat3.2+mysql+linux
2.request.sendRedirect()问题,用了他以后,浏览器经常缓存页面,致使同样的程序第一次运行根第N(N>1)次运行结果不同。更奇怪的居然一用他就出现“找不到服务器错误”
3.recordset.getRow(),在不同的机器上返回值不同,有些是记录数目,有些是记录数目-1
机器配置:
jdk1.4+tomcat3.2+mysql+linux
|
1.地址栏的中文参数问题,搜索了所有的帖子,用尽了所有的办法也不行
你说的是用?带参数的问题吧,我遇到过,是在ns里面,ie里面好象没有这个问题,这个问题没有直接的解决办法,但是可以间接解决,就是用隐藏域,传递参数。
2:应该用response.sendRedirect("/web/end.jsp?flag=payment02");吧,我用的这个没有这个问题啊。
你说的是用?带参数的问题吧,我遇到过,是在ns里面,ie里面好象没有这个问题,这个问题没有直接的解决办法,但是可以间接解决,就是用隐藏域,传递参数。
2:应该用response.sendRedirect("/web/end.jsp?flag=payment02");吧,我用的这个没有这个问题啊。
|
1.
传递参数之前URLEncoder.encode(),取参数值时直接用request就可以了。
2.没有遇到“找不到服务器错误”。你可以清除缓存,下面两种方法:
(1)
使用java提供的方法设置http头信息,在jsp或者servlet中都可以
(2)
使用HTML标记,如下:
3.
没有用过。
传递参数之前URLEncoder.encode(),取参数值时直接用request就可以了。
2.没有遇到“找不到服务器错误”。你可以清除缓存,下面两种方法:
(1)
使用java提供的方法设置http头信息,在jsp或者servlet中都可以
(2)
使用HTML标记,如下:
3.
没有用过。
|
这么多高手都给你解决了,应该没什么问题了。
你的tomcat配置里有没有使用GBK或者GB2312字符集?
再有,RecordSet 好像不是java里的吧。。。。。
你的tomcat配置里有没有使用GBK或者GB2312字符集?
再有,RecordSet 好像不是java里的吧。。。。。
|
补充2:
加个变值在URL后面。解决Cache问题,就好象CSDN的URL后的temp=xxxx.
response.sendRedirect("xxx.jsp?"+SystemcurrentTimeMillis());
加个变值在URL后面。解决Cache问题,就好象CSDN的URL后的temp=xxxx.
response.sendRedirect("xxx.jsp?"+SystemcurrentTimeMillis());
|
Tmsheng说得对,我也是传递参数之前先encode就没问题了。
|
1.在用中文参数前要对中文进行url编码:
pam1=java.net.URLEncoder.encode(pam1);
2.同意 Tmsheng(小唐蔡) 的方法。如果还不好用,则检查所有cache,IE中检查网页选为“自动”;如果你IE是用代理服务器上网的,则暂时将代理服务器选项去掉。
3. 确认你的ResultSet对象不是用标记定义的,要在里面定义。
pam1=java.net.URLEncoder.encode(pam1);
2.同意 Tmsheng(小唐蔡) 的方法。如果还不好用,则检查所有cache,IE中检查网页选为“自动”;如果你IE是用代理服务器上网的,则暂时将代理服务器选项去掉。
3. 确认你的ResultSet对象不是用标记定义的,要在里面定义。
|
你必须用ResultSet.last()先将游标定位到最后一条记录上,然后再getRow(),因为getRow()返回的是the current row number;另外getRow是jdbc2.0规范中的,如果你的数据库JDBC驱动很老的话,你只有靠next()遍历,累加来统计了。
|
javascript 也可以使用 Form 的,我原来也遇到过这样的一个问题,没有办法,最后改用 Form了
|
up
|
1。我用的是:在jsp中直接传递中文过去,如果在bean中,则需要java.net.URLEncoder.encoder(...)进行编码
2. 最好的方法在后面加一个自动变更的变量,如当前时间
3.getRow()是返回当前记录的行号
2. 最好的方法在后面加一个自动变更的变量,如当前时间
3.getRow()是返回当前记录的行号
|
学习气氛好浓呀。我这个小菜鸟真要好好跟你们学了,特别是版主wjmmml
|
1.
a.jsp
在b.jsp中接收:
***********************
2.清楚cache的方法除了使用temp随机参数之外,可以手动删除/tomcat目录下的work目录,重新启动tomcat即可
**************************
3.使用jdbc的话,先recordset.last();然后recordset.getRow();
a.jsp
在b.jsp中接收:
***********************
2.清楚cache的方法除了使用temp随机参数之外,可以手动删除/tomcat目录下的work目录,重新启动tomcat即可
**************************
3.使用jdbc的话,先recordset.last();然后recordset.getRow();
|
rs.getRow();jdk确实提供了这个方法,但是在Oracle数据库里面,这个方法并不可用,其他数据库我没用过,不过,我估计这个方法并不可用。所以我们一般是这样:
select RowNum rn, m.* from mem m where ID > 0;
int RowCount = rs.getInt("rn");
select RowNum rn, m.* from mem m where ID > 0;
int RowCount = rs.getInt("rn");
|
建议最好尽量不用session,因为很难保证他什么时候会不出差错!
建议最好写代码时工整一点,养成好的习惯会有帮助的!
建议不要在jsp页面上写任何一些sql语句!
其它建议。。。暂不发表!
建议最好写代码时工整一点,养成好的习惯会有帮助的!
建议不要在jsp页面上写任何一些sql语句!
其它建议。。。暂不发表!