<%@ page contentType="text/html;charset=gb2312" %>
 <html>
 <h1>计算器</h1>
 <br>
 <hr>
 <head>
 <script language="javascript">
 //写一个函数用来验证用户是不是空提交
 function checkNum()
 {
 <!--
     //判断num1是否为空
     if (form1.num1.value == "") {
         window.alert("num1不能为空!");
         return false;
     }

     //验证是否为一个数
     if (Math.round(form1.num1.value) != form1.num1.value) {
         window.alert("num1不是一个整数");
         return false;
     }
 -->
 }
 </script>
 </head>
 <body>
 <%
 //得到第一个数
     String g_num1 = request.getParameter("num1");
     String g_num2 = request.getParameter("num2");
     String flag = request.getParameter("flag");
     //res要放在外边定义,不然下面的<%=res%>访问不到
         ;
     if (g_num1 != null && g_num2 != null && flag != null) {
         int num1 = Integer.parseInt(g_num1);
         int num2 = Integer.parseInt(g_num2);
         res = ;

         if (flag.equals("+")) {
             res = num1 + num2;
         } else if (flag.equals("-")) {
             res = num1 - num2;
         } else if (flag.equals("*")) {
             res = num1 * num2;
         } else {
             res = num1 / num2;
         }
         String result = res + "";
     }
 %>
 <form name="form1", action="myCal.jsp">
 please input the first number:<input type="text" name="num1"><br>
 <select name="flag">
 <option value=+>+</option>
 <option value=->-</option>
 <option value=*>*</option>
 <option value=/>/</option>
 </select>
 <br>
 please input the second number:<input type="text" name="num2"><br>
 <input type="submit" value="Calculate", onclick="return checkNum()"><br>
 </form>
 <hr>
 结果为<%=res%>
 </body>
 </html>

简单计算器

//向一个界面发送数据可以用

session: 在服务器为客户端存放的一块内存。类型:<string, object>(名字,值)

session占服务器内存,一般不往session,保持用户信息,保持购物车

JSP的动作元素:

<jsp:include page=""/>(标记) 与  <% @include file="test.jsp" %> (指令)

include指令时在JSP容器转换JSP时将包含的内容插入到当前页面文件,也称静态包含;

include标记是在JSP页面执行过程中将包含页面的执行结果插入到当前页面的执行结果中,也称动态包含。

文件上传:

   <form action="uploadProcess.jsp" enctype="multipart/form-data" method="post">
         选择文件:<input type="file" name="fname">
         <input type="submit" value="上传">
     </form>
 <!-- 通过调用request对象的getInputStream()方法获得输入流对象,然后从输入流中读取数据并保存在文本文件upload.txt中。   -->
 <%
          ServletInputStream sis = request.getInputStream();
          String filePath = application.getRealPath("/upload.text");
          FileOutputStream fos = new FileOutputStream(filePath);
          int len = sis.read();
          System.out.println(filePath);
          ) {
              fos.write(len);
              len = sis.read();
          }
       %>

文件下载:

 <%
            response.setContentType("application/octet-stream");
            response.setHeader("Content-Disposition", "attachment;filename=upload.jsp");

            InputStream is = application.getResourceAsStream("upload.jsp");
            ServletOutputStream os = response.getOutputStream();
            int len = is.read();
            ) {
                os.write(len);
                len = is.read();
            }
            os.close();
            is.close();
     %>

实现验证码

 <%
         response.setContentType("image/jpeg");

         //生成一个图片
         ;
         ;
         String sourceNum = "abcdefghijklmnopqrstuvwxyz";
         String sigleNum = "";
         String checkNum = "";
         ; i < ; i++) {
             ) % ;
             sigleNum = sourceNum.substring(index, index + );
             checkNum += sigleNum;
         }
         BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
         Graphics g = image.getGraphics();
         g.setColor(Color.white);
         g.fillRect(, , width, height);
         g.setColor(Color.black);
         g.setFont());
         g.drawString(checkNum, , );

         ; i < height; i = i + ) {
             ; j < ; j++) {
                 int y = (int) (width * Math.random() % width);
                 g.drawLine(y, i, y, i);
             }
         }

         g.dispose();
         //输出到客户端
         ImageIO.write(image, "JPEG", response.getOutputStream());
      %>

