前台主要AJAX代码:调用后台的翻译Servlet,实现用户交互
//通过AJAX调用后台翻译程序 function doExecTrans(){ var txt = $("#InputText").val(); if (txt == ""){ alert("请输入要翻译的文本!"); return; } $("#ProgressDiv").show(); $.ajax({ type: "GET", url: "TransServlet", dataType:"json", data: {"txt":txt}, success: function(data){ $("#ProgressDiv").hide(); console.log(data); if (data.error){ alert(data.error); }else{ $("#OutputText").text(data.text); } }, error: function(data){ console.log(data);ssss alert( "Error Msg: " + data ); $("#ProgressDiv").hide(); } }); }后台主要代码:TransServlet,与翻译服务Web Service交互package wasdev.sample.servlet; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.Authenticator; import java.net.URL; import javax.net.ssl.HttpsURLConnection; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * powered by: testcs_dn * Blog: * Create time: 2015/12/12 */ /** * Servlet implementation class TransServlet */ @WebServlet("/TransServlet") public class TransServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * 处理前台AJAX的GET请求 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); //获取AJAX提交的需要翻译的文本 String txt = request.getParameter("txt"); if (txt == null || txt.length() == 0) { response.getWriter().print("{\"error\":\"请输入要翻译的文本!\"}"); return; } //翻译服务的URL String servicesUrl = "https://gateway.watsonplatform.net/language-translation/api/v2/translate?source=en&target=es&text=" + txt; String errMsg = null; String result = ""; BufferedReader in = null; try { URL realUrl = new URL(servicesUrl); //认证信息对象,用于包含访问翻译服务的用户名和密码 Authenticator auth = new MyAuthenticator("c9819718-4660-441c-9df7-07398950ea44", "qUvrJPSdPgOx"); Authenticator.setDefault(auth); // 打开和URL之间的连接 HttpsURLConnection connection = (HttpsURLConnection)realUrl.openConnection(); connection.setDoInput(true); connection.setDoOutput(true);//允许连接提交信息 connection.setRequestMethod("GET"); // 建立实际的连接 connection.connect(); // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { errMsg = e.getMessage(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { errMsg = e2.getMessage(); } } if (errMsg != null){ response.getWriter().print("{\"error\":\"" + errMsg + "\"}"); }else{ response.getWriter().print("{\"text\":\"" + result + "\"}"); } } } 认证信息对象:MyAuthenticator.java
package wasdev.sample.servlet; import java.net.Authenticator; import java.net.PasswordAuthentication; /** * powered by: testcs_dn * Blog: * Create time: 2015/12/12 * * 认证信息对象 */ public class MyAuthenticator extends Authenticator{ String _userName=null; char[] _password=null; public MyAuthenticator(){ } public MyAuthenticator(String username, String password) { this._userName = username; this._password = password.toCharArray(); } protected PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(_userName, _password); } }
如果您有更好的应用或想法,试试通过IBM的Bluemix云平台共享出来吧。
步骤 2. 准备开发环境
Eclipes:我使用的是
顶 1 踩 0
我的同类文章
猜你在找
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
个人资料
testcs_dn