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
随机推荐
- codeforces285B
Find Marble CodeForces - 285B Petya and Vasya are playing a game. Petya's got n non-transparent glas ...
- ZIP压缩包加密破解
python多线程破解zip文件,废话不多说直接上代码 # -*- coding: UTF-8 -*- #使用多线程和接受参数的形式去破解指定的zip文件 #python3 zip_file_cack ...
- P2141 珠心算测验
P2141 题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及. 某学校的珠心算老师采用一种快速 ...
- SPOJ QTREE-Query on a tree-树链剖分-边权
用每个点代表父节点到此点的边.建立一一映射后就可以用点权的方法处理了. 注意的是路径两端节点的处理 #include <cstdio> #include <algorithm> ...
- 图灵机器人API接口
调用图灵API接口实现人机交互 流程一: 注册 图灵机器人官网: http://www.tuling123.com/ 第一步: 先注册, 然后创建机器人, 拿到一个32位的key 编码方式 UTF-8 ...
- 图片文字识别aip的一个小Demo
目前接触到了一个新的内容,识别图片上的文字,以下是这个Demo 首先需要在需要在百度云-管理中心创建应用 地址:http://console.bce.baidu.com/ai/#/ai/ocr/app ...
- IDEA添加配置文件到classpath
突然发现有一种简单的办法: IDEA 的 Mark Directory as 右键项目中的一个文件夹,会出现目录[Mark Directory as]选择[Resources Root] 实现下面原文 ...
- MT【310】均值不等式
(2014北约自主招生)已知正实数$x_1,x_2,\cdots,x_n$满足$x_1x_2\cdots x_n=1,$求证:$(\sqrt{2}+x_1)(\sqrt{2}+x_2)\cdots(\ ...
- android 通过修改图片像素实现CircleImageView
CircleImageView实现方法有很多种,各有优缺点,因此需要按照不同的场景使用.我们今天使用修改图片像素的方法实现CircleImageView,主要知识点无非是勾股定理和点到圆形的距离. 素 ...
- 「九省联考 2018」IIIDX 解题报告
「九省联考 2018」IIIDX 这什么鬼题,送的55分要拿稳,实测有60? 考虑把数值从大到小摆好,每个位置\(i\)维护一个\(f_i\),表示\(i\)左边比它大的(包括自己)还有几个数可以选 ...