前言
预习并了解jsp
一、JSP概述
1.什么是JSP
JSP(Java Server Pages)是JavaWeb服务器端的动态资源。
其根本是一个简化的Servlet设计。
通常返回给客户端的就是一个HTML文本,客户端只要有浏览器就能浏览。
它与html页面的作用是相同的,显示数据和获取数据。
2.JSP的组成
JSP主要由6大元素组成:指令、注释、脚本、声明、表达式、静态内容。
①指令
page指令、include指令、taglib指令
格式:<%@java代码%>
常用属性: language、import、pageEncoding
②注释
分为2种:html的注释和脚本的注释
html注释:
<!--这是注释,但客户端可以查看到 -->
<%--这也是注释,但客户端查看不到,减轻了网络负担--%>
脚本注释:
// 单行注释
/*多行注释*/
③脚本
在jsp中可执行的java代码
格式:<% java代码%>
④声明
定义变量和方法
格式:<%! java代码%>
⑤表达式
<%= 表达式%>
不以分号未结束
⑥静态内容
HTML
JSP = html + Java脚本(代码片段) + JSP动态标签
- Servlet:
优点:动态资源,可以编程
缺点:不适合设置html响应体 - html:
优点:不用为输出html标签而发愁
缺点:html是静态页面,不能包含动态信息 - jsp:
优点:在原有html的基础上添加java脚本,构成jsp页面
二、JSP语法
1.JSP脚本
JSP脚本就是Java代码片段,它分为三种:
- <% … %>:代码段,Java语句
java代码片段(常用),用于定义0~N条Java语句(方法内能写什么,它就可以放什么) - <%= … %>:表达式
表达式的值会被输出到客户端
用于输出(常用),用于输出一条表达式(或变量)的结果 - <%! … %>:定义,定义成员
例如成员变量,方法等
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JSP演示</title>
</head>
<body>
<h1>JSP演示</h1>
<%
// Java语句
String s1 = "hello jsp";
// 不会输出到客户端,而是在服务器端的控制台打印
System.out.println(s1);
%>
<!-- 输出到客户端浏览器上 -->
输出变量:<%>s1 %><br/>
输出int类型常量:<%=100 %><br/>
输出String类型常量:<%="你好" %><br/>
<br/>
使用表达式输出常量是很傻的一件事,因为可以直接使用html即可,下面是输出上面的常量:<br/>
100<br/>
</body>
</html>
<!-- 它是jsp指令,也是一种特殊的标签! -->
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!-- java代码的片段 -->
<%
String path = request.getContextPath();//获取项目名
/*
http://localhost:8080/day11_1/
*/
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- 向页面输出basePath -->
<base href="<%=basePath%>">
<title>My JSP 'a.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%-- xxx --%>
<table border="1" align="center" width="60%">
<tr>
<td>姓名</td>
<td>年龄</td>
</tr>
<%
for(int i = 0; i < 10; i++) {
%>
<tr>
<td>张三</td>
<td>29</td>
</tr>
<%
}
%>
</table>
</body>
</html>