JavaWeb实验 AJAX技术基本应用

实验目的

  1. 认识Ajax的作用;
  2. 能在JSP中应用Ajax与Servlet进行交互。

实验内容

创建一个Java Web应用,综合利用JSP、Ajax和Servlet技术实现中英文互译功能:

  1. 在输入框输入英文单词时,在后面即时显示翻译为中文的结果;
  2. 在输入框输入中文词汇时,在后面即时显示翻译为英文的结果。

界面如图(可以适当改进,添加其他功能):


 

Ajax.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>小黄翻译</title>
</head>
<script type = "text/javascript">function adjaxReq(){var word = document.getElementById("word");var wordx = word.value;var req = new XMLHttpRequest();req.open("GET","./translate.html?wordx="+wordx,true);req.send();req.onreadystatechange = function(){if (req.status == 200 && req.readyState == 4){console.log(req.responseText);var divx = document.getElementById("showtips");divx.innerHTML = req.responseText;}};} 
</script>
<body><input id = word onkeyup = "adjaxReq()"/><br><br>翻译:<div id = showtips></div>
</body>
</html>
Trans.java
package gdpu.com;import java.sql.*;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class Trans*/
@WebServlet("/Trans")
public class Trans extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");String codex = request.getParameter("wordx");try {Class.forName("com.mysql.jdbc.Driver"); // 驱动程序名String url = "jdbc:mysql://localhost:3306/实验"; // 数据库名String username = "root"; // 数据库用户名String password = "0403"; // 数据库用户密码Connection conn = DriverManager.getConnection(url, username, password); // 连接状态if (conn != null) {Statement stmt = null;ResultSet rs = null;stmt = conn.createStatement();String sql = "SELECT * FROM translate where English ='" + codex + "' or Chinese='" + codex + "'";// 查询语句rs = stmt.executeQuery(sql);System.out.print(sql);while (rs.next()) {response.getWriter().print(rs.getString(1) + ";" + rs.getString(2));conn.close();return;}response.getWriter().print("未查到该单词翻译。");} else {System.out.print("连接失败!");}} catch (Exception e) {e.printStackTrace();}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

监听输入的方法有以下三个,可以根据实际情况使用:

onchange事件:此事件会在元素内容发生改变,且失去焦点的时候触发。浏览器支持度较好。

onpropertychange事件:此事件会在元素内容发生改变时立即触发,即便是通过js改变的内容也会触发此事件。元素的任何属性改变都会触发该事件,不止是value。只有IE11以下浏览器支持此事件。

oninput事件:此事件会在value属性值发生改变时触发,通过js改变value属性值不会触发此事件。只有IE8以上或者谷歌火狐等标准浏览器支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/740925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下载文件,无法获取header中的Content-Disposition

问题&#xff1a;axios跨域请求时&#xff0c;无法获取header中的Content-Disposition&#xff0c;并且network中已显示Content-Disposition 在使用CORS方式跨域时&#xff0c;浏览器只会返回默认的头部Header 解决&#xff1a; 后端在返回时&#xff0c;需要设置公开的响应…

【项目】C++ 基于多设计模式下的同步异步日志系统

前言 一般而言&#xff0c;业务的服务都是周而复始的运行&#xff0c;当程序出现某些问题时&#xff0c;程序员要能够进行快速的修复&#xff0c;而修复的前提是要能够先定位问题。 因此为了能够更快的定位问题&#xff0c;我们可以在程序运行过程中记录一些日志&#xff0c;通…

【机器学习】集成学习:发挥1+1大于2的功效 | 集成学习基础原理,概念,Boosting,Bagging与随机森林

文章目录 1 基础原理2 串行——Boosting3 并行——Bagging与随机森林3.1 Bagging3.2随机森林 1 基础原理 之前我们介绍了许多单个的机器学习算法&#xff0c;包括决策树&#xff0c;神经网络&#xff0c;贝叶斯分类器 但以上种种都是单个学习算法 接下来我们介绍集成学习&am…

选股就用河北源达“财源滚滚”选股软件

在股市投资的道路上&#xff0c;选股无疑是至关重要的一环。然而&#xff0c;面对海量的个股信息和复杂的市场环境&#xff0c;如何科学、准确地选股&#xff0c;成为了投资者必须面对的难题。河北源达信息技术股份有限公司推出的“财源滚滚”选股软件&#xff0c;以其独特的优…

APP分发:意义、策略与未来发展新趋势

