首先创建一个calculate.jsp

这是用Javascript代码来验证,代码如下:

<script type="text/javascript">

function check(){
if(form.n1.value==""&&form.value.n2==""){
window.alert("值不能为空");
return false;
}
if(isNaN(form.n1.value)&&isNaN(form.n2.vavlue)){
window.alert("请确认输入的是否是数字!");
return false;
}
if(form.operator.value=="/"&&form.n2.value=="0"){
window.alert("除数不能为0,请重新输入! ");
return false;
}
}
</script>

使用Java代码来计算,代码如下:

<%
String operator=request.getParameter("operator");
int n1=Integer.parseInt(request.getParameter("n1"));
int n2=Integer.parseInt(request.getParameter("n2"));
int result=0;
if("+".equals(operator)){
result= n1+n2;
}
else if("-".equals(operator)){
result=n1-n2;
}
else if("*".equals(operator)){
result=n1*n2;
}
else {
result=n1/n2;
}
request.setAttribute("n1", n1);
request.setAttribute("n2", n2);
request.setAttribute("result", result); //往request作用域里放一个值
request.getRequestDispatcher("calculate.jsp").forward(request,response);
%>

form表单来写一个简单的页面,代码如下:

<form name="form" action="calculate_do.jsp" method="post" >
<input name="n1" value="<%= request.getAttribute("n1")==null?"":request.getAttribute("n1") %>">
<select name="operator">
<option value="+" <%= "+".equals(operator)?"selected":"" %>>+</option>
<option value="-" <%= "-".equals(operator)?"selected":"" %>>-</option>
<option value="*" <%= "*".equals(operator)?"selected":"" %>>*</option>
<option value="/" <%= "/".equals(operator)?"selected":"" %>>/</option>

</select>
<input name="n2" value="<%= request.getAttribute("n2")==null?"":request.getAttribute("n2") %>">
<input type="submit" value="=" onclick="return check();" >
<input name="result" value="<%= request.getAttribute("result")==null?"":request.getAttribute("result") %>">
</form>

源代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'calaulate.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript">

function check(){
if(form.n1.value==""&&form.value.n2==""){
window.alert("值不能为空");
return false;
}
if(isNaN(form.n1.value)&&isNaN(form.n2.vavlue)){
window.alert("请确认输入的是否是数字!");
return false;
}
if(form.operator.value=="/"&&form.n2.value=="0"){
window.alert("除数不能为0,请重新输入! ");
return false;
}
}
</script>

</head>

<body>
<%
String operator=request.getParameter("operator");
int n1=Integer.parseInt(request.getParameter("n1"));
int n2=Integer.parseInt(request.getParameter("n2"));
int result=0;
if("+".equals(operator)){
result= n1+n2;
}
else if("-".equals(operator)){
result=n1-n2;
}
else if("*".equals(operator)){
result=n1*n2;
}
else {
result=n1/n2;
}
request.setAttribute("n1", n1);
request.setAttribute("n2", n2);
request.setAttribute("result", result); //往request作用域里放一个值
request.getRequestDispatcher("calculate.jsp").forward(request,response);
%>

<form name="form" action="calculate_do.jsp" method="post" >
<input name="n1" value="<%= request.getAttribute("n1")==null?"":request.getAttribute("n1") %>">
<select name="operator">
<option value="+" <%= "+".equals(operator)?"selected":"" %>>+</option>
<option value="-" <%= "-".equals(operator)?"selected":"" %>>-</option>
<option value="*" <%= "*".equals(operator)?"selected":"" %>>*</option>
<option value="/" <%= "/".equals(operator)?"selected":"" %>>/</option>

</select>
<input name="n2" value="<%= request.getAttribute("n2")==null?"":request.getAttribute("n2") %>">
<input type="submit" value="=" onclick="return check();" >
<input name="result" value="<%= request.getAttribute("result")==null?"":request.getAttribute("result") %>">
</form>

</body>
</html>

