c标签判断true false jsp_北京尚学堂卓越班252天[第042天]——Jsp

1. JSP的核心运行原理

1) 客户端浏览器发送请求到服务器,访问a.jsp文件。

http://localhost:8989/应用名/a.jsp

2) 服务器端接收到请求后所做的处理

a) 创建request和response两个对象

b) 根据请求中的应用名找到该应用下面的web.xml文件,发现该应用的配置文件中没有关于a.jsp路径相关的<url-pattern>的配置,所以会去找tomcat服务器中的全局web.xml的配置。我们发现全局的web.xml配置文件中有关于a.jsp的<url-pattern>的配置内容:

5c92d4ce38f0016c55644ad97df8a5ba.png

根据上面这段配置我们就找到了JspServlet,这个JspServlet就是jsp引擎。它会把jsp文件转义成一个Java文件。我们可以查看tomcat安装目录下的路径:

Tomcat安装目录/work/catalina/localhost/jsp/org/apache/jsp

这个目录下有一个a_jsp.java和a_jsp.class两个文件。这就是tomcat帮我们把jsp文件转换成的Servlet类的源文件和.class文件。

我们平时在写Servlet时,会继承HttpServlet,然后覆盖service方法,但是我们发现这个a_jsp.java文件中没有service方法,但是有一个_jspService方法。其实,a_jsp类会继承org.apache.jasper.runtime.HttpJspBase类,这个HttpJspBase类有继承HttpServlet类,然后HttpJspBase类中的service方法,调用了_jspService(request, response)方法。到此,我们就知道了最后调用的还是a_jsp类中的_jspService方法。这也是整个a.jsp的核心执行流程。

0ae962f56b2749df1d950d58750b04bb.png

1. page命令(page指令的作用:设置jsp在转译时的一些配置信息)

A) Page命令中的属性学习

1) <%@page language=”java”%>

声明jsp文件转译的语言,language=”java”的意思是转译为.java文件。

2) <%@page import=”java.util.*,java.lang.*”%>

上面的import属性还可以分开写:

<%@page import=”java.util.*”%>

<%@page import=”java.lang.*”%>

声明转译时导入的java包文件。

3) <%@page pageEncoding=”UTF-8”%>

设置Jsp的数据保存的编码格式

4) <%@page contentType=”text/html;charset=UTF-8”%>

设置数据的响应编码格式

注意:tomca帮我们把jsp文件转译为.java文件,我们查看.java文件时,发现其中有这样一行代码:response.setContentType(“text/html”);

pageEncoding=”UTF-8”和contentType=”text/html;charset=UTF-8”中的任何一个都可以让这行代码变成这样:

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

5) <%@page session=”false”%>

设置session的状态,也就是转译成的.java文件中session是否开启。默认为true,是开启的,设置为false,session就是关闭的。

默认情况下是session=”true”,当session属性取默认值的时候,jsp文件对应的.java文件中会有这样一行代码:

javax.servlet.http.HttpSession session = null;

session = pageContext.getSession();

当我们设置为session=”false”后,.java文件中就没有了关于session的那两行代码。

6) <%@page isErrorPage=”true”%>

默认为false,如果设置为true,就等于开启异常对象的使用

7) <%@page errorPage=”error.jsp”%>

设置当本jsp页面出现异常或错误时,跳转到的指定页面。

B) 局部代码块、全局代码块、java脚本段(表达式)

1) 局部代码块<% Java代码 %>

局部代码块的特点:使用局部代码块声明的java代码会原样转译到_jspService方法中,也就是局部代码。

c996966d8c2562e72f333ec451d01c1e.png

2) 全局代码块<%! java代码 %>

00c9ba5e936785a81372b56771181bf2.png

注意:全局代码块中声明的内容,到了jsp文件转译为.java文件时,会放在.java文件中的成员变量的位置,如上图中,我们就是声明了一个成员变量和一个成员方法,如果我们想调用test方法,应该在哪里调用呢?

我们应该在局部代码块中对test方法进行调用。<% test(); %>

1) Java脚本段(表达式)

声明方式:<%= 变量或调用方法 %>

作用:将java代码的运算结果数据或者其他数据响应给浏览器。一般是方法的调用或者变量。如果是调用方法,则把方法的返回值响应给浏览器。

注意:java脚本段中不能加分号”;”。

A) Jsp的注释

HTML注释:<!-- -->会被转译也会被响应给浏览器,但是浏览器不会执行。

CSS注释:/* */和HTML注释一样,会被转译也会被响应给浏览器,但是浏览器不会执行。