JSP学习记录的更多相关文章

  1. 我的Spring学习记录(五)

    在我的Spring学习记录(四)中使用了注解的方式对前面三篇做了总结.而这次,使用了用户登录及注册来对于本人前面四篇做一个应用案例,希望通过这个来对于我们的Spring的使用有一定的了解. 1. 程序 ...

  2. Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客

    ==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...

  3. Struts2学习记录-Value Stack(值栈)和OGNL表达式

    仅仅是学习记录.把我知道的都说出来 一.值栈的作用 记录处理当前请求的action的数据. 二,小样例 有两个action:Action1和Action2 Action1有两个属性:name和pass ...

  4. jsp学习:jsp学习阶段性总结2019.9.21

    Jsp学习 jsp语法格式: 脚本程序:<% 代码片段 %> jsp声明:<%! declaration; [ declaration; ]+ ... %> 表达式:<% ...

  5. 学习记录-java基础部分(一)

    学习记录-java基础部分(一) 参考:GitHub上的知名项目:javaGuide : https://github.com/Snailclimb/JavaGuide/blob/master/doc ...

  6. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  7. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  8. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  9. JSP学习网站

    JSP学习网站 http://www.yiibai.com/jstl/ http://www.w3cschool.cc/jsp/jsp-jstl.html

随机推荐

  1. 思路:controller层:后台如何取值 前端如何给name赋值 例如是id赋值还是自己随意定义

    思路:controller层:后台如何取值 前端如何给name赋值 例如是id赋值还是自己随意定义

  2. node.js 高级功能

    一.Web 模块 1.http 请求(client.js) var http = require('http'); // 用于请求的选项 var options = { host: 'localhos ...

  3. .net core 2.0 Autofac

    参考自 https://github.com/VictorTzeng/Zxw.Framework.NetCore 安装Autofac,在`project.csproj`加入 <PackageRe ...

  4. luogu P1077 摆花

    这道题看似好难,但是其实很简单 先把题目中所让你设的变量都设好,该输入的都输入 你会发现这道题好像成功了一半,为什么呢??? 因为设完后你会发现你不需要再添加任何变量,已经足够了. 可能最难的地方,就 ...

  5. BZOJ2040[2009国家集训队]拯救Protoss的故乡——模拟费用流+线段树+树链剖分

    题目描述 在星历2012年,星灵英雄Zeratul预测到他所在的Aiur行星在M天后会发生持续性暴雨灾害,尤其是他们的首都.而Zeratul作为星灵族的英雄,当然是要尽自己最大的努力帮助星灵族渡过这场 ...

  6. POJ 3264-Balanced Lineup-RMQ问题

    裸RMQ问题 #include <cstdio> #include <algorithm> #include <cstring> using namespace s ...

  7. git 提交报错 : The file will have its original line endings in your working directory.

    报错现象 git  add . 的时候发现此报错 报错分析 看情况应该是不同系统对换行的识别不到位导致的 就常识来说文件是在windows下生成的所以换行和 linux 确实不同可能是因为这个导致的 ...

  8. Markdown 使用技巧

    懒得复制,直接贴网页吧 懒得复制,直接贴网页吧*2 懒得复制,直接贴网页吧*3

  9. scrapy 基本命令

    创建scrapy项目 scrapy startproject project_name 创建爬虫文件 scrapy genspider [-t template] <name> <d ...

  10. Tbox在整车CAN网络的位置与作用

    我们讲到了智能车载娱乐系统的5个基本特征: 基本来说, 当今的智能车机基本有以下几个特点: 基于智能操作系统: Android, Yunos, Linux等 基本都是虚拟按键, 较少用实体按键 具备外 ...