1. JSP入门
1. 概念:Java Server Pages:Java服务器端页面,可以理解为一个特殊的页面,其中既可以定义html标签,又可以定义java代码,为了简化书写
2. 原理:本质上就是一个Servlet
3. 脚本:JSP定义Java代码的方式
1. <% 代码 %>:定义的java代码,在service方法中,service方法可以定义什么,该脚本中就可以定义什么
2. <%! 代码 %>:定义的java代码,在JSP转换后的java类的成员位置(不推荐使用,容易引发线程安全问题)
3. <%= 代码 %>:定义的java代码,会输出到页面上,输出语句中可以定义什么,该脚本中就可以定义什么(也是在service方法里面)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%--1. <% 代码 %>:定义的java代码,在service方法中,service方法可以定义什么,该脚本中就可以定义什么--%>
<%
System.out.println("hello jsp!");
int i = 5;
%>
<%--2. <%! 代码 %>:定义的java代码,在JSP转换后的java类的成员位置(不推荐使用,容易引发线程安全问题)--%>
<%!
int i = 3;
%>
<%--3. <%= 代码 %>:定义的java代码,会输出到页面上,输出语句中可以定义什么,该脚本中就可以定义什么(也是在service方法里面)--%>
<%=
"hi~jsp"
%>
<%--输出的是5,因为都在service方法中,就近原则--%>
<%= i %>
</body>
</html>
2. JSP
1. 注释
(1)标记语言注释
1. 格式:<!-- -->
2. 缺点
1. 会送发到客户端
2. 不能注释java代码
(2)JSP注释(推荐使用)
1. 格式:<%-- --%>
2. 优点
1. 不会发送到客户端
2. 能注释java代码
2. 三大指令
(1)指令:配置JSP页面的属性或者导入一些额外的内容
(2)格式:<%@ 指令名称 属性名="属性值"%>
(3)分类
1. page:配置JSP页面属性
2. include:静态包含,导入页面的资源文件
3. taglib:导入jar包等资源
(4)page指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
1. contentType:相应的文本类型是html,让浏览器使用utf-8解码
2. language:指定JSP使用的语言。只有java
3. <%@ page import="java.io.PrintWriter" %>:import:导入包
4. errorPage:JSP配置错误的页面,当页面发生异常时,跳转到指定的页面
1. 【注】一般在开发完成后,会在web.xml中配置整个项目的错误页面
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
5. isErrorPage:是否是错误页面
1. true:是错误页面,可以使用内置对象exception
2. false:不是错误页面
<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="/500.jsp" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
int i = 1/0;
%>
</body>
</html>
=======================================================================================
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
exception.printStackTrace();
%>
<h1>服务器正忙,请您稍后访问</h1>
</body>
</html>
(5)include指令
1. 作用:页面包含,导入页面的资源文件
2.【注意】包含后,只会存在一个.class文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%@include file="index.jsp"%> <%-- 包含index.jsp页面的部分 --%>
<h1>demo02页面的部分</h1>
</body>
</html>
(6)taglib指令
1. 作用:导入资源
2. 示例: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3. 6个动作标签
(1)动作标签:替换java代码,简化书写,提高可读性
(2)<jsp:useBean>
:使用一个id和一个给定作用范围和同一个id的JavaBean相关联
(3)<jsp:setProperty>
:设置JavaBean的属性值
(4)<jsp:getProperty>
:获取JavaBean的属性值
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
People people = new People();
people.setName("张三");
people.setAge(13);
String name = people.getName();
int age = people.getAge();
out.write(name);
out.write(age + "");
%>
<jsp:useBean id="p" class="demo.People">
<jsp:setProperty name="p" property="name" value="李四"></jsp:setProperty>
<jsp:setProperty name="p" property="age" value="14"></jsp:setProperty>
<jsp:getProperty name="p" property="name"></jsp:getProperty>
<jsp:getProperty name="p" property="age"></jsp:getProperty>
</jsp:useBean>
</body>
</html>
(5)<jsp:include>
:动态包含,可以把一个公共页面引进来
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%@include file="index.jsp"%>
<jsp:include page="index.jsp"></jsp:include>
</body>
</html>
(6)<jsp:forword>
:请求转发,接受用户输入并将请求分派给另一页面
(7)<jsp:params>
:传递请求参数
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<jsp:forward page="index.jsp">
<jsp:param name="msg" value="hello!"></jsp:param>
</jsp:forward>
</body>
</html>
4. JavaBean
(1)概念:一种符合特点规范的Java类
(2)规范
1. 私有所有成员变量
2. 提供公共的getter,setter方法
3. 提供空参构造
(3)包的写法
1. domain
2. pojo
3. beans
5. 9个内置对象
(1)在JSP页面中不需要创建,直接使用的对象
(2)分类
变量名 原始类型 作用
pageContext pageContext 当前页面共享数据,还可以获取其他8个内置对象
request HttpServletRequest 一次请求访问的多个资源(转发)
session HttPSession 一次会话的多个请求间
application ServletContext 所有用户共享数据
response HttpServletResponse 响应对象
page this 当前页面对象
out JspWriter 数据输入到页面上
config ServletContext Servlet的配置对象
exception Throwable 异常对象