JavaScript注释://和/* */,同HTMl注释一样,会被转译也会被响应给浏览器,但是浏览器不会执行。

Java注释:会被转译,但是不会被执行。

Jsp注释:<%-- jsp注释 --%> 注释内容不会被转译,jsp的注释是最高级别的注释。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js aes加密_某高考咨询网js逆向分析笔记

一、某高考资讯网逆向分析某网站的js加密分析&#xff0c;安全签名signsafe HmacSHA1 AES一年前分析过网站数据还没有加密&#xff0c;最近需要获取新的数据发现原先的爬虫失效&#xff0c;请求和响应都经过加密。于是重新分析&#xff0c;记录下分析思路以及分析过程中遇到的…

python语言发明者 google_看看9种编程语言的发明者是怎么说的

从Node.js到C&#xff0c;看他们的发明者是如何评价他们的语言的未来。Ryan Dahl&#xff1a;Node.js问&#xff1a;它的主要优势是什么&#xff1f;Dahl&#xff1a;Node与其他的语言有一点明显的区别&#xff0c;就是处理I/O。所以它永远不允许用户锁上程序。它要求用户不断的…

opencv 的norm_22、OpenCV用卷积Filter2D进行滤波器

迄今为止&#xff0c;看到的函数中&#xff0c;卷积的操作发生在OpenCV函数的内部。理论上&#xff0c;图像卷积就是将内核与图像覆盖区域对应位置相乘之后求和。从调用函数上来看&#xff0c;它需要一个数组参数来描述内核。在实践层面&#xff0c;有一个重要的微妙因素会对结…

初学python有几个阶段_零基础如何系统的学习Python 从7个阶段入手

目前信息化产业发展势头很好&#xff0c;互联网就成为了很多普通人想要涉及的行业&#xff0c;因为相比于传统行业&#xff0c;互联网行业涨薪幅度大&#xff0c;机会也多&#xff0c;所以就会大批的人想要转行来学习Python开发。Python语言的应用Python是它们的主流语言&#…

glide加载gif图不显示动画_用Python绘制会动的柱形竞赛图

我们经常看到的Bar Chart Race&#xff08;柱形竞赛图&#xff09;&#xff0c;可以看到数据的呈现非常的直观。今天就一起来学习下如何生成和上面一样的柱形竞赛图。1、导入Python库2、加载数据集这里使用的是城市人口数据集&#xff0c;加载我们想要的数据&#xff1a;其中&a…

python做后端开发的优点_【后端开发】python语言的特点是什么

python语言的特点是什么&#xff1f;python语言的特点简单Python是一门简单而文字简约的语言。阅读好的Python程序感觉就像阅读英语&#xff0c;尽管是非常严格的英语。Python的这种伪代码特性是其最大强项之一&#xff0c;它可让你专注于解决问题的办法而不是语言本身。容易学…

rust队友开挂_腐蚀RUST开挂玩家识别方法 如何识别玩家开挂

远程查挂是最无奈的选择&#xff0c;也是最后的办法&#xff0c;遇到一些会隐藏的你也查不到。附体附体附体!!这是唯一的方法!!附体是最好的选择&#xff0c;当然gm必须有丰富的游戏经验&#xff0c;800小时以下的玩家不适合做gm(除非有老师傅带)。下面说说如何对付只开透视的老…

不冲突的端口范围_网络中IP地址发生冲突故障怎么办

——————欢迎新老朋友们加入微信群,方便技术讨论&#xff0c;信息互通&#xff0c;行业交流&#xff1a;智能弱电行业专家群&#xff1b;智能弱电行业技术群&#xff1b;智能弱电行业信息群&#xff1b;申请加入请加小编微信&#xff1a;15537112161———————有朋友提…

项目结构_组织结构对项目影响系列课程---项目式组织结构

在前面的几篇文章中我们分别介绍了&#xff0c;系统型&#xff08;简单型&#xff09;&#xff0c;职能型&#xff0c;弱矩阵&#xff0c;平衡矩阵&#xff0c;强矩阵结构的优点和缺点及它们带给项目的影响。今天我们介绍项目式组织结构的优点和缺点及其可能产生的影响。从结构…

第三范式的作用_钟启泉:教学范式的转型,让一线教师面临三大挑战 | 头条

培育“核心素养”的方法论——能动学习真实性的学习境脉所谓“能动学习”是“基于学习者的主体性参与与学习者之间能动的交互作用的学习而产生的”。它不是单纯记忆知识的学习&#xff0c;而是指学习者能够活跃地应对种种课题&#xff0c;并富有实感支撑的学习。基于“核心素养…

