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 相关文章推荐
Js切换功能的简单方法
Nov 23 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
Oct 21 Javascript
jquery模拟进度条实现方法
Aug 03 Javascript
深入学习jQuery Validate表单验证(二)
Jan 18 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
javascript实现右下角广告框效果
Feb 01 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
Oct 26 Javascript
vue.js或js实现中文A-Z排序的方法
Mar 08 Javascript
Vue.js中对css的操作(修改)具体方式详解
Oct 30 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 Javascript
使用axios请求时,发送formData请求的示例
Oct 29 Javascript
Element MessageBox弹框的具体使用
Jul 27 Javascript
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
理解Javascript_03_javascript全局观
2010/10/11 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
详解React native fetch遇到的坑
2018/08/30 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
python中stdout输出不缓存的设置方法
2014/05/29 Python
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
django 模型中的计算字段实例
2020/05/19 Python
django实现日志按日期分割
2020/05/21 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
基于python爬取梨视频实现过程解析
2020/11/09 Python
优秀幼教自荐信
2014/02/03 职场文书
颁奖典礼主持词
2014/03/25 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
三八妇女节活动总结
2014/05/04 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
关于学习的决心书
2015/02/05 职场文书
会计稽核岗位职责
2015/04/13 职场文书
房产电话营销开场白
2015/05/29 职场文书
在职证明书模板
2015/06/15 职场文书
教师节获奖感言
2015/07/31 职场文书
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers