欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-07 23:22:05
本文实例讲述了angularjs实现与java web服务器交互操作的方法。分享给大家供大家参考,具体如下: angularjs是google工程师研发的产品,它的强大之...

本文实例讲述了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写好的一个前端页面,我们需要实现的是当点击提交案例后,將文本域中的数据提交到服务器端进行校验,服务器端向客户端返回相应的处理结果。代码如下:

<!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程序设计有所帮助。