index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
<script type="text/javascript" src="js/way.js"></script>
<style type="text/css"></style>
<link type="text/css" rel="styleSheet" href="css/index.css" />
</head>
<body>
<div class="box">
<form action="" method="post" id="form1">
<table>
<tr>
<td width="30px"><input type="text" name="num1" id="cal1" /></td>
<!-- <td width="30px"><input type="text" name="way" id="way"/> </td> -->
<td>
<select id="way" name="way">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
</td>

<td><input type="text" name="num2" id="cal2"/></td>
<td><input type="text" id="eql" value="="/></td>
<td><input type="text" id="result"/></td>
<td><input type="button" value="onclick" id="login"/></td>
</tr>
<tr>
<td colspan="6"><span id="check"></span></td>
</tr>
</table>
</form>
</div>
</body>
</html>

way.js

$(function(){
var num1 = $("#cal1");
var way = $("#way");
var num2 = $("#cal2");
var eql = $("#eql");
var result = $("#result");

num1.css({
background:"#ccc",
width:"50px",
height:"20px"
});
num2.css({
background:"#ccc",
width:"50px",
height:"20px"
});
way.css({
background:"#ccc",
width:"40px",
height:"20px"
});
eql.css({
background:"#ccc",
width:"40px",
height:"20px"
});
result.css({
background:"#ccc",
width:"50px",
height:"20px"
});
//获取按钮给按钮一个点击事件
$("#login").on('click',function (event) {

var result = $("#result");
var itemForm = $('#form1');
//在Jquery中AJAX的写法
$.ajax({
type:"post",
url:"/Calculate01/MyServlet",
data: itemForm.serialize(),
//接收后台传过来的值是text类型
dataType:'text',
success: function(data) {//date保存的是后台传入的数据

//data是从控制层返回来的值
if(data!="false"){
var textId=$("#result");//根据文本框的id找到这个文本框,并将其变成jquery对象
textId.val(data);//重点是这句话,赋值
}else{
alert("输入格式不正确");
}
// alert(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert( XMLHttpRequest.status );
}
});
})
});
Servlet

package cn.edu.com.Service;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.regex.Pattern;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;character=utf-8");
PrintWriter out = response.getWriter();
String num1 = request.getParameter("num1");
String num2= request.getParameter("num2");
String way = request.getParameter("way");
utilTool tool = new utilTool();
String result = tool.getTool(num1, num2, way);

if(result=="false") {
out.print("false");
}else {
out.println(result);
}
}
}

utils类

package cn.edu.com.Service;

import java.util.regex.Pattern;

public class utilTool {
private double n;
private String result;
private double n1;
private double n2;

public String getTool(String num1,String num2,String way) {

Pattern pattern = Pattern.compile("^(-?\\d+)(\\.\\d+)?$");//返回一个Pattern的对象。
Pattern pattern1 = Pattern.compile("^(-?\\d+)(\\.\\d+)?$");//返回一个Pattern的对象。
//与正则表达式进行匹配,匹配成功返回true匹配失败返回false

boolean check_num1 = pattern.matcher(num1).matches();
boolean check_num2 = pattern1.matcher(num2).matches();
if(num1!=null && num2!=null&&check_num1==true&&check_num2==true) {
if(way.equals("+")||way.equals("-")||way.equals("*")||way.equals("/")) {
n1 = Double.parseDouble(num1);
n2 = Double.parseDouble(num2);
switch (way) {
case "+":
n = n1+n2;
result = String.valueOf(n);
break;
case "-":
n = n1-n2;
result = String.valueOf(n);
break;
case "*":
n = n1*n2;
result = String.valueOf(n);
break;
case "/":
n = n1/n2;
result = String.valueOf(n);
break;

default:
break;
}

return result;
}else {
return "false";
}
}
else {
return "false";
}

}
}

