本人第一次写博客,而且是一个菜鸟,如果有什么不完善的地方请前辈们多多指教。

2017-06-01 21:56:05

因为公司功能的需求,需要写一个溯源信息的接口,下面的代码是前台的一个用户评论的界面。所谓溯源就是追溯源头,有点类似于淘宝的物流。通过溯源信息可以查询到商品的产地、质量、商标等等一系列跟产品有关的信息。

productid:溯源产品的对应的编号,由前一个页面自动传递过来,通过这个属性将客户评论的内容与溯源产品相绑定。

username:评论者的名字。

telephone:评论者的联系方式。

rating:评论的等级,就是我们订餐时给商家评论是几颗星一样。星星的标志由前台来处理,这里只是获取从前台传递过来的值。

commentcontent:评论的内容,要求不能显示脏话、骂人话等不雅的词语,如果在评论的内容中存在这样的语言,代码将自动将其过滤掉替换为"*",并存入数据库中。

下面是具体的实现接口。

  1 public void addCommentMessage(HttpServletRequest request,
  2             HttpServletResponse response) throws UnsupportedEncodingException {
  3         JSONObject jsonObject = new JSONObject();
  4         // 敏感词汇集合
  5         String[] discuss = { "孙子", "草", "你妈", "儿子", "爸爸", "傻逼", "sb", "尼玛",
  6                 "你大爷", "混蛋", "滚", "靠", "完犊子" };
  7         String productid = request.getParamter("productid");
  8
  9     // 修改乱码格式;这个主要是针对中文汉字来说的,这样处理在前台输入的中文汉字将不会以乱码形式存放在数据库中了。下面的代码同样的道理
 10         productid = new String(productid.getBytes("ISO-8859-1"), "utf-8");
 11
 12     //从前台获取客户评论填写的名字
 13         String username = request.getParameter("username");
 14
 15    //修改乱码格式
 16         username = new String(username.getBytes("ISO-8859-1"), "utf-8");
 17
 18     //从前台获取客户评论填写的联系方式
 19         String telephone = request.getParameter("telephone");
 20
 21     //修改乱码格式
 22         telephone = new String(telephone.getBytes("ISO-8859-1"), "utf-8");
 23
 24     //从前台获取客户评论填写的评价等级
 25         String rating = request.getParameter("rating");
 26
 27     //修改乱码格式
 28         rating = new String(rating.getBytes("ISO-8859-1"), "utf-8");
 29
 30      //从前台获取客户评论填写的评论内容
 31         String commentcontent = request.getParameter("commentcontent");
 32
 33     //修改乱码格式
 34         commentcontent = new String(commentcontent.getBytes("ISO-8859-1"),"utf-8");
 35         request.setCharacterEncoding("utf-8");
 36         try {
 37
 38     //CommentEntity为评论的实体类,在这里直接引用的。向数据库中射值得set方法就在其中
 39             CommentEntity commentEntity = new CommentEntity();
 40
 41     //判断传过来的productid是否为空字符串或null或"null"
 42             if (!productid.equals("") && !productid.equals(null)
 43                     && !productid.equals("null")) {
 44
 45       //通过commentEntity实体类的set方法将信息存入到数据库中
 46                 commentEntity.setProductid(productid);
 47             }
 48             if (!username.equals("") && !username.equals(null)
 49                     && !username.equals("null")) {
 50                 commentEntity.setUsername(username);
 51             }
 52             if (!telephone.equals("") && !telephone.equals(null)
 53                     && !telephone.equals("null")) {
 54                 commentEntity.setTelephone(Integer.valueOf(telephone));
 55             }
 56             if (!rating.equals("") && !rating.equals(null)
 57                     && !rating.equals("null")) {
 58                 commentEntity.setRating(rating);
 59             }
 60             if (!commentcontent.equals("") && !commentcontent.equals(null)
 61                     && !commentcontent.equals("null")) {
 62                 // 判断评论信息是否包含敏感词汇,如果包含则将敏感部分以*的形式录入数据库
 63                 for (String s : discuss) {
 64                     if (commentcontent.contains(s)){
 65                         String str = commentcontent.replaceAll(s, "***");
 66                         commentcontent=str;
 67                         commentEntity.setCommentcontent(commentcontent);
 68                     }else if (!commentcontent.contains(s)) {
 69                         commentEntity.setCommentcontent(commentcontent);
 70                     }
 71                 }
 72
 73             }
 74             Serializable save = this.commentService.save(commentEntity);
 75             if (!save.toString().equals("")) {
 76                 // 成功,jsonObject 赋值
 77                 jsonObject.put("code", "1");
 78                 jsonObject.put("message", "添加评论成功");
 79                 jsonObject.put("data", "");
 80
 81             } else {
 82                 // 失败,为jsonObject 赋值
 83                 jsonObject.put("code", "0");
 84                 jsonObject.put("message", "添加评论失败");
 85                 jsonObject.put("data", "");
 86             }
 87         } catch (NumberFormatException e) {
 88             // TODO Auto-generated catch block
 89             e.printStackTrace();
 90         }
 91         try {
 92             // 把json传到页面callback + "(" + json + ")"
 93             String callback = request.getParameter("callback");
 94             String jsonp = callback + "(" + jsonObject.toString() + ")";
 95             // 输出jsonObject
 96             PrintWriter writer = response.getWriter();
 97             response.setCharacterEncoding("utf-8");
 98             response.setContentType("text/html;charset=utf-8");
 99             writer.println(jsonp);
100         } catch (Exception e) {
101             // TODO: handle exception
102         }
103     }

