如何正确将html数据(带标签、样式等)传入后台

最近在开发的时候,我想要将前台html标签中的一些内容直接传入后台,存入数据库,便于后期数据回显时样式完整,但是在html标签等数据直接通过ajax传给后台的时候,会出现部分样式丢失、参数包含特殊字符可能会造成间断等等一系列问题。最后问题解决了,步骤记录下:

  1. 通过js获取要传入后台的html内容字符串,
  2. 将字符串通过encodeURIComponent()把URI字符串采用URF-8编码格式转化成escape格式的字符串。
  3. 将编码后的数据传入后台 

经过上述3步,传入后台的数据已经是正确的数据了。

如果无需在java里对传入的字符串操作,直接存入数据库,则不需要做任何处理,直接存储。

如果需要在java里对传入的字符串进行操作,可以通过下面的方式进行解码。

 java.net.URLDecoder.decode(works, "UTF-8");

在数据回显的时候在js里通过decodeURIComponent()来解码,进行正确的数据展示。

 

备忘:

encodeURI():    把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $ & ( ) = : / ; ? + ',反向编码函数:decodeURI()

encodeURI()相比,这个encodeURIComponent()函数会将更多的字符进行编码,比如"/"等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个来进行编码。否则“/”字符被编码后将URL显示错误。不会被此方法编码的字符:! * ( )

场景:encodeURI()用于整个url跳转、 encodeURIComponent()用于参数的传递,参数包含特殊字符可能会造成间断

JSP 数据传入后台有多种方法,以下是其两种常见的方法: 1. 通过表单提交: 在 JSP 页面创建一个表单,表单包含要传递给后台的参数,例如: ``` <form method="post" action="后台处理程序的URL"> <input type="text" name="param1" value="" /> <input type="text" name="param2" value="" /> <input type="submit" value="提交" /> </form> ``` 其`method`属性指定提交方式为 POST,`action`属性指定后台处理程序的 URL,`name`属性指定参数名称,`value`属性指定参数值。当用户点击提交按钮时,表单数据将被提交到指定的后台处理程序。 在后台处理程序,可以通过 `request.getParameter()` 方法获取表单参数的值,例如: ``` String param1 = request.getParameter("param1"); String param2 = request.getParameter("param2"); ``` 2. 通过 URL 传参: 在 JSP 页面,将要传递给后台的参数拼接在 URL ,例如: ``` <a href="后台处理程序的URL?param1=value1&param2=value2">提交</a> ``` 其`href`属性指定链接的目标 URL,参数和参数值用 `param=value` 的形式拼接在 URL 末尾,多个参数之间用 `&` 分隔。当用户点击链接时,浏览器将会向后台处理程序发送一个 GET 请求,参数将会包含在请求的 URL 。 在后台处理程序,可以通过 `request.getParameter()` 方法获取 URL 参数的值,例如: ``` String param1 = request.getParameter("param1"); String param2 = request.getParameter("param2"); ``` 需要注意的是,如果参数值包含特殊字符(如空格、+ 等),需要进行 URL 编码后再传递,否则可能会导致参数值被解析错误。在 JSP 可以使用 `URLEncoder.encode()` 方法进行 URL 编码,例如: ``` String param1 = URLEncoder.encode("value with spaces", "UTF-8"); String param2 = URLEncoder.encode("value+with+plus", "UTF-8"); String url = "后台处理程序的URL?param1=" + param1 + "&param2=" + param2; ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值