JSP(了解即可)

文章内容输出来源:拉勾教育JAVA就业训练营
总目录跳转链接:总目录
如有侵权请联系本人
邮箱:xiaogueika@tom.com

一、JSP的概述(熟悉)

JSP是Java Server Pages的简称,跟Servlet一样可以动态生成HTML响应, JSP文件命名为xxx.jsp。
与Servlet不同,JSP文件以HTML标记为主,然后内嵌Java代码段,用于处理动态内容。

1. JSP示例

<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
	<head>
		<title>Hello Time</title>
	</head>
	<body>
		现在的时间是:<%= new Date()%>
	</body>
</html>

二、 JSP的语法(熟悉)

1. JSP语法结构

  • 声明区
  • 程序代码区
  • 表达式
  • 注释
  • 指令和动作
  • 内置对象
1.1 声明区

基本语法:<%! %>
说明:可以定义全局变量、方法、类。

<%!
	int i;
	public void setName(){… …}
%>
1.2 程序代码区

基本语法:<%程序代码区%>
说明:可以定义局部变量以及放入任何的Java程序代码。

	int j;
	for (int k=0; k<10; k++) {
		… …
	}
1.3 表达式

基本语法:<%=… …%>
说明:可以输出一个变量或一个具体内容,但=后面必须是字符串变量或者可以被转换成字符串的表达式。
注意:不需要以;结束,只有一行

<%=“hello world”%>
<%=i+1%>
1.4 注释
格式:
<!--… …--> HTML文件的注释,浏览器可以查看到
<%--… …--%> JSP文件的注释,浏览器看不到
<%//… …%> Java语言中的单行注释,浏览器看不到
<%/*… …*/%> Java语言中的多行注释,浏览器看不到
注释的内容不会被执行
1.5 指令和动作

指令格式: <%@指令 属性=“属性值”%>
指令的属性可以设定多个。
JSP常用指令有:pagetaglibinclude

1.5.1 page指令

page指令用于导包和设置一些页面属性,常用属性如下:

页面属性说明
import导入相应的包,惟一允许在同一文档中多次出现的属性
contentType设置Content-Type响应报头,标明即将发送到浏览器的文档类型
pageEncoding设置页面的编码
language指定页面使用的语言
session控制页面是否参与HTTP会话
errorPage处理当前页面中抛出但未被捕获的任何异常
isErrorPage当前页是否可以作为其他页面的错误处理页面
1.5.2 taglib指令

taglib指令用来扩展JSP程序的标签元素,引入其他功能的标签库文件。

<!-- prefix属性用于指定库前缀 -->
<!-- uri属性用于指定库的标识 -->
<%@taglib uri=“tagLibary” prefix=“prefix”%>
1.5.3 include指令

include指令用于引入另一个JSP程序或HTML文件等,格式如下:

<%@include file=“被包含的文件地址%>

JSP引擎会在JSP文件的转换时期先把file属性设定的文件包含进来,然后开始执行转换及编译的工作。

1.5.4 jsp:include/jsp:param
  • jsp:include动作用于引入另一个JSP程序或HTML文件等。
  • 执行到include时,被include的文件才会被编译。
  • 如果include的是jsp文件,那它不会被转换成Servlet文件。
<jsp:include page=“URLSpec” flush=“true”/>
<jsp:include page=“URLSpec” flush=“true”>
	<jsp:param name=“key” value=“value”/>
</jsp:include>
1.5.5 include指令和include动作的区别
  • include指令是在JSP程序的转换时期就将file属性所指定的程序内容嵌入再编译执行(静态包含)。
  • include动作在转换时期是不会被编译的,只有在客户端请求时期被执行到才会被动态的编译载入(动态包含,推荐)。
1.5.6 jsp:forward/jsp:param
  • forward动作用于在JSP中实现转发,将请求转发到另一个指定的JSP程序或者Servlet中处理。
<jsp:forward page=“urlSpec” flush=“true”/>
<jsp:forward page=“urlSpec”>
	<!-- 用于指定参数和其对应的值 -->
	<jsp:param name=“key” value=“value”/>
</jsp:forward>
1.6 JSP内置对象(重点)

在JSP程序中有9个内置对象由容器为用户进行实例化,程序员可以不用定义就直接使用这些变量。
在JSP转换成Servlet后,会自动追加这些变量的定义,使用内置对象可以简化JSP的开发。

对象名称

对象变量对象类型作用
outJSPWriter输出流
requestHttpServletRequest请求信息
responseHttpServletResponse响应信息
sessionHttpSession会话
applicationServletContext全局的上下文对象
pageContextPageContextJSP页面上下文
pageObjectJSP页面本身
configServletConfigServlet配置对象
exceptionThrowable捕获网页异常
1.6.1 out内置对象

out内置对象是一个缓冲的输出流,用来给客户端输出信息。

方法声明功能介绍
void println(String x)向客户端输出各种类型数据
void newLine()输出一个换行符
void close()关闭输出流
int getBufferSize()返回缓冲区的大小
int getRemaining()返回缓冲区中未使用的字节数
void flush()输出缓冲区里的数据
void clearBuffer()清除缓冲区里的数据,同时把数据输出到客户端
void clear()清除缓冲区里的数据,但不把数据输出到客户端
1.6.2 request内置对象

request对象封装的是调用JSP页面的请求信息,它是HttpServletRequest接口的一个实例。
该对象的属性值只在一个请求中保存。

方法声明功能介绍
String getMethod()返回客户端向服务器端传送数据的方式
String getParameter(String name)返回客户端向服务器端传送的参数值
String[] getParameterValues( String name)获得指定参数的所有值
String getRequestURI()获得请求地址
String getRemoteAddr()返回发送请求的客户端或最后一个代理的IP地址
int getRemotePort()返回发送请求的客户端或最后一个代理的端口号
String getServerName()获取服务器的名字
int getServerPort()获取服务器端的端口
void setAttribute(String name,Object o)在此请求中存储属性。属性在请求之间重置
Object getAttribute(String name)将指定属性的值作为对象返回,若不存在则返回空值
1.6.3 response内置对象

response对象用于给客户端相应输出处理结果,它是HttpServletResponse接口的一个实例。
经常用于设置HTTP标题,添加cookie、设置响应内容的类型和状态、发送HTTP重定向和编码URL。

方法声明功能介绍
void addCookie(Cookie cookie)添加一个Cookie对象,用于在客户端保存特定的信息
void addHeader(String name, String value)添加HTTP头信息,该Header信息将发送到客户端
boolean containsHeader(String name)判断指定名字的HTTP文件头是否存在
void sendRedirect(String location)重定向JSP文件
void setContentType(String type)设置类型与编码方式
1.6.4 session内置对象

懒得加了。你兴趣的留言。我再补充

1.6.5 application内置对象
1.6.6 pageContext内置对象
1.6.7 exception内置对象
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值