APP分发是移动应用开发和推广的关键环节&#xff0c;它指的是将已经开发完成的应用程序通过各种渠道发布到各大应用商店或第三方应用市场上&#xff0c;以供用户下载和使用的过程。这一过程涉及到应用的上传、审核、发布、更新、推广等多个环节&#xff0c;旨在确保应用能够顺利…

11 vector的实现

注意 实现仿cplus官网的的string类&#xff0c;对部分主要功能实现 实现 文件 #pragma once #include <string> #include <assert.h>namespace myvector {template <class T>class vector{public://iteratortypedef T* iterator;typedef const T* const_…

【AI绘画】AI绘画免费网站推荐

人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是指一种模拟人类智能的技术。它是通过计算机系统来模拟人的认知、学习和推理能力&#xff0c;以实现类似于人类智能的行为和决策。人工智能技术包含多个方面&#xff0c;包括机器学习、深度学习、自…

第42期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

spring boot 获取服务器域名

在Spring Boot中获取服务器域名可以使用HttpServletRequest对象来获取。可以通过注入HttpServletRequest对象&#xff0c;然后调用getRequestURL()方法来获取当前请求的完整URL&#xff0c;然后再通过处理URL字符串来提取出域名。 示例代码如下&#xff1a; import org.sprin…

【C++11】来感受lambda表达式的魅力~

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

redis题库详解

1 什么是Redis Redis(Remote Dictionary Server) 是一个使用 C 语言编写的&#xff0c;开源的&#xff08;BSD许可&#xff09;高性能非关系型&#xff08;NoSQL&#xff09;的键值对数据库。 Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串&#xff0c;…

《OWASP TOP10漏洞》

0x01 弱口令 产生原因 与个人习惯和安全意识相关&#xff0c;为了避免忘记密码&#xff0c;使用一个非常容易记住 的密码&#xff0c;或者是直接采用系统的默认密码等。 危害 通过弱口令&#xff0c;攻击者可以进入后台修改资料&#xff0c;进入金融系统盗取钱财&#xff0…

面试经典-1-合并两个有序数组

题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0c;合并…

Vue中的数据交互有几种方式

1. 单向数据流&#xff1a; Vue中的数据流是单向的&#xff0c;从父组件传递到子组件。父组件可以通过props将数据传递给子组件&#xff0c;子组件通过props接收并使用这些数据。这种方式适用于父子组件之间的简单通信。 2. 事件&#xff1a; 子组件可以通过触发自定义事件来…

ENVI 如何批量拆分多波段栅格

在处理遥感图像时&#xff0c;需要将多波段栅格进行拆分是很常见的需求。下面介绍一种方法&#xff0c;可以实现图像批量拆分并重命名。 打开ENVI的App Store 搜索并下载应用 在ENVI的App Store中搜索"将多波段图像拆分成多个单波段文件"&#xff0c;并下载安装。 打…

OceanBase4.2版本 Docker 体验

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

当电脑加域控后,自动移入指定的OU

在Active Directory&#xff08;AD&#xff09;环境中&#xff0c;要实现当计算机加入域时自动被放置到指定的OU&#xff08;组织单元&#xff09;&#xff0c;通常需要配置组策略对象&#xff08;GPO&#xff09;中的计算机账户默认位置或者使用redircmp命令来重定向新加入域的…

视频AI方案:数据+算力+算法,人工智能的三大基石

背景分析 随着信息技术的迅猛发展&#xff0c;人工智能&#xff08;AI&#xff09;已经逐渐渗透到我们生活的各个领域&#xff0c;从智能家居到自动驾驶&#xff0c;从医疗诊断到金融风控&#xff0c;AI的应用正在改变着我们的生活方式。而数据、算法和算力&#xff0c;正是构…

2024 年 2 月 NFT 行业动态:加密货币飙升,NFT 市场调整

作者&#xff1a;stellafootprint.network 数据来源&#xff1a;NFT 研究页面 - Footprint Analytics 2024 年 2 月&#xff0c;加密货币与 NFT 市场显现出了复杂性。该月&#xff0c;NFT 领域的交易量达到 12 亿美元&#xff0c;环比下降了 3.7%。值得关注的是&#xff0c;包…

html5cssjs代码 013 常见布局

html5&css&js代码 013 常见布局 一、代码二、解释 一个简单的网页布局。 一、代码 <!DOCTYPE html> <html lang"zh-cn"> <head><!-- 页面标题和样式定义 --><title>编程笔记 html5&css&js HTML布局 常见布局 </ti…