jsp页面中jsp提交表单到servlet数据到后台是出现这种情况,解决办法是??

当前访客身份:游客 [
当前位置:
jsp页面中如果有input域,提交数据到后台并保存到数据库中,如果数据中有&&&,&& &,&&input ...&& 这样html类似的字符串时,要把数据表现在页面上就会出现与html发生歧义而出现界面混乱。
如果使用了框架比如struts,这种处理很简单,用formbean和&html:text property=&name&&就很好的解决,但是没有使用任何的框架,我每次都是这样处理的&StringEscapeUtils.escapeHtml(data),这是apache-commons里的功能。每次都这样写我就觉得烦了,不知道大家都是怎么处理的,oschina也没有使用框架只是使用了模板,不知道@红薯是怎么处理的?
谢谢大家!
共有7个答案
<span class="a_vote_num" id="a_vote_num_
看来大家觉得这个问题比较简单
<span class="a_vote_num" id="a_vote_num_
使用转义符。
<span class="a_vote_num" id="a_vote_num_
把很多简单的问题做好就不简单了
<span class="a_vote_num" id="a_vote_num_
<span class="a_vote_num" id="a_vote_num_
引用来自“java9”的答案转义我用的StringEscapeUtils.escapeHtml() 本身就是转义。我就是想知道大家是怎么处理的,也许大家用了更好的方法
<span class="a_vote_num" id="a_vote_num_
写个自定义的EL表达式或者自定义标签,可以在JSP页面转义。将字符串里的&&&转义为&&&,&&&转义为&
&&,就OK了,不用引用其他jar包。
--- 共有 1 条评论 ---
记得先转义"&",再转义"&"或者"&"
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
写个过滤器,跟编码方式一起,做转译。。
更多开发者职位上
有什么技术问题吗?
yuzhoul...的其它问题
类似的话题JSP提交Form表单后台处理完毕后,还想再返回原来的表单页面,并且给提示后台处理信息(alert形式也可以)?_百度知道
JSP提交Form表单后台处理完毕后,还想再返回原来的表单页面,并且给提示后台处理信息(alert形式也可以)?
或有好的方法的情多多指教, 这样的功能用什么方法实现最好呢?? 有做过类似功能的不用ajax提交form
提问者采纳
接收后台返回的处理信息,就是你后台处理完了用request放进去,这样应该是你想要的效果吧;再写一个onload方法方法中检测那个隐藏input框的值在页面先写一个隐藏的input框,如果没有值,不做任何操作,把值alert出来,如果有值
提问者评价
其他类似问题
为您推荐:
其他3条回答
直接把form存上,提交后再转发到form的页面(各项input赋不赋值看需要)不就可以了。
重新填充form呀, 根据后台返回值,前台执行一段js代码,显示后台信息。哪里遇到问题了?
action设置成地址与原页面地址相同,页面中输出返回信息,信息不为空就alert,如此便行了
ale的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁jquery序列化form表单使用ajax提交后处理返回的json数据
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了jquery序列化form表单,使用ajax提交后处理返回的json数据的示例,需要的朋友可以参考下
1、返回json字符串:
代码如下:/** 将一个字符串输出到浏览器 */&&& protected void writeJson(String json) {&&&&&&& PrintWriter pw =&&&&&&& try {&&&&&&&&&&& servletResponse.setContentType("text/charset=UTF-8");&&&&&&&&&&& pw = servletResponse.getWriter();&&&&&&&&&&& pw.write(json);&&&&&&&&&&& pw.flush();&&&&&&&&&&& pw.close();&&&&&&& } catch (IOException e) {&&&&&&&&&&& e.printStackTrace();&&&&&&& } finally {&&&&&&&&&&& if (pw != null) {&&&&&&&&&&&&&&& pw.close();&&&&&&&&&&& }&&&&&&& }&&& }
2、通过eval将返回的json字符串转换成json对象: 代码如下:$.ajax({&&&&&&& data:{&&&&&&&&&&& "shipmmsi":shipmmsi,&&&&&&&&&&& "shipname":shipname&&&&&&& },&&&&&&& url : "shipbk/findShipMMSIAndName.do",&&&&&&& async : true,&&&&&&& type : "POST",&&&&&&& success : function(data) {&&&&&&&&&&& var ships = eval('(' + data + ')');&&&&&&&&&&& $("#bindShipmmsiDiv table tbody").html("");&&&&&&&&&&& if(ships!=null){&&&&&&&&&&&&&&& if(ships.length){&&&&&&&&&&&&&&&&&&& $("#bindShipmmsiDiv").show();&&&&&&&&&&&&&&&&&&& var trs="";&&&&&&&&&&&&&&&&&&& for(var i=0;i&ships.i++){&&&&&&&&&&&&&&&&&&&&&&& trs+="&tr&&td&"+ships[i].mmsi+"&/td&&td&"+ships[i].vesselName+"&/td&&/tr&";&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&& $("#bindShipmmsiDiv table tbody").append(trs);&&&&&&&&&&&&&&&&&&& //给tr注册点击事件&&&&&&&&&&&&&&&&&&& $("#bindShipmmsiDiv table tbody tr").click(function(){&&&&&&&&&&&&&&&&&&&&&&& $(this).addClass('select_tr').siblings().removeClass('select_tr');&&&&&&&&&&&&&&&&&&& });&&&&&&&&&&&&&&&&&&& $("#bindShipmmsiDiv table tbody tr").dblclick(function(){&&&&&&&&&&&&&&&&&&&&&&& fillShipMMSIAndName(this);&&&&&&&&&&&&&&&&&&&&&&& $("#bindShipmmsiDiv").hide();&&&&&&&&&&&&&&&&&&& });&&&&&&&&&&&&&&& }&&&&&&&&&&& }&&&&&&& }&&& });
3、通过jquery的 $("form").serialize() 可以将form表单的数据序列化后提交到后台,因此通过ajax可以操作form表单并处理返回的数据。 代码如下:$.ajax({  url : 'deliveryWarrant/update.do',  data : $('#myform').serialize(),  type : "POST",  success : function(data) {    var res = eval('(' + data + ')');    if (res && res.success == true) {&&&       alert(res.message);    location.href="/godownWarrant/findToDeliveryWarrant.do?godownWarrant.code="+$("#myform input[name=godownWarrant\\.code]").val();    } else {      alert(res.message);    }  }});
4、防止乱码的处理方法:
jsp页面:charset:utf-8servlet:utf-8filter:utf-8在PrintWriter out = response.getWriter()之前加一句response.setCharacterEncoding("UTF-8")就可以解决乱码的问题。但是得记住一定要放在声明PrintWwrite之前。
总之,前台界面,java文件,数据库和数据库的连接都有采用统一编码,才不会出现乱码等情况
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 jsp防止表单重复提交 的文章

 

随机推荐