JSP学习记录
<%@ 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学习记录的更多相关文章
- 我的Spring学习记录(五)
在我的Spring学习记录(四)中使用了注解的方式对前面三篇做了总结.而这次,使用了用户登录及注册来对于本人前面四篇做一个应用案例,希望通过这个来对于我们的Spring的使用有一定的了解. 1. 程序 ...
- Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客
==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...
- Struts2学习记录-Value Stack(值栈)和OGNL表达式
仅仅是学习记录.把我知道的都说出来 一.值栈的作用 记录处理当前请求的action的数据. 二,小样例 有两个action:Action1和Action2 Action1有两个属性:name和pass ...
- jsp学习:jsp学习阶段性总结2019.9.21
Jsp学习 jsp语法格式: 脚本程序:<% 代码片段 %> jsp声明:<%! declaration; [ declaration; ]+ ... %> 表达式:<% ...
- 学习记录-java基础部分(一)
学习记录-java基础部分(一) 参考:GitHub上的知名项目:javaGuide : https://github.com/Snailclimb/JavaGuide/blob/master/doc ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- JSP学习网站
JSP学习网站 http://www.yiibai.com/jstl/ http://www.w3cschool.cc/jsp/jsp-jstl.html
随机推荐
- java 中的包概念
Java 中的包package, 就是电脑中的文件夹.我们平时在工作中,文件太多时,都会新建文件夹进行分类管理,java 中的包也是类似的道理,当我们的类太多时,也需要进行分类管理,这时我们就会把类文 ...
- 洛谷P1916 小书童——蚂蚁大战
题目背景 小A在你的帮助下,开始“刷题”,他在小书童里发现了一款叫“蚂蚁大战”(又称蛋糕保卫战)的游戏.(你懂得) 题目描述 游戏中会出现n只蚂蚁,分别有a1,a2……an的血量,它们要吃你的蛋糕.当 ...
- codeforces1101D GCD Counting 【树形DP】
题目分析: 蛮简单的一道题,对于每个数拆质因子,对于每个质因子找出最长链,在每个地方枚举一下拼接 代码: #include<bits/stdc++.h> using namespace s ...
- BZOJ5210 最大连通子块和 【树链剖分】【堆】【动态DP】
题目分析: 解决了上次提到的<切树游戏>后,这道题就是一道模板题. 注意我们需要用堆维护子重链的最大值.这样不会使得复杂度变坏,因为每个重链我们只考虑一个点. 时间复杂度$O(nlog^2 ...
- Quartus prime 16.0 in_system memory content editor 使用
前言 quartus提供了片内存储器的实时查看与修改,而不用编译工程,很棒.你可以方便的查看到存储器中到底存储了什么东西. 流程 1.打开: 2.主界面: 3.设置jtag项之后,查看即可. sign ...
- 【XSY1602】安全网络 树形DP 数学
题目大意 有一颗树,要为每个节点赋一个值\(l_i\leq a_i\leq r_i\),使得任意相邻的节点互素.然后对每个节点统计\(a_i\)在所有可能的情况中的和. \(n\leq 50,1\le ...
- pycharm 2016.1.4 软件注册码生成
昨天电脑忽然坏了,没办法只能电脑重做系统,最让我头疼的是面对新电脑的软件安装和配置..... 由于之前电脑很久没有升级过ide,所以pycharm一直停留在2016.1.4的版本,当我打开pychar ...
- Android 9.png图片的制作方法
在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式".9.png".这种图片是用于Android开发的一种 ...
- 每天一个Linux命令(05):tail命令
tail命令用于输入文件中的尾部内容.tail命令默认在屏幕上显示指定文件的末尾10行.如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题.如果没有指定文件或者文件名为"-&qu ...
- cobbler无人值守自动安装
无人值守安装(自动按定制的需求来批量安装linux系统) kickstart cobbler linux安装系统的方法: 1,光盘 把iso镜像刻录(windows下有类似nero这类软件)到光盘 ...