AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】


Posted in Javascript onNovember 02, 2016

本文实例讲述了AngularJS实现与Java Web服务器交互操作的方法。分享给大家供大家参考,具体如下:

AngularJS是Google工程师研发的产品,它的强大之处不是几句话就能描述的,只有真正使用过的人才能体会到,笔者准备在这篇文章中,以一个简单的登录校验的例子说明如何使用AngularJs和Web服务器进行交互。

准备工作

1.下载angular js库。

官网下载地址:https://angularjs.org/

或者点击此处本站下载

2.开发环境准备,由于是和Tomcat服务器进行交互,所以JDK什么的都是必不可少的。笔者机器上使用Eclipse Luna版、JDK7.0和Tomcat8.0。

浏览器最好选用Chrome或Firefox调试起来比较方便。

AngularJs与Java Web服务器交互案例

AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】

这是笔者使用AngularJs和html5、css写好的一个前端页面,我们需要实现的是当点击提交案例后,?⑽谋居蛑械氖?萏峤坏椒?衿鞫私?行Q椋??衿鞫讼蚩突Ф朔祷叵嘤Φ拇?斫峁?4?肴缦拢?/p>

<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>登录</title>
<script src="js/angular-1.3.0.14/angular.js"></script>
<link rel="stylesheet" type="text/css" href="css/index.css"/>
</head>
<body ng-app="myApp">
  <div>
    <ul id="loginForm" ng-controller="LoginForm">
      <li>用户名:<input type="text" name="uname" ng-model="uname" /></li>
      <li>密 码:<input type="password" name="pword" ng-model="pword" /></li>
      <li id="loginBtn"><input type="button" value="提交" ng-click="submit()"/> <input type="button" value="重置" ng-click="resetInfo()"/></li>
    </ul>
  </div>
<script>
angular.module("myApp", [])
  .controller("LoginForm", function($scope,$http) {
  $scope.resetInfo=function()
  {
    $scope.uname="";
    $scope.pword="";
  }
  $scope.submit=function()
  {
    var postData = "?uname="+$scope.uname+"&"+"pword="+$scope.pword;
    var url = "loginAction.do" + postData;
    $http.post(url).success(function(data)
    {
      alert(data);
    });
  }
});
</script>
</body>
</html>

AngularJs对服务器的请求都是通过Ajax来实现的,所有的操作都封装在$http中,通过$http.post()方法以uname和pword做为参数向服务器端发送请求,请求资源为loginAction.do,然后调用alert方法弹出服务器端返回的内容。

在服务器端,我们需要增加一个Servlet来处理客户端的请求,并根据请求内容向客户端返回不同的数据。

在web.xml配置servlet,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>AngularJs</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <!-- 处理客户端请求Servlet -->
  <servlet>
    <servlet-name>LoginAction</servlet-name>
    <servlet-class>com.csii.action.login.LoginAction</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginAction</servlet-name>
    <url-pattern>/loginAction.do</url-pattern>
  </servlet-mapping>
</web-app>

我们所有的业务逻辑都在LoginAction类中处理,LoginAction代码如下:

package com.csii.action.login;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginAction extends HttpServlet{
  private static final long serialVersionUID = 1L;
  private final String USERNAME = "Rongbo_J";
  private final String PASSWORD = "1234567";
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    doPost(req, resp);
  }
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    String uname = req.getParameter("uname");
    String pword = req.getParameter("pword");
    PrintWriter pw = resp.getWriter();
    if(USERNAME.equals(uname) && PASSWORD.equals(pword))
    {
      pw.write("username and password is right!");
    }else
    {
      pw.write("username or password is wrong!");
    }
  }
}

这里我们简单的模拟一下,用户名和密码信息并没有从数据库中取出。

String uname = req.getParameter("uname");
String pword = req.getParameter("pword");

我们从req对象中拿到客户端传过来的数据,和USERNAME 、PASSWORD 对比,如果相同则返回"username and password is right!",否则返回"username or password is wrong!"

然后我们回到登录界面,用户名和密码输入错误可以看到:

AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】

正确输入Rongbo_J和1234567:

AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】

完整demo实例代码点击此处本站下载

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
javascript下给元素添加事件的方法与代码
Aug 13 Javascript
jquery 取子节点及当前节点属性值
Jul 25 Javascript
浅谈重写window对象的方法
Dec 29 Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
Jul 17 Javascript
javascript实现一个简单的弹出窗
Feb 22 Javascript
js改变css样式的三种方法推荐
Jun 28 Javascript
JS实现的数字格式化功能示例
Feb 10 Javascript
详解ES6之用let声明变量以及let loop机制
Jul 15 Javascript
vue实现打印功能的两种方法
Sep 07 Javascript
jQuery实现的模仿雨滴下落动画效果
Dec 11 jQuery
Centos7 中 Node.js安装简单方法
Nov 02 #Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
Nov 02 #Javascript
用AngularJS来实现监察表单按钮的禁用效果
Nov 02 #Javascript
AngularJS入门教程之Cookies读写操作示例
Nov 02 #Javascript
js导出excel文件的简洁方法(推荐)
Nov 02 #Javascript
AngularJS入门教程之多视图切换用法示例
Nov 02 #Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
Nov 02 #Javascript
You might like
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
php zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
php 错误处理经验分享
2011/10/11 PHP
IIS下PHP的三种配置方式对比
2014/11/20 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
jQuery 一个图片切换的插件
2011/10/09 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
Flask之flask-script模块使用
2018/07/26 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
九年级语文教学反思
2016/03/03 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书