复习JavaWeb的Jsp相关知识&Java面试题对称加密和非对称加密的区别&生活【记录一个咸鱼大学生三个月的奋进生活】033

本文详细讲解了JavaWeb中的Jsp执行原理、脚本元素、指令元素(如page、include、taglib)和Action动作标签。同时,探讨了Jsp与Servlet的区别,并对比了include指令与jsp:include标签的不同。此外,文章还涉及了Java面试中的对称加密与非对称加密的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jsp相关知识

Jsp创立的初衷:
  Jsp是简化Servlet编写的一种技术,它将Java代码和HTML语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用Java代码来编写,而对固定不变的静态内容采用普通静态HTML页面的方式来编写。
  如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序代码产生,整个Servlet程序的代码将非常臃肿,编写和维护都将非常困难。
  而对于大量静态内容的美工设计和相关HTML语句的编写,并不是程序员所要做的工作,程序员对此也不一定在行,网页美工设计和制作人员不懂Java编程,更是无法来完成这样的工作。
  所以为了弥补 Servlet 的缺陷,SUN公司在Servlet的基础上推出了JSP(Java Server Pages)技术作为解决方案。

Jsp的主要概念: JSP(Java Server Page)是由sun公司制定的用java编写web应用程序的规范,技术,是建立在servlet规范之上的
这里要注意的是:我们常说的 JSP页面 = JAVA + DHTML (而不是说JSP等于JAVA+DHTML

Jsp的执行原理

  WEB容器(Servlet引擎)接收到以.jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理,每个JSP 页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。

Jsp首次运行:.jsp → .java → .class

之后的运行:直接访问 .class文件

Jsp中的脚本元素

在JSP页面中编写 Java代码需要嵌套在<%和%>中,Java代码中要有分号

<%和%>之内 的Java代码被称之为脚本片段
<%和%>之外 的内容被称之为JSP的模版元素


<%=和%>:Jsp表达式,Jsp表达式中不需要分号,其实这个就相当于Java代码中的out.print,而Jsp表达式转译成.java文件时代码之中也是如此

<%! 和%>中声明的都是全局变量

Jsp中的指令元素

page指令

在 Jsp中的任何地方、以任何顺序,一个页面可以包含任意数量的 page指令
page指令可以用于定义Jsp页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个Jsp页面
为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面代码的开头位置

page指令的常用属性:
language —— 定义要使用的脚本语言
import —— 将包和类导入Scriptlet(脚本片段)
buffer —— 设置用来存储客户端请求的缓冲区的大小
errorPage —— 定义处理异常的 JSP 页面
isErrorPage —— 表示当前页面能否作为错误页面
contentType —— 指定页面格式和所使用的字符集

include指令

  include指令用于在编译当前JSP页面时将其他文件中的内容合并进当前JSP页面转换成的Servlet源文件中,这种在源文件级别进行引入的方式称之为静态引入,当前JSP页面与静态引入的页面紧密结合为一个Servlet
  注意!! include指令是先包含后编译的,属于拷贝包含,当然 变量也会包含,所以两个页面里不能有相同的变量声明

include指令实现代码:<%@ include file=“文件的相对路径”%>

taglib指令

taglib指令是定义一个标签库以及其自定义标签的前缀

taglib指令实现例子:<%@ taglib uri=“http://www.jspcentral.com/tags” prefix=“public”%>


Jsp中的Action动作标签

JSP还提供了一种称之为Action的元素,在JSP页面中使用Action元素可以完成各种通用的JSP页面功能,也可以实现一些处理复杂业务逻辑的专用功能
Action元素采用XML元素的语法格式,即每个Action元素在JSP页面中都以XML标签的形式出现
JSP规范中定义了一些标准的Action元素,这些元素的标签名都以jsp作为前缀,并且全部采用小写:

jsp:include 标签 —— 动作引入

实现代码:<jsp:include page=”…”/> </jsp:include>

用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为 动作引入
他是先编译后包含的,与上面提到的include指令正好相反
所以两个页面里 可以有相同的变量声明

jsp:forward 标签 —— 动作跳转

实现代码:<jsp:forward page=”…”/> </jsp:forward>

用于把请求转发给另外一个资源,也就是跳转至另一个页面
jsp:forward 动作指令 之后的代码是不会执行的
使用 动作指令跳转的页面 跟 请求转发一样,浏览器的地址还是跳转之前的页面地址,但内容是跳转之后的内容

jsp:param 标签 —— 动作传参

实现代码:<jsp:param name=“参数名” value=“参数值”/>

使用 jsp:includejsp:forward 标签引入或请求转发给Servlet或JSP页面时,就可以使用 jsp:param 标签向这个程序传递参数信息
设置参数后就可以用 request.getParameter(“属性名”)方法来获取param参数


include指令 和 jsp:include标签 的区别

include指令 —— 静态包含
② 实现代码:<%@ include file=“文件的相对路径”%>
③ 先包含后编译
④ 两个页面里不能有相同的变量声明

jsp:include —— 动态包含
② 实现代码:<jsp:include page=”…”/> </jsp:include>
③ 先编译后包含
④ 两个页面里可以有相同的变量声明

Jsp的注释

<!--  --> :这是html注释
<%--  --> :jsp页面的注释
//        :Java代码注释

注意!之前说过Jsp文件的运行原理是先把.jsp文件转译为.Java文件,当.jsp文件转译为.Java文件时,html和Java注释会被保留,但是jsp注释并不会被保留

pageContext 页面信息对象

pageContext对象封装了当前JSP页面的运行信息,它提供了返回JSP页面的其他隐式对象的方法

pageContext对象的常用方法有:
.getException方法 —— 返回exception隐式对象
.getPage方法 —— 返回page隐式对象
.getRequest方法 —— 返回request隐式对象
.getResponse方法 —— 返回response隐式对象
.getServletConfig方法 —— 返回config隐式对象
.getServletContext方法 —— 返回application隐式对象
.getSession方法 —— 返回session隐式对象
.getOut方法 —— 返回out隐式对象

JSP 与 Servlet 的比较

JSP是一种以产生网页显示内容为中心的WEB开发技术,它可以直接使用模版元素来产生网页文档的内容

JSP页面的源文件要比Servlet源文件简单,并且JSP页面的开发过程要比Servlet的开发过程简单得多

JSP引擎可以对JSP页面的修改进行检测,并自动重新翻译和编译修改过的JSP文件,JSP技术是建立在Servlet技术基础之上的,所有的JSP页面最终都要被转换成Servlet来运行

在大型WEB应用程序的开发中,Servlet与JSP经常要混合使用,各司其职,Servlet通常用作控制组件,并处理一些复杂的后台业务,JSP则作为显示组件 (Jsp —— 负责显示)

一次响应过程可以划分成几个功能模块来协同完成,首先由Servlet完成流程控制和业务处理,并将结果数据存储在request或session域中,然后将请求转发到JSP页面 (Servlet —— 负责控制)

通过这种方式实现业务逻辑与显示内容的分离,从而将应用程序开发者和网页作者的工作分离


Jsp相关知识的思维导图:

学习Java面试题(对称加密 和 非对称加密 的区别)

指路陈哈哈大佬的网络编程相关面试题原帖

这是之前学高软时的笔记,这是 对称加密 等相关知识的笔记:

照片分享

作者:Peng   作品名:金色全家桶  出自500px社区









2021.09.06  by wyh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aspiriln

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值