编程应用背景:

  使用HttpServlet接口来编写一个动态登录的接口(需要在Tomcat容器发布)

登录的 LoginSample 类代码:

 package com.zhang.java;

 public class LoginSample {
public LoginSample() { //构造方法
// System.out.println("构造方法被调用!");
} public boolean login(String ln, String pwd) {
if (ln != null && ln.length() > 2 && ln.length() < 17
&& pwd != null && pwd.length() > 2 && pwd.length() < 17) {
if (ln.equals("zzp") && pwd.equals("")) {    //设置的静态登录名和登录密码,没有调用数据库的信息
System.out.println("恭喜您,登录成功!");
return true;
} else {
System.out.println("用户名或密码错误!");
}
} else {
System.out.println("参数错误!");
}
return false;
} }

登录后台的代码:

 package com.zhang.java;

 import java.io.IOException;

 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 LoginTry
*/
@WebServlet("/LoginTry")
public class LoginTry extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public LoginTry() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub // 返回值编码的修改
response.setContentType("text/html;charset=UTF-8");
// 收到的参数的编码修改
request.setCharacterEncoding("UTF-8"); String user = request.getParameter("loginname");
String pwd = request.getParameter("password"); LoginSample ls = new LoginSample();
Boolean result = ls.login(user, pwd); // 创建一个info信息来说明登录结果
String info = "{\"method\":\"get\",";
if (result) {
info += "\"status\":200,\"msg\":\"恭喜您登录成功!\"";
} else {
info += "\"status\":500,\"msg\":\"抱歉,您登录失败!\"";
}
info += "}";
// 控制台输出登录的info信息
// System.out.println(info); // 接口返回信息
response.getWriter().append("get方法被调用!" + user + pwd).append(request.getContextPath());
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub // 返回值编码的修改
response.setContentType("text/html;charset=UTF-8");
// 收到的参数的编码修改
request.setCharacterEncoding("UTF-8"); String user = request.getParameter("userid");
String pwd = request.getParameter("pwds"); LoginSample ls = new LoginSample(); //调用LoginSmaple类来创建一个登录的实例ls Boolean result = ls.login(user, pwd);   //创建一个变量来存储登录结果 String info = "{\"method\":\"post\","; //创建一个info信息来说明登录结果 if(result) {  //使用登录结果作为判断条件
info+="\"status\":200,\"msg\":\"恭喜您登录成功!\"";
}
else {
info+="\"status\":500,\"msg\":\"抱歉,您登录失败!\"";
}
info += "}";
System.out.println(info);  //控制台输出info信息
response.getWriter().append(info);  //接口返回结果 } }

前端登录页面HTML代码:

 <!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html" charset="utf-8">
<title>zzp的网页</title> <!--接下来引入JQuery最小版本的库文件 -->
<script src="jquery.min.js" type="text/javascript"></script>
<!-- 接下来引入自己写的 js 文件 -->
<script src="test.js" type="text/javascript"></script> </head> <body >
<h1 align="center">Hello HTML</h1> <form id="loginForm" method="post" action="./LoginTry">
<div id="info" style="text-align:center">
<p>请输入您的账号:</p>
<input type="text" name="userid" placeholder="登录名" />
<br/>
<p>请输入您的密码:</p>
<input type="password" name="pwds" placeholder="密码" />
<br/><br/> <!-- 下面这一句原本是为了使用form表单的方式来调用post方法的 -->
<!-- <input type="submit" value="开始登录"> --> <!-- 使用“登录”按钮的onclick事件来调用js文件,执行post方法的异步请求 -->
<input type="button" onclick="javascript:loginJS()" value="登录" /> </div>
</form> </body>
</html>

test.js脚本代码:

 /**
* 登录界面中“登录”按钮会调用的js方法
*/ function loginJS() { // 定义一个存放URL的变量,指定请求的接口地址
var AjaxURL = "http://localhost:8080/LoginInterServlet/LoginTry";  //Tomcat中服务的地址和接口 $.ajax({
url : AjaxURL,
type : "post", // 采用post方法
dataType : "json", // 请求和返回的参数格式;如果是非json格式需要使用text格式
// 获取id=loginForm的form表单中的参数
data : $('#loginForm').serialize(),
// 当接口调用成功时,执行success中的方法,result参数指的是接口返回的信息
success : function(result) {
// result[***]表示的是对应的键经过 解析后的值
// alert("status:"+result["status"]+", "+result["msg"]); //如果登录成功,将id=“info”的元素 改为 接口返回值中“msg”信息
$('#info')[0].innerText=result["msg"];
},
// 当接口调用失败时,执行error中的方法
error : function() {
alert("服务器忙……请稍后重试!");
}
}); }