云服务器 管理控制台_关于小白如何初步管理自己的云服务器

博主在刚刚接触云服务器的时候&#xff0c;买的云服务是Linux系统的&#xff0c;反正是一脸懵&#xff0c;后来找了很多资料。所以博主认为步骤主要为以下几步第一步&#xff1a;如果买的是Linux系统将其重装成windows系统。以腾讯云服务器为例1.点击右上角的控制台2.进入买的云…

leetcode 贪心_利用贪心算法解LeetCode第1253题:重构2行二进制矩阵

题目描述给你一个 2 行 n 列的二进制数组&#xff1a;矩阵是一个二进制矩阵&#xff0c;这意味着矩阵中的每个元素不是 0 就是 1。第 0 行的元素之和为 upper。第 1 行的元素之和为 lower。第 i 列&#xff08;从 0 开始编号&#xff09;的元素之和为 colsum[i]&#xff0c;col…

为什么苹果内购总是失败_IOS用户支付失败 购买无法完成解决教程

格斗江湖iOS系统用户玩家&#xff0c;最近在充值的时候出现无法完成或者充值失败提示。这是怎么回事呢?出现上面的提示时&#xff0c;我们首先需要从自己“可控”的范围内查找原因。一、未越狱系统1、检查下自己的Apple ID是否有足够余额。2、中国大陆地区Apple ID账号&#x…

python中怎么创建配置文件_如何在Django中创建配置文件注册表单?

我试图创建一个定制的注册表单&#xff0c;但是我不知道如何去做&#xff0c;因为我试图将默认的django注册与一个新的模型连接起来。在这是它看起来的样子&#xff0c;可能是错的&#xff0c;但我正在考虑这样的事情。在模型.pyclass Profile(models.Model):user models.OneT…

pgadmin连接服务器失败_增值税发票税控软件:连接服务器失败是否使用离线文件进行更新?...

增值税发票税控软件&#xff1a;连接服务器失败是否使用离线文件进行更新&#xff1f;第一步&#xff1a;确认本地电脑是否可以正常打开网页&#xff1b;打开电脑&#xff0c;网页查看一下是否可以正常上网&#xff0c;打开百度发现&#xff0c;可以正常上网。第二步&#xff1…

移除镜像_这是否是你心目中的英雄联盟手游?镜像地图。水晶塔,传送移除

自从5月29日之后&#xff0c;RIOT官方放出了英雄联盟手游最新开发者日志后。关于视频内展示的多个游戏关键内容。在玩家群体中引起了大量的争议和讨论。以下是争议和讨论最多的内容1.游戏内英雄的攻击是否为AOE伤害?在大多数的玩家心中&#xff0c;英雄联盟手游是不应该有这种…

python数据算法有哪些_python算法与数据结构-常用查找算法一(37)

一、什么是查找查找(Searching)就是根据给定的某个值&#xff0c;在查找表中确定一个其关键字等于给定值的数据元素(或记录)。查找表(Search Table)&#xff1a;由同一类型的数据元素(或记录)构成的集合关键字(Key)&#xff1a;数据元素中某个数据项的值&#xff0c;又称为键值…

circlegan_【源码解读】cycleGAN(二) :训练

训练的代码见于train.py&#xff0c;首先定义好网络&#xff0c;两个生成器A2B, B2A和两个判别器A, B&#xff0c;以及对应的优化器(优化器的设置保证了只更新生成器或判别器&#xff0c;不会互相影响)###### Definition of variables #######NetworksnetG_A2B Generator(opt.i…

电脑重启bootmgr_电脑出现bootmgr is missing怎么办

展开全部电脑开机&#xff0c;或者重启以后显示&#xff1a;Bootmgr is missing, 是代表硬盘的主引导记录(MBR)出错&#xff0c;从而导致无法引e68a8462616964757a686964616f31333337613931导系统&#xff0c;哪只能重建主引导记录&#xff0c;还有一个可能是丢失系统文件&…

python tkinter text改变文本字体颜色_如何更改Tkinter中文本的颜色?

在Tkinter图形用户界面中&#xff0c;我无法确定如何更改文本的颜色。我试着让Label1变成红色&#xff0c;Label2变成蓝色&#xff0c;Label3变成棕色&#xff0c;Label4变成黄色&#xff0c;但我似乎想不出来。提前谢谢&#xff1a;)import randomfrom Tkinter import * #dont…