百度翻譯api


項目遇到個需求,需要使用在線翻譯功能

果斷,選擇百度翻譯

地址

注冊開發者賬號,完成后

一系列申請后【具體忘了,,,這兩天一直在忙別的。。。。】

 

 可以在開發者頁面看到分配到的 APP ID和密鑰

 

 

 接下來,下載示例JAVA文件

 

 下載完成后,進入"java"目錄

 進入該目錄下的 src 目錄

進入 com 根目錄下的三個java文件

在相應的項目中創建包,復制三個java文件進入

 

test.java

 

這里的 "auto" 和 "zh",是指,自動檢測需要翻譯的文字所用的語言,翻譯成中文

 

 

測試輸出一下

{"from":"en","to":"zh","trans_result":[{"src":"Programming Thought Of Java","dst":"Java\u7f16\u7a0b\u601d\u60f3"}]}
Java編程思想

 

 

 

最后,只需要在JSP網頁中調用這個test類的fanyi()方法,傳入要翻譯的英文即可

在上方圖片所在網頁中,點擊“提取”按鈕后,觸發以下的javaScript程序

<script>
function getfanyi() {
  //獲取輸入框的文字
var xx = document.getElementById("in").value; if(xx == ""){
     //如果沒有輸入文字,就在輸入框下方的結果顯示框發出提示 document.getElementById(
"fyre").value = "請先輸入..."; }else{      //通過AJAX向服務器 fanyi.jsp 發送一個同步請求,傳入提取到的要翻譯的文字
     //為啥用 false ,下面解釋
var xmlhttp = new XMLHttpRequest(); xmlhttp.open("POST","/xxx/fanyi.jsp?query="+xx,false); xmlhttp.send(null); //ajax 請求完畢,開始讀取cookie var re = getCookie("fanyi"); document.getElementById("fyre").value = re; } }; function getCookie(cname){ var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i<ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(name)==0) { return c.substring(name.length,c.length); } } return ""; }; </script>

 

 

 

fanyi.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="fanyi.*" %>


<%
request.setCharacterEncoding("UTF-8");
String q = request.getParameter("query"); 

test ts = new test();   //實例化test類,調用其 fanyi() 方法,返回 字符串形式的結果
String xx = ts.fanyi(q);

response.setContentType("text/html;charset=UTF-8");   //設置服務器的響應,對request請求者返回翻譯的結果到其瀏覽器的本地cookie中
Cookie cc = new Cookie("fanyi",xx);
cc.setMaxAge(10);
response.addCookie(cc);
%>   

 

通過AJAX向服務器 fanyi.jsp 發送一個同步請求時,用到的是 false。。原因是,只有等到 fanyi.jsp 獲取到結果並將其寫入請求者的本地cookie中,才可以通過javaScript 讀取到存在的、正確的、有結果的cookie,獲得翻譯的結果

否則,輸入xxx后,第一次點擊翻譯按鈕是沒有結果的【因為javaScript是單線程,不會等到 fanyi.jsp 執行完畢就會去執行下一條程序,所以本地cookie中是沒有翻譯結果的】,再次點擊才會出現


 

 

當然,完全可以寫成servlet。。。。就是有點懶的配置。。。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM