这篇文章主要为大家展示了“Web中Jsp说什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Web中Jsp说什么”这篇文章吧。
Web基础了解版-Jsp
Jsp
Jsp全称Java Server Pages,也就是在我们JavaWeb中的动态页面。
Jsp能够以HTML页面的方式呈现数据,是一个可以嵌入Java代码的HTML。
Jsp其本质就是一个Servlet。Servlet能做的事情JSP都能做。
Jsp必须运行在服务器中,不能直接使用浏览器打开。
Jsp是Web网页的技术标准,主要语法组成包括:指令,html模板元素,脚本片段(小脚本),表达式,声明,注释,后缀是*.jsp。
Jsp主要负责显示及获取数据
Jsp是动态页面,html是静态页面
|
动态页面 |
静态页面 |
---|
运行原理 |
通过服务器解析后,将数据在浏览器中显示 |
直接在浏览器中解析运行 |
维护成本 |
较低,可以修改后台数据,进而影响页面中的数据 |
较高,必须将修改后的页面覆盖原页面 |
数据库 |
可以连接数据库 |
不可连接数据库 |
访问速度 |
较慢 |
较快 |
书写代码 |
可以书写java代码 |
不能书写java代码 |
注意事项
1、jsp页面是一个类似于html的一个页面。 jsp直接存放到WebContent目录下,和html一样访问jsp的时候,也和访问html一样
2、jsp的默认编码集是iso-8859-1,修改jsp的默认编码为UTF-8
JSP运行原理
以后在访问同一个jsp文件
如果文件未改变,不会被翻译和编译
如果文件改变,会翻译和编译
Jsp基本语法
指令
模板元素
代码脚本片段
<% int i = 0;%>
表达式
<%=i%>
声明
注释
java:单行注释://,多行注释:/**/
html:<!-- -->
jsp:<%-- --%>
|
JSP注释 |
Java注释 |
HTML注释 |
---|
JSP页面 |
可见 |
可见 |
可见 |
Java代码 |
不可见 |
可见 |
可见 |
浏览器 |
不可见 |
不可见 |
可见 |
Jsp常用指令
语法格式
page指令
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
属性
language:语言,值为java且仅java。
contentType:与response.setContentType()作用一致,设置浏览器编码。
pageEncoding:设置Jsp页面的编码字符集。
import:导包
isErrorPage:设置当前页面是否为错误页面,默认值"false"。
errorPage:设置当前页面错误时的跳转目标页面。错误需要在_jspService()中才可以捕获。
include指令:静态包含
<%@include file="被包含文件的路径" %>
taglib指令
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Jsp动作标签
JSP动作标签与HTML标签不同,HTML标签由浏览器来解析,而JSP动作标签需要服务器(Tomcat)来运行。
转发动作标签
作用:在页面中用于转发操作
<jsp:forward page="target.jsp"></jsp:forward>
转发子标签;在转发时设置请求参数,通过request.getParameter()在目标页面获取请求参数。
<jsp:forward page="target.jsp">
<jsp:param value="paramValue" name="paramName"/>
</jsp:forward>
注意:如果转发动作标签不需要设置请求参数,该标签开始与结束标签内部,不允许书写任何内容,(包括空格)
动态包含动作标签
作用:动态包含,将其他页面包含到当前页面中。
<jsp:include page="target.jsp"></jsp:include>
特点:被包含的文件同时会被翻译&编译。(先翻译,再包含)
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "target.jsp", out, false);
动态包含与静态包含的区别
|
@include指令 |
jsp:include标签 |
---|
特点 |
静态包含 |
动态包含 |
语法的基本形式 |
<%@ include file=”…”%> |
<jsp:include page=”…”/> |
包含动作发生的时机 |
翻译期间 |
请求期间 |
是否生成java文件 |
不生成 |
生成 |
合并方式 |
代码复制 |
合并运行结果 |
包含的内容 |
文件实际内容 |
页面输出结果 |
代码冲突 |
有可能 |
不可能 |
编译次数 |
1 |
包含的文件 + 1 |
适用范围 |
适用包含纯静态内容(CSS,HTML,JS),或没有非常耗时操作。或大量java代码的jsp |
包含需要传递参数。含有大量java代码,运算,耗时很长的操作。 |
Jsp九大隐式对象
JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明
pageContext
类型:PageContext
定义:代表页面域对象,用来代表整个JSP页面。
作用:
页面域对象
九大隐式对象的“大哥”,可以直接调用其他八大隐式对象。
在Servlet中获取方式:无。
session
类型:HttpSession
定义:代表浏览器与服务器之间的会话。
作用
session对象用来跟踪在各个客户端请求间的会话。
application
类型:ServletContext
定义:Servlet上下文,代表当前web应用。
Web容器在启动时,它会为每个Web应用程序都创建一个唯一对应的ServletContext对象,意思是Servlet上下文,代表当前Web应用。
作用
获取项目的上下文路径(带/的项目名):getContextPath()
获取虚拟路径所映射的本地真实路径:getRealPath(String path)
获取WEB应用程序的全局初始化参数(基本不用)
4. 获取Web应用初始化参数:application.getInitParameter("ParamName");
page
response
config
out
exception
九大内置对象,都是我们可以在【代码脚本】中或【表达式脚本】中直接使用的对象。
Jsp四大域对象
程序中的域对象,主要负责在不同web资源之间进行数据交换,(如:servlet和jsp之间的数据交换)。
域对象分析
每个域对象内部都维护了一个Map<String , Object>,域对象的共同方法。
设置属性到域中:void setAttribute(String key , Object value);
从域中获取指定的属性:Object getAttribute(String key);
移除域中指定属性:void removeAttribute(String key);
域对象有效性
域对象 |
作用范围 |
起始时间 |
结束时间 |
---|
pageContext |
当前JSP页面 |
页面加载 |
离开页面 |
request |
同一个请求 |
收到请求 |
响应 |
session |
同一个会话 |
开始会话 |
结束会话 |
application |
当前Web应用 |
Web应用加载 |
Web应用卸载
|
以上是“Web中Jsp说什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注天达云行业资讯频道!