一、简介
- JSP(全称Java Server Pages)是一种动态网页开发技术。
- JSP 技术是以 Java 语言作为脚本语言的,后缀名为 .jsp。
- JSP开发的WEB应用可以跨平台使用,既可以运行在 Linux 上也能运行在 Windows 上。
- JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
- JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
二、JSP 结构
三、JSP语法
程序段
脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。 语法格式: 
<% 代码片段 %>
示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSP脚本</title>
</head>
<body>
Hello World!<br/>
<%
out.println("你的 IP 地址 " + request.getRemoteAddr());
%>
</body>
</html>
JSP声明
一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。  
语法格式:
<%! declaration; [ declaration; ]+ … %>
示例:
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
JSP表达式
一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。
由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。
表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。 
格式:
<%= 表达式 %>
示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>AA</title>
</head>
<body>
<p>
今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>
示例 
JSP注释
JSP注释主要有两个作用:为代码作注释以及将某段代码注释掉。 注释内容不会被发送至浏览器甚至不会被编译
<%-- 该部分注释在网页中不会被显示–%>
JSP指令
JSP指令用来设置与整个JSP页面相关的属性
<%@ directive attribute=“value” %>

JSP控制流语句示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%! int fontSize=0; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h3>While 循环实例</h3>
<%while ( fontSize <= 3){ %>
<font color="green" size="<%= fontSize %>">
菜鸟教程
</font><br />
<%fontSize++;%>
<%}%>
</body>
</html>
四、JSP 表单处理
浏览器中使用 GET 和 POST 方法向服务器提交数据, GET方法是浏览器默认传递参数的方法
GET 方法 GET方法将请求的编码信息添加在网址后面,网址与编码信息通过"?"号分隔。如下所示:
http://www.runoob.com/hello?key1=value1&key2=value2
用get时,传输数据的大小有限制 (注意不是参数的个数有限制),最大为1024字节。
POST 方法 POST提交数据是隐式不可见的,GET是通过在url里面传递的(可以看一下你浏览器的地址栏)。
JSP使用getParameter()来获得传递的参数,getInputStream()方法用来处理客户端的二进制数据流的请求。
JSP 读取表单数据
1、getParameter(): 使用 request.getParameter() 方法来获取表单参数的值。
2、getParameterValues(): 获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkbox类型
3、getParameterNames():该方法可以取得所有变量的名称,该方法返回一个 Enumeration。
4、getInputStream():调用此方法来读取来自客户端的二进制数据流。
传递 Checkbox 数据到JSP程序
五、传递 Checkbox 数据到JSP程序
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<form action="main.jsp" method="POST" target="_blank">
<input type="checkbox" name="google" checked="checked" /> Google
<input type="checkbox" name="runoob" /> 菜鸟教程
<input type="checkbox" name="taobao" checked="checked" />
淘宝
<input type="submit" value="选择网站" />
</form>
</body>
</html>
main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h1>从复选框中读取数据</h1>
<ul>
<li><p><b>Google 是否选中:</b>
<%= request.getParameter("google")%>
</p></li>
<li><p><b>菜鸟教程是否选中:</b>
<%= request.getParameter("runoob")%>
</p></li>
<li><p><b>淘宝是否选中:</b>
<%= request.getParameter("taobao")%>
</p></li>
</ul>
</body>
</html>
总结:无论是checkbox还是radio或者其他的一些…,使用getParameter(“name”),若选中,获得的就是具体的value值,如果根本没有name表单元素,则返回值为null.如果什么都不选,则为"",注意空指针异常。
参考教程:菜鸟教程 边学边总结,学一点补充一点。
|