前端登录时的界面截图:

登录后的界面截图:

java编程(1)——servlet和Ajax异步请求的接口编程(没有调用数据库的数据)的更多相关文章

  1. java编程(2)——servlet和Ajax异步请求的接口编程(有调用数据库的数据)

    第一步: 1.为项目配置 Tomcat 为 server: 2.导入 mysql的jar包 到项目目录中: 第二步:编码 1.数据库连接类ConnectMysql.java代码: package co ...

  2. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  3. 关于我们ajax异步请求的方法与知识

      做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school ...

  4. maven工程 java 实现文件上传 SSM ajax异步请求上传

    java ssm框架实现文件上传 实现:单文件上传.多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传的文件 首先springmvc的配置文件要配置上传文件解析器: <!- ...

  5. java判断请求是否ajax异步请求

    java判断请求是否ajax异步请求   解决方法: if (request.getHeader("x-requested-with") != null && re ...

  6. 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

    作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...

  7. Ajax -异步请求 -jquery中ajax分类 -第一层 $.ajax -第二层($.get /$.post) -第三层($.getJson/$.getScript) -相应演示

    Ajax 1.标准请求响应时浏览器的动作(同步操作) 1.1浏览器请求什么资源,跟随显示什么资源2.ajax:异步请求. 2.1局部刷新,通过异步请求,请求到服务器资源数据后,通过脚本修改页面中部分内 ...

  8. art.dialog 与 ajax 异步请求

    上周写了一些代码,涉及到jquery异步请求,这里归纳总结下,希望对刚接触编程的同学有帮助. 主要习惯使用 art.dialog 框架,非常好用,在异步请求上,它提供了很多简便的方法. 加载使用art ...

  9. ajax异步请求302分析

    1.前言 遇到这样一种情况,打开网页两个窗口a,b(都是已经登录授权的),在a页面中退出登录,然后在b页面执行增删改查,这个时候因为授权原因,b页面后端的请求肯定出现异常(对这个异常的处理,进行内部跳 ...

随机推荐

  1. Alibaba Java开发手册索引规约学习笔记

    最近一段时间再看阿里巴巴 Java开发手册索引规约,写篇帖子总结一下,索引规约内容如下 为了通用,更为了避免造数据的痛苦,文中所涉及表.数据,均来自于MySQL官网提供的示例库employees,可通 ...

  2. [源码分析]StringBuffer

    [源码分析]StringBuffer StringBuffer是继承自AbstractStringBuilder的. 这里附上另外两篇文章的连接: AbstractStringBuilder : ht ...

  3. 爬一下国家统计局行政区划代码C#

    目前NBS上有2015-2018四个年度的代码信息,写一个控制台程序爬一下县级行政区下的代码. 使用HttpWebRequest+HttpWebResponse获取html,使用HtmlAgility ...

  4. Java裸写爬虫技术,运用多线程技术,高效爬取某个医疗机构网站数据

    最近喜欢上了数据的庞大的感觉,就爬取了一下某个医疗机构网站医疗数据,由于数据量庞大,只爬取了江西省的各个市的各个医院的各个科室的各个科室.中各种信息.其中用的持久层技术是hibernate框架,和用到 ...

  5. 散列(C++实现)

    散列的构成:散列函数,散列表的存储方式,散列表的冲突解决方法. 1.散列函数 较常用的散列函数有除留余数法,数字分析法,平方取中法,折叠法. 2.散列表的存储方式 闭散列法(开地址法),用数组存储:开 ...

  6. vue 开发和生产的跨域问题

    开发阶段 在开发环境与后端调试的时候难免会遇到跨域问题,在 vue 项目中常用的是 proxyTable,这个用起来很方便. 打开 config 文件夹下面的 index.js,找到 dev 开发模式 ...

  7. 微软必应地图加载错误:Uncaught TypeError: Microsoft.Maps.Location is not a constructor

    微软必应地图在chrome浏览器加载错误:Uncaught TypeError: Microsoft.Maps.Location is not a constructor, 原因是没有等待地图API加 ...

  8. 虚拟机有QQ消息时宿主机自动弹窗提示

    因为是检测窗口实现的,所以要求设置会话窗口自动弹出,而且看完消息就把QQ消息窗口关掉... 虚拟机端 #! /usr/bin/env python # -*- coding: utf-8 -*- fr ...

  9. map集合的常用方法

    package test; import java.util.Collection; import java.util.HashMap; import java.util.Map; import ja ...

  10. C++自己实现一个String类

    C++自己实现一个String类(构造函数.拷贝构造函数.析构函数和字符串赋值函数) #include <iostream> #include <cstring> using ...