当前位置: 首页 > news >正文

JAVA 开发人工智能

JAVA开发人工智能机器人

一. 首先来看一下智能机器人跟人聊天的界面吧 !


             浅谈一下界面构造的思路:

                     1.首先是页面的布局,采用html标签构建

<body>
    <!--head start-->
    <h1>JAVA 开发人工智能机器人</h1>
    <!--end head-->

    <!--content start-->
    <div id="box">
    <div class="box-head">
        <img class="h-img" src="images/logo.png" width="80" height="60">
        <span class="h-span">七秒钟的回忆</span>
    </div>
    <div class="box-body">
        <div class="rotWord">
            <span></span>
            <p>helo 好久不见!</p>
        </div>
    </div>
    <div class="box-footer">
        <input type="text" id="input" autocomplete="off">

        <!--autocomplete 取消输入框自动提示-->

        <div id="btn" οnclick="action()">发送</div>
    </div>
    </div>
    <!--end content-->

<!--js start-->
    <script type="text/javascript" src="js/jquery-3.1.0.js"></script>
    <script type="text/javascript">
        var text=$("#input");
        function action(){

             //判断输入文本框是否有值

            if(text.val()==""||text.val==""){

               //智能优化

                text.focus();
                return ;
            }
            $(".box-body").append("<div class='myWord'><span></span><p>"+text.val()+"</p></div>");
            $(".box-body").scrollTop(1000000000000);
            $.ajax({
                type:"post",
                url:"robot",
                data:{"text":text.val()},
                success:function(data){
                    var result = $.parseJSON(data).text;
                    $(".box-body").append("<div class='rotWord'><span></span><p>"+result+"</p></div>");
                    $(".box-body").scrollTop(1000000000000);

                      //语言标签 autoplay自动播放

                    var obj = $('<audio src="http://fanyi.baidu.com/gettts?lan=zh&amp;text='+result+'&amp;spd=5&amp;sorce=web" autoplay></audio>');
                    $(".box-body").append(obj);
                }
            });
            text.val("");
            text.focus();
            
        }

         //键盘回车事件

        $(document).keydown(function(event){
            if(event.keyCode==13){
                action();
            }
        });
    </script>
    <!--end js-->

