GDPU JavaWeb Ajax请求

异步请求可以提升用户体验并优化页面性能。

ajax登录

实现ajax异步登录。

注意,ajax用到了jQuery库,先下载好相应的js库,然后复制导入到工程的web目录下,最好与你的前端页面同一层级。然后编写时路径一定要找准,“pageContext.request.contextPath” 指的是应用根目录,如果不会找,可以看这里。再找不到,也可以试一下写静态资源地址。然后url也要写对,否则响应不了。如果浏览器没响应,可以点F12看控制台报错的信息。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Ajax</title><script type="text/javascript"src="${pageContext.request.contextPath}/jquery-3.7.1.js"></script>
<%--    <script type="text/javascript"--%>
<%--    src="https://code.jquery.com/jquery-3.7.1.js"></script>--%><script type="text/javascript">$(document).ready(function(){$("button").click(function(){$.ajax({type:"post",            //提交方式url:'http://localhost:8080/sysql_war_exploded/AJAXServlet',data:{userName:  $("#userName").val(),password:  $("#password").val()},                       //data中的内容会自动的添加到url后面dataType: "text",         //返回数据的格式success:function(a){       //请求成功后执行的函数if(a=="true"){$('#suss').html("登录成功!")}else{$('#suss').html("登录失败!")}},error :function () {       //请求失败后执行的函数alert("请求失败");},});});});</script>
</head>
<body>
<div><div><ul><li>用户名:</li><li><input id="userName" name="userName" type="text" /></li></ul></div><div><ul><li>密码:</li><li><input id="password" name="password" type="password"/></li></ul></div><div><ul><li><button>登录</button></li></ul></div><div id="suss"></div>
</div>
</body>
</html>
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;@WebServlet(name = "AJAXServlet", urlPatterns = "/AJAXServlet")
public class AJAXServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponseresponse) throws ServletException, IOException {}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {boolean flag = false;Map<String, String[]> parameterMap = request.getParameterMap();if ((request.getParameter("userName")).equals("itcast")&& request.getParameter("password").equals("123")) {flag = true;            //登录成功标志} else {flag = false;}response.setContentType("text/html;charset=utf-8");//使用PrintWriter方法打印登录结果PrintWriter out = response.getWriter();out.print(flag);out.flush();out.close();}
}

 ajax公告显示

要求应用ajax实现无刷新、每隔10分钟从数据库获取一次最新公告,并滚动显示。

注意,以下代码并不是mvc模式。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>index</title><script type="text/javascript"src="${pageContext.request.contextPath}/jquery-3.7.1.js"></script><script language="JavaScript">function getInfo() {$.get("http://localhost:8080/sysql_war_exploded/getInfo.jsp?nocache="+new  Date().getTime(),function (data) {$("#showInfo").html(data);});}$(document).ready(function () {getInfo();//调用getInfo()方法获取公告信息window.setInterval("getInfo()",600000);})</script>
</head>
<body>
<section><marquee id="showInfo" direction="up" scrollamount="3"></marquee>
</section>
</body>
</html>
<%@ page language="java" contentType="text/html;charset=UTF-8"pageEncoding="UTF-8" %>
<%@page import="java.sql.*" %>
<jsp:useBean id="conn" class="Dao.ConnDB"scope="page"></jsp:useBean>
<ul><%ResultSet rs=conn.executeQuery("select title from info order by id desc");if(rs.next()){do{out.print("<li>"+rs.getString(1)+"</li>");}while (rs.next());}else{out.print("<li>暂无公告信息!</li>");}%>
</ul>
package Dao;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class ConnDB {public Connection conn =null;    //声明Connection对象的实例public Statement stmt = null;    //声明Statement对象的实例public ResultSet rs = null;      //声明ResultSet对象的示例//指定资源文件保存的位置private static String propFileName= "connDB.properties";//创建并实例化Properties对象的实例private static Properties prop=new Properties();//定义并保存数据库驱动的变量private static String dbClassName ="";private static String dbUrl="";private static String user="";private static String pass="";/*** 构造方法*/static{try{//将Properties文件读取到InputStream对象中InputStream in=ConnDB.class.getResourceAsStream(propFileName);prop.load(in);dbClassName = prop.getProperty("DB_CLASS_NAME"); //获取数据库驱动dbUrl = prop.getProperty("DB_URL");  //获取数据库驱动user = prop.getProperty("user");  //获取数据库账号pass = prop.getProperty("pass");  //获取数据库密码}catch (Exception e){e.printStackTrace();                             //输出异常信息}}/*** 连接数据库*/public  Connection getConection(){try{Class.forName(dbClassName).newInstance(); //装载数据库驱动//建立与数据库URL中定义的数据库的连接conn = DriverManager.getConnection(dbUrl,user,pass);}catch (Exception ee){ee.printStackTrace();}if(conn==null){System.err.print("连接失败");}return conn;}/*** 执行查询*/public ResultSet executeQuery(String sql){try{conn=getConection();stmt =conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);//执行SQL语句,并返回一个ResultSet对象rsrs =stmt.executeQuery(sql);}catch (SQLException ex){System.err.print(ex.getErrorCode());}return rs;}/*** 关闭数据库的连接*/public void close(){try{if(rs!=null){rs.close();}if (stmt!=null){stmt.close();}if (conn!=null){conn.close();}}catch (Exception e){e.printStackTrace();}}
}
DB_CLASS_NAME =com.mysql.cj.jdbc.Driver
DB_URL=jdbc:mysql://127.0.0.1:3306/dbjsp?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
user =root
pass =123456

 

 

⛽ 还有个网站设计的自立更新了喔,摸完这个shui课了,fighting(~ ̄▽ ̄)~

实验心得 

划了个不平淡的蛋。

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

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

相关文章

WinRAR安装教程

WinRAR安装教程 1. 下载WinRAR 访问官方网站&#xff1a;打开浏览器&#xff0c;访问WinRAR的官方网站&#xff08;如&#xff1a;www.winrar.com.cn&#xff09;。选择版本&#xff1a;根据您的操作系统&#xff08;32位或64位&#xff09;选择合适的WinRAR版本。下载软件&a…

转让北京公司带旅行许可证流程和要求

旅行社是开展旅游服务业务的专项经济主体&#xff0c;旅行社开展相关业务必须持有旅行社业务经营许可证。该资质又分为国内旅行社经营许可证和出境旅行社经营许可证。主要区别在于能否开展出境旅游业务&#xff0c;下面老耿带大家了解&#xff0c;新成立国内旅行社要求及出境旅…

python-windows10普通笔记本跑bert mrpc数据样例0.1.001

python-windows10普通笔记本跑bert mrpc数据样例0.1.000 背景参考章节获取数据下载bert模型下载bert代码windows10的cpu执行结果注意事项TODOLIST背景 看了介绍说可以在gpu或者tpu上去微调,当前没环境,所以先在windows10上跑一跑,看是否能顺利进行,目标就是训练的过程中没…

【Vue2/3】使用Provide/Inject 依赖注入跨组件通信

历史小剧场 什么东西&#xff0c;都有使用年限&#xff0c;比如大米、王朝。 不同的是&#xff0c;大米的年限看得见&#xff0c;王朝的年限看不见。看不见&#xff0c;却依然存在。对于气数&#xff0c;崇祯是不信的&#xff0c;开始不信。等到崇祯十四年&#xff0c;怕什么来…

js--hasOwnProperty()讲解与使用

@TOC 前言 hasOwnProperty(propertyName)方法 是用来检测属性是否为对象的自有属性 object.hasOwnProperty(propertyName) // true/false 讲解 hasOwnProperty() 方法是 Object 的原型方法(也称实例方法),它定义在 Object.prototype 对象之上,所有 Object 的实例对象都会继…

6.7 输入输出流

输入&#xff1a;将数据放到程序&#xff08;内存&#xff09;中 输出&#xff1a;将数据从程序&#xff08;内存&#xff09;放到设备中 C的输入输出分为3种形式&#xff1a; 从键盘屏幕中输入输出&#xff0c;称为标准IO 对于磁盘进行标准输入输出&#xff0c;称为文件IO…

go 读取json文件内容,并且解析内容到interface、 map、 struct

1&#xff0c;解析到interface、 map func ReadAllFileContent(fileName string) {file, err : os.Open(fileName)if err ! nil {log.Fatal(err)}defer file.Close()// buf : make([]byte, 2024)data, err : ioutil.ReadAll(file) //读取的结果是[]byte类型if err ! nil {log.…

第5章 if语句

第5章 if语句 5.1 示例5.2 条件测试5.2.1 检查是否相等5.2.2 检查是否相等时忽略大小写5.2.3 检查是否不相等5.2.4 数值比较5.2.5 检查多个条件5.2.6 检查特定值是否包含在列表中5.2.7 检查特定值是否不包含在列表中5.2.8 布尔表达式 5.3 if 语句5.3.1 简单的if 语句5.3.2 if-e…

硕思闪客精灵(shankejingling)软件最新版下载及详细安装教程

闪客精灵&#xff08;Sothink SWF Decompiler&#xff09;是一款先进的SWF反编译软件&#xff0c;它不但能捕捉、反编译、查看和提取Shock Wave Flash影片&#xff08;.swf和.exe格式文件&#xff09;&#xff0c;而且可以将SWF格式文件转化为FLA格式文件。它能反编译Flash的所…

四天工作制,比你想象的更近了一点

原文&#xff1a;Andrew Keshner - 2024.05.30 软件公司、大型企业甚至警察部门都在试验这一看似遥不可及的概念。 教育软件公司 Kuali 的会议精简&#xff0c;除非绝对必要&#xff0c;员工尽量避免安排会议。即使有会议&#xff0c;也鼓励员工跳过与自己工作无关的部分。在…

随机函数rand

使用步骤: 包含库 cstdlib #include <cstdlib>使用时间当做随机数种子 srand(time(NULL));调用rand来返回随机数 std::cout<<RAND_MAX<<std::endl; std::cout<<rand()<<std::endl;rand只能生成 范围通常是 0 到 RAND_MAX 之间。 代码示例 …

从技术到产品:以客户为中心的产品研发之路

一、引言 在快速发展的商业环境中&#xff0c;产品作为连接企业与市场的桥梁&#xff0c;其重要性不言而喻。从摸着石头过河搞产品&#xff0c;到广泛传播NPDP&#xff08;新产品开发流程&#xff09;理念&#xff0c;产品研发的道路经历了从直觉驱动到系统思维的转变。本文将…

ArcGIS for js 4.x 加载图层

二维&#xff1a; 1、创建vue项目 npm create vitelatest 2、安装ArcGIS JS API依赖包 npm install arcgis/core 3、引入ArcGIS API for JavaScript模块 <script setup> import "arcgis/core/assets/esri/themes/light/main.css"; import Map from arcgis…

Linux创建虚拟环境

Linux创建虚拟环境 linux安装虚拟环境和Windows大体相似 1.安装virtualenv pip3 install virtualenv2.创建虚拟环境 创建文件夹用于保存项目虚拟环境 mkdir /envs创建环境 virtualenv /envs/django_-shop-system --pythonpython3.83.激活虚拟环境 source /envs/django_-sho…

Ansible——unarchive模块

目录 参数总结 基础语法 常见的命令行示例 示例1&#xff1a;解压缩文件到指定目录 示例2&#xff1a;解压缩文件并设置权限 示例3&#xff1a;远程URL解压缩 示例4&#xff1a;强制覆盖现有文件 具体步骤和示例 示例5&#xff1a;只要文件解压后&#xff0c;如果存在…

哈希桶封装unordered_map、unordered_set

哈希桶源代码 我们将由下列的哈希桶来模拟封装STL库中的unordered_map和unordered_set 注意&#xff1a;为了实现封装unordered_map和unordered_set&#xff0c;我们需要对下列源码进行优化。 //哈希桶 namespace hashbucket {template<class K,class V>struct HashNo…

高考作文:时光之河,逐梦前行

时光之河&#xff0c;奔流不息&#xff0c;如同我们的人生旅途&#xff0c;充满了未知与挑战。站在2024年的高考门槛前&#xff0c;我们回望过去&#xff0c;展望未来&#xff0c;心中充满了期待与憧憬。 首先&#xff0c;让我们回顾一下这条时光之河中的点滴。过去的岁月里&am…

C# WPF入门学习主线篇(七)—— Label常见属性和事件

C# WPF入门学习主线篇&#xff08;七&#xff09;—— Label常见属性和事件 欢迎来到C# WPF入门学习系列的第七篇。在前面的文章中&#xff0c;我们已经探讨了WPF中的Button和TextBox控件的使用。今天&#xff0c;我们将深入了解WPF中的另一个常用控件——Label。本文将详细介…

区间预测 | Matlab实现QRCNN-BiGRU-Attention分位数回归卷积双向门控循环单元注意力机制时序区间预测

区间预测 | Matlab实现QRCNN-BiGRU-Attention分位数回归卷积双向门控循环单元注意力机制时序区间预测 目录 区间预测 | Matlab实现QRCNN-BiGRU-Attention分位数回归卷积双向门控循环单元注意力机制时序区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实…

针对业务系统的主备容灾实战原理-基础版

1、前言 本文主要在于介绍&#xff1a;通过系统的实时容灾功能模块&#xff0c;针对用户云计算中关键业务系统的主备容灾方案原理。 涉及到的技术能力、运维能力要求偏高&#xff0c;遂本文尽量将容灾原理讲解清楚。需要用到的云计算能力包括&#xff1a;计算机操作系统(Linu…