jsp详解,原理,九大内置对象,jsp指令,el表达式,jstl标签的使用

本文详细介绍了JSP的基本概念、出现原因、嵌入Java代码的方法,以及JSP的工作原理。讲解了JSP的九大内置对象,如request、response、session、application等,并探讨了EL表达式和JSTL标签的使用,帮助读者掌握动态网页开发的关键技能。
摘要由CSDN通过智能技术生成

什么是JSP

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun
Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传
统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为
(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和
容易。
*.html 静态页面(包含固定的页面内容)
*.jsp 动态页面(页面数据可以动态更新,支持嵌套java代码和html代码)

JSP为什么会出现

1.servlet展示信息的不方便,引入了JSP。
2.JSP本质上也是一个servlet!!!!!!
3.JSP就是在HTML页面中嵌入了java代码。

JSP中如何嵌套java代码

答案:小脚本(<% java代码%>)

声明标签 <%!变量或者方法声明%>
表达式标签 <%= 表达式%> 在页面上显示的效果
程序代码标签 <%java代码%>页面上动态展示内容

page指令:
<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>

< body>
<%! int i=10;%>
<%! public void show(){}%>
<%=i%>
< /body>

如果把一个数据存在request域中,取值操作如下:

jsp中的注释

< !-- html注释内容,查看源码时能看到 -->
<%-- jsp注释,查看页面源码时看不到 --%>

下面我们看一个小栗子

<%--
  Created by IntelliJ IDEA.
  User: 15158
  Date: 2020/11/6
  Time: 21:32
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <%!String a = "测试";%><!--定义一个变量-->
  <%! public String getA(){return a;}%><!--定义一个Java方法-->
  a的值是:<%=a+"abc"%><!--输出一个变量-->
  </body>
</html>

来看运行截图:在这里插入图片描述

jsp原理

在这里插入图片描述
当浏览器访问http://localhost:8080/day9_1/index.jsp。服务器发现后缀为.jsp,它会根据路径找到index.jsp文
件,会将index.jsp翻译成index_jsp.java文件,对这个java文件进行编译,产生一个index_jsp.class文件,将class
文件加载运行。将JSP翻译成java文件,它是将JSP中的所有的HTML代码通过流进行输出,也就是说最终翻译成
class,被虚拟机加载,它本质是servlet,它就会往回响应,响应回去就是把JSP中的HTML代码以流的方式写回浏
览器。所以在JSP中展示出了HTML代码

JSP的内置对象

JSP中一共预先定义了9个这样的对象,分别为:

request、response、session、application、out、pagecontext、config、page、exception

1、request对象
request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于
接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的
作用域为一次请求。
2、response对象
request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于
接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的
作用域为一次请求。
3、session对象
session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用
于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为
“Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。HttpSession
4、application对象
application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用
中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量” ServletContext

这四个对象都有两个比较常用的方法:就是setAttribute(“key”,“value”);方法和getAttribute(“key”)

区别:
request:单次请求
session:浏览器访问期间(会话期间)
application:服务器启动期间,所存的数据可以跨浏览器

这个区别怎么去理解呢:就是我们request一个请求时,当我们在浏览器内重新访问这个页面时,这个页面就会丢失
session这个作用的范围比request稍微的宽一点,就是当你换浏览器去访问这个页面的时候session的这个值就会丢失
application这个存储值是最广的一个,就是你的服务器只要没有关闭,我们存储的值就会一直存在

out 对象
out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,
可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要
及时关闭输出流。
pageContext 对象
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、
session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用
pageContext对象。
config 对象
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取
一个config对象。当一个Servlet 初始化时,容器把某些信息通过config对象传递给这个 Servlet。 开发者可以在
web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
//将image路径转换成服务器端的路径
String url= config.getServletContext().getRealPath("/image");

url=<%=url %>

**page 对象** page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变 量,类似于Java编程中的 this 指针。 **exception 对象** exception 对象的作用是显示异常信息,只有在包含
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值