简单JQuery+AJAX+Servlet的计算器实现的更多相关文章

  1. jQuery Ajax传值给Servlet,在Servlet里Get接受参数乱码的解决方法

    最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如 ...

  2. jquery ajax请求后台 的简单例子

    jQuery.ajax(url,[settings]) 概述 通过 HTTP 请求加载远程数据. jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax ...

  3. jQuery简单的Ajax调用示例

    jQuery确实方便,下面做个简单的Ajax调用: 建立一个简单的html文件: <!DOCTYPE HTML> <html> <head> <script ...

  4. Jquery+ajax+json+servlet原理和Demo

    Jquery+ajax+json+servlet原理和Demo 大致过程: 用户时间点击,触发js,设置$.ajax,开始请求.服务器响应,获取ajax传递的值,然后处理.以JSON格式返回给ajax ...

  5. php+jquery+ajax+json简单小例子

    直接贴代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Conte ...

  6. jquery ajax跨域请求后台的简单例子

    一.简介AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. ajax() 方法通过 HTTP 请求加载远程数据. 该方法是 jQuery 底层 AJAX 实现.简 ...

  7. 利用jQuery与.ashx完成简单的Ajax

    在ASP.NET同样可以与其它编程语言一样,利用前台的Ajax技术,只是需要注意的是,后台的处理程序不再是一个aspx页面中的Page_Load,而且ASP.NET独有的“一般处理程序”.ashx,下 ...

  8. Jquery Ajax简单封装(集中错误、请求loading处理)

    Jquery Ajax简单封装(集中错误.请求loading处理) 对Jquery Ajax做了简单封装,错误处理,请求loading等,运用到项目中集中处理会很方便. 技术层面没有什么好说的,请求是 ...

  9. 简单的jquery Ajax进行登录!

    本案例包括login.html.login.php.jquery-1.12.0.min.js三个文件,只需将这三个文件放到同一文件夹下,即可运行. login.html: <!DOCTYPE h ...

随机推荐

  1. SpringBoot系列 - 集成JWT实现接口权限认证

    会飞的污熊 2018-01-22 16173 阅读 spring jwt springboot RESTful API认证方式 一般来讲,对于RESTful API都会有认证(Authenticati ...

  2. [HAOI2018]染色

    嘟嘟嘟 这题当时没想出来(因为本人实在不太擅长计数),然后又被luogu的第一篇题解吓怕了,就咕了一小段时间再写. 其实这题不是很难. 做法就是基础容斥+NTT. 首先出现\(S\)次的颜色最多有\( ...

  3. 004_浅析Python的GIL和线程安全

    在这里我们将介绍Python的GIL和线程安全,希望大家能从中理解Python里的GIL,以及GIL的前世今生. 对于Python的GIL和线程安全很多人不是很了解,通过本文,希望能让大家对Pytho ...

  4. (四)surging 微服务框架使用系列之网关 转载

    一.什么是API网关 API网关是一个服务器,是系统对外的唯一入口.API网关封装了系统内部架构,为每个客户端提供一个定制的API.API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入 ...

  5. 关于alter database datafile offline和alter database datafile offline drop 的区别

    转: https://blog.csdn.net/killvoon/article/details/46913183 -----------------------2015-07-16-------- ...

  6. SpringBoot之加密

    最近利用闲暇时间写了一个博客系统,主要参考wordpress,主要目的是为了提高自己的技术能力.写代码写了两年多,联系到之前在学校的时候写过的一个博客系统,发现工作中开发的系统,技术上基本一致,业务逻 ...

  7. selenium:解决页面元素display:none的方法

    在UI自动化测试中,有时候会遇到页面元素无法定位的问题,包括xpath等方法都无法定位,是因为前端元素被设置为不可见导致. 这篇博客,介绍下如何通过JavaScript修改页面元素属性来定位的方法.. ...

  8. 面试笔记--HashMap扩容机制

    转载请注明出处 http://www.cnblogs.com/yanzige/p/8392142.html 扩容必须满足两个条件: 1. 存放新值的时候当前已有元素的个数必须大于等于阈值 2. 存放新 ...

  9. Java8之使用Optional进行Null处理

    Optional类这是Java 8新增的一个类,用以解决程序中常见的NullPointerException异常问题,本篇文章将详细介绍Optional类,以及如何用它消除代码中的null检查. 1. ...

  10. 性能调优6:Spool 假脱机调优

    SQL Server的Spool(假脱机)操作符,用于把前一个操作符处理的数据(又称作中间结果集)存储到一个隐藏的临时结构中,以便在执行过程中重用这些数据.这个临时结构都创建在tempdb中,通常的结 ...