<%@ 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. Qt 网格布局

    把十六个button放到网格布局的界面上 #include "mainwindow.h" #include <QApplication> #include<QtW ...

  2. 来一波全套向量运算(C++)

    //头文件要求 #include <cmath> struct P{long long x, y;}p[N]; //加法 P operator +(P x, P y){return (P) ...

  3. Hdoj 4508.湫湫系列故事——减肥记I 题解

    Problem Description 对于吃货来说,过年最幸福的事就是吃了,没有之一! 但是对于女生来说,卡路里(热量)是天敌啊! 资深美女湫湫深谙"胖来如山倒,胖去如抽丝"的道 ...

  4. 如何将Drawable转为Bitmap?

    本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术.本文将讲解如何将Drawable转为Bitmap ...

  5. pycharm 中的 全局搜索(ctrl+shift+f) 功能无法使用的原因

    全局搜索的时候Ctrl+Shift+F按键失灵,有的时候可以,有时又不行了,百思不得其解. 在網上搜索很多人說是搜狗输入法的快捷键冲突了,但是我的电脑用的是微软自带的输入法 后来打开微软的输入法设置发 ...

  6. NOIP引水入城(dfs)

    为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施.水利设施有两种,分别为蓄水厂和输水站.蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的蓄水池中. 因此,只有与湖泊毗邻的第1 行的 ...

  7. SFTP多文件上传,删除

    公司项目中需要把项目的相关文件上传到服务器的tomcat中,需要在项目中进行以下几步操作: 1.添加项目信息,包括名称,描述,服务器ip,sftp的用户名,密码,端口号等,存在配置,部署,删除等操作 ...

  8. js 获取对象属性个数

    js 获取对象属性个数 方法一: var attributeCount = function(obj) { var count = 0; for(var i in obj) { if(obj.hasO ...

  9. GNOME 3.28 启用桌面图标

    原由 GNOME 3.28合并了移除桌面图标支持 Nautilus从此不在支持桌面图标,直到找到新的解决方案 Issues地址:https://gitlab.gnome.org/GNOME/nauti ...

  10. A1072. Gas Station

    A gas station has to be built at such a location that the minimum distance between the station and a ...