一些JSP和JavaScript的技巧难点总结(一)

1.如何利用JavaScript或Jsp来控制表单的提交:
                                                 <script>
                                                    function exit(){
                                                    var x=confirm("您确定要退出登陆么");
                                                    if(x){
                                                      return true;                                                        
                                                    }else{
                                                    return false;
                                                    }
                                                    }
                                                </script>
                                                <%String exit=response.encodeRedirectURL("Exit.jsp");%>
                                                <label>
                                                <form id="form3" name="form3" method="post" action="<%=exit%>" οnsubmit="return exit()">        //笔者认为此处也可用JSP控制,关键看函数返回值                                        
                                                    <div align="center">
                                                        <input type="image" name="imageField2" src="images/exit.gif"/>
                                                    </div>
                                              </form>
2.如何控制一个页面的框架显示.
//target的值为框架ID即可.
<a target="myiframe" href="<%=register%>"><img src="images/regist.gif" alt="注册" width="40" height="18" border="0" /></a>

3.JSP中的乱码问题

Jsp是一个很热门的话题,但让大多数人都头痛的是JSP页面中的乱码问题,笔者身有体会;曾为了解决中文乱码问题郁闷了好几天,试了很多方法都不行。最后终于在网络的帮助下解决。为了方便其他人特把解决俺问题的文章转过来,要感谢郭鹏。
 首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一条语句:
<% page contentType="text/html; charset=gb2312" %>这条语句决定了此页面使用GB2312编码形式,而在数据库中一般用的是iso-8859-1字符集存储数据. 而Java程序在处理字符时默认采用统一的ISO-8859-1字符集(体现Java国际化思想),所以在添加数据时,默认的字符集编码是iso-8859-1,而页面采用的是GB2312,所以就出现乱码问题。为解决此问题应在存储的时候把GB2312换转成iso-8859-1。有此时候在读出时也会出现乱码,那么只需反过来就可以了,把iso-8859-1转换成GB2312。
具体实例归纳了以下几点,也许会对大家有一些帮助。
(1)、 在建立JSP页面时应该注意在jsp页面的头部加入一下代码
<% page contentType="text/html; charset=gb2312" %>
此方法是解决JSP页面显示时的乱码。
(2)、 有时还需在HTML代码中的<head></head>中加入这句
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
(3)、 在bean中用的是iso-8859-1编码,在jsp中一般用GB2312编码,处理此类乱码问题如下
String str=new String(strName.getBytes(“iso-8859-1”),”GB2312”);
具体用到此方法的地方为,当提交表单到bean(bean的功能是存储数据到数据库)表单提交后,数据库中存入的数据确变成了????,因此在调用bean之前应对编码进行转换,方法:String str=new String(request.getParameter().getBytes(“iso-8859-1”),”GB2312”);
这样,存入数据库的数据库的数据就可见了。
(4)、 对于页面间的参数传递也可以用这个方法来处理乱码问题:
   public String getStr(String str)
   {
       try
    {
       String temp_p=str;
    byte[] temp_t=temp_p.getBytes("ISO8859-1");
    String temp=new String(temp_t);
    return temp;
    }
    catch(Exception e)
    {}
    return "null";
 }
(5)、 在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码
<form enctype="multipart/form-data"></form>
(6)、 提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。

(7)在重定向时遇到的乱麻问题,解决方法:

 String result=java.net.URLEncoder.encode("中国","UTF-8");               
 response.sendRedirect(register+"?result="+result); 

String str=java.net.URLDecoder.decode(request.getParameter("result"),"UTF-8");

<%=str%>

问题即可解决,如果不行,试着改变编码,UTF-8换成其他的试试,笔者只用UTF-8就搞定了.

上面就是我所遇到的编码问题的解决,这个问题困扰了我整整8个小时啊!!

4关于记录记的

Java的记录集读取一定要注意这一点:,比如数据表的字段的顺序为为:1,2,3,4,5

那么你在读记录的时候一定要按顺序读取,可以按2,5的顺序读出记录来,但决不能试5,2的顺序读出记录来,呵呵,这个

5jsp返回上一个页面的几种方法:

history.go使用了缓存,要对浏览器进行设置.但如果有特殊要求则不是好的方俺.

可以使用下面的方法:
String ref = request.getHeader("REFERER");或
request.getRequestURL();
不管是从哪个页面来的,截取递交信息,然后再转发到这个页面就行了.

而转发时可以加一个不相关的参数比如:

ref+"?xxx=随机数",这样每次转发URL都不一样.客户端就不会对URL缓存了.

另外也可以直接调用request.getRequestDispatcher(request.getHeader("REFERER")).forward(request,response);算是页面请求分离器试试

6.javaScript控制表单相关操作:

document.forms.item("form1").submit();可以控制表单的提交.

doucument.form1.action="url"可以动态的设置向拿一个页面提交信息.

此文档会不断更新.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值