做网站哪些软件比较好,wordpress的留言功能,营销号,网站建设对百度推广的影响JSP JSP全称是Java Server Page#xff0c;基于Java和Servlet一样是sun公司推出的一套开发动态web资源的技术#xff0c;称为JSP/Servlet规范。JSP的本质其实就是一个Servlet。jsp是一种动态网页技术标准#xff0c;jsp部署在服务器上可以处理客户端的请求#xff0c;并根据…JSP JSP全称是Java Server Page基于Java和Servlet一样是sun公司推出的一套开发动态web资源的技术称为JSP/Servlet规范。JSP的本质其实就是一个Servlet。jsp是一种动态网页技术标准jsp部署在服务器上可以处理客户端的请求并根据请求内容动态生成HTML、XML或其他格式文档的Web网页再响应给客户端JSP的内容标签转成Java文件也是使用resp.getWriter().write去实现的 JSP和HTML以及Servlet的适用场景
类别适用场景HTML只能开发静态资源不能包含java代码无法添加动态数据。Servlet写java代码可以输出页面内容但是很不方便开发效率极低。JSP它包括了HTML的展示技术同时具备Servlet输出动态资源的能力。但是不适合作为控制器来用。
JSP执行过程 Jsp指令 使用指令需要jar包在Tomcat目录下的lib中的jsp-api.jar复制到IDEA即可 Page指令
属性描述bufferJspWriter用于输出JSP内容到页面上。告知引擎设定他的缓存大小。默认8kbautoFlush控制out对象的 缓存区contentType告知引擎响应正文的MIME类型。contentType“text/html;charsetUTF-8”errorPage指定当JSP页面发生异常时需要转向的错误处理页面isErrorPage告知引擎是否抓住异常。如果该属性为true页面中就可以使用exception对象打印异常的详细信息。默认值是falsepageEncoding告知引擎翻译jsp时从磁盘上读取jsp文件所用的码表。pageEncodingUTF-8相当于告知引擎用UTF-8读取JSPextends指定servlet从哪一个类继承import导入要使用的Java类info定义JSP页面的描述信息isThreadSafe指定对JSP页面的访问是否为线程安全language定义JSP页面所用的脚本语言默认是Javasession告知引擎是否产生HttpSession对象即是否在代码中调用request.getSession()。默认是trueisELIgnored告知引擎是否忽略EL表达式默认值是false不忽略isScriptingEnabled确定脚本元素能否被使用
Include指令
JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分会被同时编译执行。
Include指令的语法格式如下
% include file文件相对 url 地址 %Taglib指令 JSP API允许用户自定义标签一个自定义标签库就是自定义标签的集合。 Taglib指令引入一个自定义标签集合的定义包括库路径、自定义标签。 属性
uri外部标签的URI地址。 prefix使用标签时的前缀。
Taglib指令的语法
% taglib uriuri prefixprefixOfTag %Jsp隐式对象
什么是隐式对象呢它指的是在jsp中可以不声明就直接使用的对象。它只存在于jsp中因为java类中的变量必须要先声明再使用。其实jsp中的隐式对象也并非是未声明只是它是在翻译成.java文件时声明的。所以我们在jsp中可以直接使用。
隐式对象名称类型备注requestjavax.servlet.http.HttpServletRequestresponsejavax.servlet.http.HttpServletResponsesessionjavax.servlet.http.HttpSessionPage指令可以控制开关applicationjavax.servlet.ServletContextpageJava.lang.Object当前jsp对应的servlet引用实例configjavax.servlet.ServletConfigexceptionjava.lang.Throwablepage指令有开关outjavax.servlet.jsp.JspWriter字符输出流相当于printwriterpageContextjavax.servlet.jsp.PageContext很重要
PageContext对象 -它是JSP独有的对象Servlet中没有这个对象。本身也是一个域作用范围对象但是它可以操作其他3个域对象中的属性。而且还可以获取其他8个隐式对象。 生命周期 PageContext是一个局部变量所以它的生命周期随着JSP的创建而诞生随着JSP的结束而消失。每个JSP页面都有一个独立的PageContext。 四大域对象
域对象名称范围级别备注PageContext页面范围最小只能在当前页面用范围小开发中用的少ServletContext请求范围一次请求或当前请求转发用请求转发后再次转发时请求域丢失HttpSession会话范围多次请求组数据共享时使用多次请求共享数据但不同的客户端不能共享ServletContext应用范围最大整个应用都可以使用如果对数据有修改需要做同步处理少用
MVC模型
MModel模型用于封装数据封装的是数据模型VView视图用于显示数据动态资源用JSP页面静态资源用HTML页面CController控制器用于处理请求和响应
JSP代码演示
%--page指令--%
% page importjava.util.ArrayList %
% page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8languagejava errorPageerror.jsp
%%--include指令 可以包含其他页面--%
%include file/include.jsp %
!DOCTYPE html%--taglib可以引入外部标签库--%
%-- %taglib uri标签库的地址 prefix前缀名称 % --%
%taglib prefix %
html
headtitleJSP - Hello World/title
/head
body
%--这是jsp的注释格式--%%System.out.println(这个输出只能打印到控制台);out.println(这个才是输出到页面但是没有换行br);
%%--表达式--%
%相当于out.printlnbr%
% request.getAttribute(username”)%%--声明变量和方法--%
%--加代表声明的是成员变量不加代表的是声明局部变量声明方法必须加
--%
%! String s itzhuzhu;%
% String s itzhuzhu;// 隐式对象可以直接调用request.getSession();response.getWriter().write(隐式对象可以直接调用);pageContext.setAttribute(直接用,直接用);
%%// 定义数组ArrayListObject objects new ArrayList();
%
%s%%--定义方法--%
%! public void method() {System.out.println(s);
}%/body
/html