JSP相关

1.简介

① HTML擅长显示一个网页,但是它不能调用Java代码,是一个静态页面。
② Servlet擅长调用Java程序,但是Servlet不擅长显示一个页面。
③ HTML + Servlet = JSP
④ JSP:Java Server Pages
⑤ JSP集合HTML和Servlet的优点,既可以编写一个HTML页面,又可以调用Java程序。
⑥ JSP不能脱离服务器运行。
⑦ JSP本质上是一个Servlet。

2.运行原理解析

① 当我们访问一个JSP时,服务器会先将JSP文件转换成一个Java类,然后再调用Java类去处理我们的请求。而这个Java类就是一个Servlet。
② 可以发现在镜像服务器的work目录中,Tomcat自动生成了一个java文件,名字就叫做index_jsp.java,我们的jsp文件叫做index.jsp,这个文件就是从jsp翻译出来的java文件。
③ 可以发现index_jsp.java这个类继承了HttpJspBase,而HttpJspBase又继承了HttpServlet,所以从类的角度讲它就是一个Servlet。
④ 在总的web.xml文件中也发现了jsp相关的配置信息,由此可以发现,jsp就是Servlet。

3.基本语法

① 模板元素
- JSP中的模板元素指的就是JSP页面中的HTML代码。
- 模板元素中的内容会作为out.write()的参数,最终输出到页面中。
- 所以在JSP中可以完全按照在HTML页面中的方式来编写网页。
② 脚本片段
- 格式:<% %>
- 在脚本片段中可以直接编写Java代码
- 脚本片段中的内容会原封不动地复制到jsp对应的Java文件中指定位置。
- 在jsp页面中可一个编写多个脚本片段,但是要求多个脚本片段之间的结构完整。
- 脚本片段中的内容会复制到对应的java文件中的service()方法中。
- 所以在service()方法中能写什么,在脚本片段中就能写什么。
③ 表达式
- 格式:<%= %>
- JSP表达式用来在页面中输出一个对象。
- jsp表达式中的内容最终会作为out.print()的参数输出到页面中。
- 所以out.print()可以接收什么类型的参数,表达式中就可以写什么对象。而它可以接收Object类型的参数,所以在表达式中可以传任意对象。
④ 注释
- 格式:<%-- --%>
- 注释中的内容不会被JSP引擎翻译到jsp对应的java类中。
- JSP中可以使用的注释:
1.jsp注释:<%-- --%>
2.HTML注释:<!-- -->
3.Java注释://、/**/
⑤ 声明
- 格式:<%! %>
- 声明中的内容会直接放到jsp对应的java文件类中。
- 所以在类中可以写什么在声明中就可以写什么。

4.JSP指令

格式:<%@ 指令名 属性1=“属性值1” 属性名2=“属性值2” %>

page指令:用来告诉JSP引擎如何翻译jsp文件。

- <%@ page %>

- 属性:session:页面中是否可以使用session对象,需要一个布尔值,默认是true可以使用,如果将该值设置为false,则不能直接使用session对象。

import:用来导包。

errorPage:当页面中出现异常以后,转发到的页面。

isErrorPage:当前页面是否是一个错误页面,需要一个布尔值,默认是false,当该值设置true可以在jsp中使用exception对象,设置false不能使用。

language:用来指定JSP将会被翻译为的语言。这个属性的默认值java,可选值java。

contentType:用来指定我们JSP的编码类型,一般我们使用:text/html;charset=utf-8

pageEncoding: 告诉jsp引擎当前jsp使用的编码格式。

extends:指定jsp对应java类的父类。不用

isELIgnored:是否忽略EL表达式,需要一个布尔值,默认是false不忽略,如果将该值设置true,则页面中的EL表达式将不会自动解析。

include指令
- include指令用于将一个页面包含进另一个页面
- <%@ include file="/include/2.jsp" %>
- include指令叫做静态包含,它将相当于将目标页面,原封不动复制到当页面中。
- 使用静态包含时,只会翻译当前的jsp页面,而不会翻译被包含页面。

5.JSP动态标签

1.格式:<jsp:标签名 属性名=“属性值”></jsp:标签名>
2.jsp动作标签,使用形式和标签很像,但是动作标签都是由服务器解析的,动作标签在服务器会被转换成java代码。
3.forward标签:
- 用来在jsp页面中将请求转发到另一个页面。
<jsp:forward page="/index.jsp">
		<jsp:param value="sunwukong" name="username"/>
<jsp:forward/>
4.include标签:
<jsp:include page="/include2/2.jsp"></jsp:include>
- 动态包含,当前页面和被包含页面都会被翻译成java文件
- 动态包含会在页面执行时,调用如下:
include(request, response, "/include2/2.jsp", out, false);
5.include指令和include标签的不同:
- 格式不同
- include指令执行时,不会翻译被包含的页面,include标签执行时两个都会被翻译成java文件。
- include指令执行时会发送一个请求,include标签执行时会发送两个请求。

6.隐含对象

隐含对象也叫内置对象,指的是可以在JSP中直接使用的对象。
九大隐含对象是:pageContext  request  session  application  config  response  out  page  exception

7.域对象

① 域对象可以在不同的WEB资源之间共享数据。
② WEB资源:这里我们的WEB资源主要指JSP和Servlet。
③JavaWeb中一共有四个域对象:pageContext  request  session  application
在jsp中可以获取到全部四个域对象,在Servlet中只能获取到三个,没有pageContext
④ 每一个域对象中都维护着一个map,用来保存数据。
⑤ 域对象都共有的三个方法:
void setAttribute(String name, Object value) --> 向域中设置一个属性。
Object getAttribute(String name) --> 根据属性名从域中获取属性值。
void removeAttribute(String name) --> 从域中根据属性名移除指定的属性。
⑥ pageContext
- 类型:PageContext
- 作用:它是page域的域对象,page域就是当前页面, 一旦切换页面则page 域中的属性全部丢失
主要用来在jsp 和标签之间来传递数据。
⑦request
- 类型:HttpServletRequest
- 作用:它是request域的域对象,request域代表的是当前请求, 一旦发送两次请求则request中的属性全部丢失
主要是在转发时共享数据的。
⑦ session
- 类型:HttpSession
- 作用:它是session域的域对象,session域代表的是当前会话,会话就是指一次打开浏览器到关闭浏览器的过程。
一旦会话停止则session域中属性全部丢失。不同的浏览器就是不同的会话。
⑧application
- 类型:ServletContext
- 作用:它是application域的域对象,application域代表的是整个web应用, 只要项目不停止,则application域中的属性就不会丢失
主要用来在web应用中共享数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
疫情居家办公系统管理系统按照操作主体分为管理员和用户。管理员的功能包括办公设备管理、部门信息管理、字典管理、公告信息管理、请假信息管理、签到信息管理、留言管理、外出报备管理、薪资管理、用户管理、公司资料管理、管理员管理。用户的功能等。该系统采用了MySQL数据库,Java语言,Spring Boot框架等技术进行编程实现。 疫情居家办公系统管理系统可以提高疫情居家办公系统信息管理问题的解决效率,优化疫情居家办公系统信息处理流程,保证疫情居家办公系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理疫情居家办公系统信息,包括外出报备管理,培训管理,签到管理,薪资管理等,可以管理公告。 外出报备管理界面,管理员在外出报备管理界面中可以对界面中显示,可以对外出报备信息的外出报备状态进行查看,可以添加新的外出报备信息等。签到管理界面,管理员在签到管理界面中查看签到种类信息,签到描述信息,新增签到信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值