转载于:https://www.cnblogs.com/1925yiyi/p/6930734.html

后台接口向数据库录入汉字时乱码以及自动过滤文字经验总结相关推荐

  1. 金蝶软件界面乱码及输入汉字时乱码的解决方案

    window10下金蝶软件界面乱码及输入汉字时乱码的解决方案 软件界面文字乱码处理方法 输入汉字是出现乱码的解决方案 注意:先自行备份数据,以免数据掉失 软件界面文字乱码处理方法 金蝶软件界面出现乱码 ...

  2. ajax调取json接口,通过 Ajax 调取后台接口将返回的 json 数据绑定在页面上

    第一步: 编写基础的 html 框架内容,并引入 jquery: 测试Ajax 第二步: 在 " " 中间插入要点击的按钮和用来显示数据的 标签,并编写对应的 function: ...

  3. java 保存mysql 乱码_java mysql 汉字存入时乱码

    java mysql 汉字存入时乱码 从网络摘抄到的解决方法-- 解决方法二: 连接mysql时(无论在从mysql读还是取数据的情况),指定使用的编码方式为utf-8,具体代码如下 //装载mysq ...

  4. eclipse读取mysql数据乱码_eclipse从数据库获取数据时控制台乱码问题

    最近在学习HQL的时候,想从数据库获取数据时eclipse控制台乱码,一开始以为是控制台设置的编码有问题,然后就修改了控制台的编码,run->run Configurations->com ...

  5. (配置消息转换器)解决后台返回json数据到前台时页面时中文显示乱码问题

    (配置消息转换器)解决后台返回json数据到前台时页面时中文显示乱码问题 SpringMVC.xml中加 <!-- 配置消息转换器(解决中文乱码问题)--><mvc:annotati ...

  6. 解决通过调用后台接口实现Excel导出功能,后台返回数据乱码的问题

    解决通过调用后台接口实现Excel导出功能,后台返回数据乱码的问题 问题如下: 这导致我虽然成功导出文件,但文件受损打不开 解决方案如下: 在调用接口加入: // 导出 export function ...

  7. mybatis向mysql数据库插入数据时,中文乱码显示为?解决方法

    mybatis向mysql数据库插入数据时,中文乱码显示为?解决方法 1.先查看库.表.表字符字段的编码格式.MySQL默认的库和表的字符编码都是latin1,而我们一般需要使用 utf8 //先查看 ...

  8. 接口返回html页面乱码,解决nodejs中使用http请求返回值为html时乱码的问题

    今天用nodejs进行http请求时返回的数据是一个html文件,然后我还是按照以前解析json数据的方法.果不其然报错了:SyntaxError: Unexpected token  in JSON ...

  9. luffcc项目-08-课程详情页、CKEditor富文本编辑器、课程详情页面、后台接口

    课程详情页 一.CKEditor富文本编辑器 富文本即具备丰富样式格式的文本.在运营后台,运营人员需要录入课程的相关描述,可以是包含了HTML语法格式的字符串.为了快速简单的让用户能够在页面中编辑带h ...

最新文章

  1. 基于K-Means聚类算法的主颜色提取
  2. “为啥Kaggle奖金那么少?”一场25000美元的比赛,却因“抠门”引发激烈讨论...
  3. python turtle库画图案-Python:turtle库的使用及图形绘制
  4. android布局如何空行,借用你的思路和框架,修复了空行、偶尔setText无效、padding设置的bug...
  5. VTK:Snippets之SaveSceneToFile
  6. 英伟达显卡bios修改工具_终于可以吃鸡了!英伟达入门级图灵显卡1650S开卖,性能提升25%...
  7. antd 表格树如何展开_ant-design-pro protable 树形表格默认展开
  8. cookies,sessionStorage 和 localStorage 的区别?
  9. 用gdb来学习c语言(linux环境下)
  10. Fastdfs(1)安装之Tracker
  11. 开源中国 OsChina Android 客户端源码分析(12)清理缓存
  12. 算法导论答案网Solutions to Introduction to Algorithms Third Edition_开源免费完整
  13. 怎样png转jpg还可以保持原有大小?
  14. 形式化验证(Formal verification)如何确保完美的智能合同?
  15. 支付宝支付对账单java_java下载支付宝对账单,实现与支付宝实收对账和日清日结对账...
  16. 为什么 React17-rc.2 要发布新的 jsx 转换逻辑
  17. Unity3D中隐藏与显示物体的方法
  18. Reasoning methods include
  19. mysql实现停车场管理系统完整代码实现_JAVA实现简单停车场系统代码
  20. java注解约束参数为固定值_java自定义注解的实现及属性设置

热门文章

  1. ORACLE解决登陆em状态暂挂方法
  2. BigPipe:高性能的“流水线技术”网页
  3. Libevent调用
  4. 【Dlib】在GPU环境中运行dlib中的例子dnn_mmod_ex报错...dlib::cuda_error...Error while calling cudaMalloc...
  5. 谈点正经的:Papi酱能火,如果你现在学她却未必能火起来
  6. linux nor flash 读写,9.2 NorFLASH读写实验——M25PExx
  7. qcustomplot 游标吸附_qcustomplot游标测量功能--Apple的学习笔记
  8. mysql 行号_PQ获取TABLE的单一值作为条件查询MySQL返回数据
  9. 自定义html托管,10分钟搞定“傻瓜式”的静态网站搭建托管之旅
  10. Java项目:日历万年历(java+swing)