JAVAWeb| 详解JSP技术、指令、隐式对象、标签

简介: JAVAWeb| 详解JSP技术、指令、隐式对象、标签

1简单介绍一下JSP



      首先,我们来了解一下JSP这个东东,大家看它的缩写可能有点懵逼,告诉大家全称之后可能会更容易理解,JSP全称:Java Server Page ,直译过来便是爪洼服务页面,当然直译是不行滴。万物之生,必有其因,JSP是为了简化servlet的工作而出现的替代品。


     在JSP中Java代码和HTML是可以共存的,HTML代码就用来展示静态的内容,JAVA代码就用来展示动态的内容。


      JSP的简介也就这么些内容,我们的jsp代码,都是写在后缀名为.jsp的文件当中,大家可以尝试用ide创建一个web项目,里面会有一个index.jsp,大家可以看看里面的内容。



2JSP是怎么运作的?


 

     jsp在第一次被访问的时候会被Web容器翻译成servlet,所以jsp本质上就是一个Servlet。


给大家画了一张过程图:


image.png


  被编译后的servlet在Tomcat的work目录中可以找到,使用IDE会单独为项目维护一个目录。


      其实当jsp转化为java文件之后,它间接的继承了HttpServlet,实现了其中的一些主要方法,例如init、service、destory,并且将html代码通过java方式输出给浏览器。具体看下面↓



JSP脚本:


  1. <%java代码%> ------内部的java代码翻译到service方法的内部
  2. <%=java变量或表达式> ---会被翻译成service方法内部out.print()
  3. <%! java代码 > ---会被翻译成servlet的成员的内容


JSP注释:



<%-- 注释内容 --%>


3JSP指令


 

在JSP中有三大指令: page指令、include指令、taglib指令


咱们一个一个来吧


首先---page指令,page指令是属性最多的一个指令,根据不同的属性,指导整个页面的特性。



<%@ page 属性名1=“value1” 属性名2=“value2” %>


一些常用的属性:


language:jsp脚本中可以嵌入的语言种类

contentType

response.setContentType(text/html;charset=UTF-8)

session:是否jsp在翻译时自动创建session

import:导入java的包

errorPage:当前页面出错后跳转到哪个页面



再来看看include指令


从单词意思可以看出这个指令是啥意思了,包含,对,他实际意思就是页面包含指令,可以将一个jsp页面包含到另一个jsp页面中



<%@ include file = "被包含页面的文件地址" %>


最后看一下taglib指令


它的用处主要是可以在jsp中引入一些标签库,例如jstl标签库、Struts2标签库。



<%@ taglib uri="标签库地址"  prefix="前缀" %>



4JSP隐式对象



当JSP被翻译成servlet的时候,service方法的内部有九个对象定义并且初始化,这九个对象就是我们所说的隐式对象。


第一类:与输入输出有关的


  • request请求对象,得到用户请求信息,并且共享信息
  • response响应对象,服务器向客户端回应信息
  • out输出对象,用于 页面的输出


第二类:与作用域范围有关的


  • pageContext页面作用域,上下文对象
  • request请求作用域
  • session会话作用域,保存会话共享信息
  • application应用作用域,所有用户的共享信息


第三类:与配置有关的


  • config配置对象,服务器配置,可以取得初始化参数
  • page页面本身的对象,当前页面转换后的servlet类的实例


第四类:与异常有关的


  • exception异常对象,在错误页面才会起作用



<%@  page  contentType="text/html;charset=UTF-8"  language="java"  buffer="0kb"  %>        111111<%  response.getWriter().write("22222");            out.write("33333"); %> <%="4444444"%>


image.png


在这里着重讲解一下pageContext这个对象,上面也讲过,它表示的是jsp页面中的上下文对象,也就说它是个域对象,我们可以在它里面存储并获取值:



setAttribute(String name, Object obj)
getAttribute(String name, int scope)


当然这只是一部分,但是是非常常用的两种方法


除了上面的作业,他还能获取其他8大隐式对象



pageContext.getRequest();
pageContext.getSession();


5JSP标签



       JSP标签能够用来控制JSP的行为,执行一些JSP的页面动作,通过这些标签也可以实现很多行java代码才能够实现的功能,比如说请求转发等。


这里给大家举几个标签的例子:


页面包含(动态包含)


<jsp:include page="被包含的页面"/>


页面包含(静态包含)


<%@ include file="被包含的页面"%>


请求转发


<jsp:forwardpage="要转发的资源"/>





相关文章
|
2月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
84 0
|
6月前
|
SQL XML Java
JSP 教程 之 JSP 标准标签库(JSTL) 4
**JSP的JSTL是用于简化Web开发的标签库,包括核心、格式化、SQL、XML和函数5个部分。SQL标签库允许与数据库交互,如设定数据源、执行查询和更新,以及处理参数。例如, `&lt;sql:setDataSource&gt;` 定义数据源, `&lt;sql:query&gt;` 执行查询。通过使用JSTL,开发者能更整洁地处理JSP页面。**
54 8
|
3月前
|
存储 前端开发 Java
JavaWeb基础6——Request,Response,JSP&MVC
Request继承体系、获取请求头行体的方法、IDEA使用模板创建Servlet、请求参数中文乱码解决、请求转发、Respones重定向、Response响应字节字符数据、JSP、EL 表达式、JSTL标签、MVC模式和三层架构
JavaWeb基础6——Request,Response,JSP&MVC
|
4月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
45 3
|
4月前
|
Java
编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用零作为除数,并使用page指令将错误信息显示在另外一个jsp页面,产生的错误信息为“错误,不能用0做除数”
该文章展示了如何创建一个JSP页面,使用Scriptlet编写包含除零操作的计算代码,并配置page指令将错误信息重定向至另一个JSP页面进行显示。
编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用零作为除数,并使用page指令将错误信息显示在另外一个jsp页面,产生的错误信息为“错误,不能用0做除数”
|
4月前
|
Java
JSP指令
该文章解释了JSP中的指令,包括page指令、include指令和taglib指令的语法和用途,以及如何使用它们来设置JSP页面的属性和引入标签库。
JSP指令
|
6月前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
117 12
|
6月前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
69 9
|
6月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
【6月更文挑战第23天】Java Web开发中,Servlet和JSP是构建动态Web应用的基础。Servlet处理逻辑,JSP专注展示。示例展示了Servlet如何通过`request.setAttribute`传递数据给JSP渲染。JSP自定义标签提升页面功能,如创建`WelcomeTag`显示欢迎消息。Servlet过滤器,如`CacheControlFilter`,用于预处理数据或调整响应头。这些集成和扩展技术增强了应用效率、安全性和可维护性,是Java服务器端开发的关键。
75 7
|
6月前
|
XML SQL Java
JSP 教程 之 JSP 标准标签库(JSTL) 6
**JSP JSTL 摘要:** JSTL是JSP的标签库,包含核心、格式化、SQL、XML和函数5类标签。它用于执行常见任务,如迭代、条件判断和XML操作。JSTL函数库提供字符串处理函数,如`contains()`, `endsWith()`, `escapeXml()`等,方便XML和HTML处理。通过`&lt;%@ taglib %&gt;`导入,如`fn:trim()`用于去除字符串两端空白。
46 5