</body>

             2.构建页面的css样式

  <style type="text/css">
    *{margin:0;padding:0;}
    body,html{width:100%;height:100%;}
    body{background:url(images/bg.jpg) no-repeat;}
    h1{height:80px;background:rgba(0,0,0,.3);text-align:center;color:#fff;line-height:80px;font-weight:100;}
    #box{width:800px;height:600px;background:rgba(255,255,255,.5);margin:50px auto;}
    #box .box-head{height:60px;background:#00ffac;}
    .box-head .h-img{margin:0 20px;float:left;}
    .box-head .h-span{color:#fff;line-height:60px;font-size:24px;float:left;}
    #box .box-body{width:760px;height:420px;padding:20px;overflow:auto;}

   /*overflow:auto;div内文本超出后设置滚动条*/

    /*手动设置滚动条样式*/
    .box-body::-webkit-scrollbar{width:4px;}
    .box-body::-moz-scrollbar{width:4px;}
    .box-body::-webkit-scrollbar-track{background:#808080;border-radius:2em;}
    .box-body::-webkit-scrollbar-thumb{background-color:#03a9f4;border-radius:2em;}
    .box-body::-moz-scroll-track{background:#808080;border-radius:2em;}
    .box-body::-moz-scroll-thumb{background-color:#03a9f4;border-radius:2em;}

   /*自定义滚动条的样式*/
    /*机器人的css*/
    .box-body .rotWord span{width:40px;height:40px;background:url(images/rot.png);float:left;}
    .box-body .rotWord p{float:left;padding:10px;background:#00ffae;margin-left:10px;border-radius:8px;word-break:break-all;max-width:220px;}

/*word-break:break-all;max-width:220px; 文本p自动换行*/
    .rotWord{overflow:hidden;}/*清楚浮动*/
    /*myself的css*/
    .box-body .myWord span{width:40px;height:40px;background:url(images/my.png);float:right;}
    .box-body .myWord p{float:right;padding:10px;background:#00ff00;margin-right:10px;border-radius:8px;word-break:break-all;max-width:220px;}/*word-break:break-all;max-width:220px; 文本p自动换行*/
    .myWord{overflow:hidden;}/*清楚浮动*/
    
    #box .box-footer{width:760px;height:60px;padding:0 20px;}
    .box-footer #input{width:620px;height:60px;background:rgba(0,0,0,.1);border-radius:8px;text-indent:10px;color:#fff;float:left;font-size:18px;padding-left:20px;outline:none;overflow:hidden;border:none;}
    .box-footer #btn{width:100px;height:60px;background:blue;border-radius:8px;user-select:none;text-align:center;text-align:center;line-height:60px;float:right;font-size:18px;cursor:pointer;}
  </style>

此上就是页面的代码咯!

接下来就是比较厉害的后台jsp代码

package com.xt.robot.action;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.net.URL;
import java.net.URLConnection;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 *
* <p>Title:Action </p>
* <p>Description:聊天信息处理类 </p>
* <p>Company: </p>
* @author 小桃小涛
* @date 2017年8月19日下午7:24:56
 */
@WebServlet("/robot")
public class Action extends HttpServlet{

    //extends 继承HttpServlet类 重写doGet()和doPost()方法

    //key 机器人用的是图灵机器人的api
    public static final String APIKEY="";
    //url
    public static final String URL="http://www.tuling123.com/openapi/api?key=";
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(req, resp);//在doGet()方法里调用doPost()方法
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置请求以及响应编码
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");

       //获取文本框输入的值

        String text = req.getParameter("text");
        String result = getResult(text);
        resp.getWriter().println(result);
    }
    public static String getResult(String text){
        String INFO = "";

        //用来存数据

        StringBuilder sb = new StringBuilder();

        try {

            //解码器

            INFO = URLEncoder.encode(text, "UTF-8");
            String getUrl = URL+APIKEY+"&info="+INFO;//字符串拼接成url地址
            URL queryUrl = new URL(getUrl);
            URLConnection conn = queryUrl.openConnection();
            BufferedReader br =new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
            String temp="";
            while ((temp=br.readLine())!=null) {
                sb.append(temp);
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }  catch (IOException e) {
            e.printStackTrace();
        }
        return sb.toString();
    }
}

以上就是智能机器人的全部代码咯!



相关文章:

  • 全国计算机等级考试二级Java笔试基础答案
  • Fileupload组件parseRequest方法问题
  • 利用Canvas+js编写贪吃蛇游戏
  • javascript 正则表达式使用说明详细教程
  • 常见的几种RuntimeException
  • h5+css3+js实现七夕言情
  • 网络爬虫之网页抓取
  • java开发多国语言互译
  • Java打印圣诞树
  • Java输入年月,打印该月的日历,已知2000年1月1号是星期六
  • Java查找一维数组中出现次数最多的值及其出现次数
  • Java对一维数组排序:冒泡,选择,插入,比较效率
  • Java生成图片验证码
  • Java 通过JDBC进行数据操作(增删改查)
  • JaveEE之JavaBean
  • 【剑指offer】让抽象问题具体化
  • 4个实用的微服务测试策略
  • Apache Pulsar 2.1 重磅发布
  • C++类中的特殊成员函数
  • Debian下无root权限使用Python访问Oracle
  • HTTP请求重发
  • JavaScript服务器推送技术之 WebSocket
  • KMP算法及优化
  • Mac转Windows的拯救指南
  • Python连接Oracle
  • React-flux杂记
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Twitter赢在开放,三年创造奇迹
  • Webpack 4x 之路 ( 四 )
  • 构造函数(constructor)与原型链(prototype)关系
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 聚簇索引和非聚簇索引
  • 聚类分析——Kmeans
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 微信开源mars源码分析1—上层samples分析
  • 延迟脚本的方式
  • 用mpvue开发微信小程序
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • #WEB前端(HTML属性)
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $refs 、$nextTic、动态组件、name的使用
  • (2022 CVPR) Unbiased Teacher v2
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (剑指Offer)面试题34:丑数
  • (七)c52学习之旅-中断
  • (四)Android布局类型(线性布局LinearLayout)
  • (图)IntelliTrace Tools 跟踪云端程序
  • (原創) 物件導向與老子思想 (OO)
  • (转)视频码率,帧率和分辨率的联系与区别