在一个jsp页面内实现简单计算器的更多相关文章

  1. 分别应用include指令和include动作标识在一个jsp页面中包含一个文件。

    分别应用include指令和include动作标识在一个jsp页面中包含一个文件. hello.jsp <%@ page language="java" import=&qu ...

  2. 在一个jsp页面中引用另一个jsp文件的路径的问题

    为了提高代码的重用性,经常需要在一个jsp页面中引用另一个jsp文件的代码.关于引用时的路径的问题.下面只介绍动态引用的,我觉得静态引用的应该也一样. 相对路径: 一.在同一个文件夹下,a.jsp中引 ...

  3. el: 在jsp页面内使用函数判断子字符串

    e.g. <c:forEach items="${datas}" var="data"> <c:if test="${not fn: ...

  4. 在一个JSP页面中包含另一个JSP页面的三种方式

    转载自://http://blog.163.com/neu_lxb/blog/static/179417010201121343132918/ (1)include指令          includ ...

  5. jsp页面元素和内置对象

    java server pages其根本是一个简化的servlet设计.实现了在java当中使用html标签.javaEE标准 一.页面元素 1.静态内容 html.js.css相关标签元素. 2.指 ...

  6. JSP页面以及简单的指令

    —JSP(Java Server Pages)是指: —在HTML中嵌入Java脚本语言 —由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本语言命令 —然后将生成的整个页面信息返回给客户端 页 ...

  7. JSP页面以及JSP九大隐式对象

    €JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. €JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...

  8. 在JSP页面中调用另一个JSP页面中的变量

    在jsp学习中,经常需要在一个jsp页面中调用另一个jsp页面中的变量,下面就这几天的学习,总结一下. jsp页面之间的变量调用有多种方法: 1.通过jsp的内置对象—request对象获取参数: ( ...

  9. jsp页面九大内置对象

    资源转载自网上,不可用于商用,学习可以.内置对象又叫隐式对象/隐含对象是由WEB容器加载的一组类的实例,不需要预先声明就可以在脚本代码和表达式中随意使用的对象. 这九大隐式对象可以按照期作用分类为: ...

随机推荐

  1. 齐治运维堡垒机后台存在命令执行漏洞(CNVD-2019-17294)分析

    基本信息 引用:https://www.cnvd.org.cn/flaw/show/CNVD-2019-17294 补丁信息:该漏洞的修复补丁已于2019年6月25日发布.如果客户尚未修复该补丁,可联 ...

  2. shell的用处到底大不大

    我曾在智联招聘等网站上搜寻有关shell脚本员的职位,与C++.JAVA等热门语言相比,冷清很多.看上去似乎招shell程序员的公司比较少.是不是公司不重视或者是很少用到shell这个东东呢?     ...

  3. [笨方法学python]习题51自动化测试笔记

    习题51 本节自动化测试部分看不大懂,自己每步都打印出来,帮助理解.(代码标红部分为自己加入调试为打印变量值所用) tests/tools.py from nose.tools import * im ...

  4. 简单函数编写_strcpy、_stroverchg、_strcmp

    字符串复制函数 void _strcpy(char *tar, const char * res) { char *p = tar; while(assert(tar && res), ...

  5. Linux下程序下载

    每个开发板/PC机都有硬盘(ROM,read only memory,只读存储器)和运行内存(RAM,random access memory,随机存取存储器).其中Nand/Nor flash相当于 ...

  6. Java多线程(七):ReentrantLock

    加锁和解锁 我们来看下ReentrantLock的基本用法 ThreadDomain35类 public class ThreadDomain35 { private Lock lock = new ...

  7. android实现倒计时,最简单实现RecyclerView倒计时+SwipeRefreshLayout下拉刷新

    先上效果图: RecyclerView + SwipeRefreshLayout 实现倒计时效果 MainActivity.java package top.wintp.counttimedemo1; ...

  8. c语言进阶3-有参函数

    一.       有参函数的定义 有参函数的定义格式如下: 类型标识符  函数名(形式参数表列) { 语句: } 如 void fun(int a,int b) { printf(“a+b=%d”,a ...

  9. C#3.0新增功能09 LINQ 基础07 LINQ 中的查询语法和方法语法

    连载目录    [已更新最新开发文章,点击查看详细] 介绍性的语言集成查询 (LINQ) 文档中的大多数查询是使用 LINQ 声明性查询语法编写的.但是在编译代码时,查询语法必须转换为针对 .NET ...

  10. 如何利用Azure Automation以及Tag自动开关VM

    这是本博客第一篇技术相关的小贴士,在这里我不会详细介绍所涉及的技术组件的具体使用细节,因为我相信这些大家都可以通过官方文档了解到.如果你是一个看了官方文档依然一脸茫然的IT小白,个人建议是先从基础重新 ...