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>的配置内容:
根据上面这段配置我们就找到了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的核心执行流程。
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方法中,也就是局部代码。
2) 全局代码块<%! java代码 %>
注意:全局代码块中声明的内容,到了jsp文件转译为.java文件时,会放在.java文件中的成员变量的位置,如上图中,我们就是声明了一个成员变量和一个成员方法,如果我们想调用test方法,应该在哪里调用呢?
我们应该在局部代码块中对test方法进行调用。<% test(); %>
1) Java脚本段(表达式)
声明方式:<%= 变量或调用方法 %>
作用:将java代码的运算结果数据或者其他数据响应给浏览器。一般是方法的调用或者变量。如果是调用方法,则把方法的返回值响应给浏览器。
注意:java脚本段中不能加分号”;”。
A) Jsp的注释
HTML注释:<!-- -->会被转译也会被响应给浏览器,但是浏览器不会执行。
CSS注释:/* */和HTML注释一样,会被转译也会被响应给浏览器,但是浏览器不会执行。
JavaScript注释://和/* */,同HTMl注释一样,会被转译也会被响应给浏览器,但是浏览器不会执行。
Java注释:会被转译,但是不会被执行。
Jsp注释:<%-- jsp注释 --%> 注释内容不会被转译,jsp的注释是最高级别的注释。
c标签判断true false jsp_北京尚学堂卓越班252天[第042天]——Jsp相关推荐
- c标签判断true false jsp_巧妙使用if(true)以及if(false)语句
巧妙使用if(true)以及if(false)语句 作者:未知 文章来源:www.jspcn.net 发布日期:2005年01月19日 作者: ZDNET CHINA 特稿 调试代码的程序开发设 ...
- c标签判断true false jsp_Java学习知识点:小白如何掌握JSP技术?
今天千锋广州小编就给大家分享零基础如何掌握JSP技术,下面一起来看看吧! 一.Java初级开发之jsp概述 1.关于jsp JavaServer Pages简称jsp,从"server&qu ...
- 北京尚学堂JAVASE课程
北京尚学堂JAVASE课程 一.java历史-特点 1.计算机语言发展史 何为要发明计算机:为了进行科学计算,复杂的科学计算. 人类如何和计算机沟通,去分配任务. 通过计算机语言 实现 人类和计算机的 ...
- 学习python,北京尚学堂,第07课到第30课的个人的总结
在学习了那几节课以后,又找了一个新的视频,北京尚学堂的百战程序员,感觉还挺全 链接:https://pan.baidu.com/s/12HT1UCkK9SHadn8zESZRFA 提取码:zc7l ...
- 北京尚学堂python 百度网盘_北京尚学堂_1903期_Python_全套视频教程(视频、源码、课件)...
北京尚学堂_1903期_Python_全套视频教程(视频.源码.课件) |____尚学堂官网.url |____尚学堂_程序员修炼手册(电子版).url |____软件开发常用词汇(北京尚学堂发布). ...
- 北京尚学堂:献给奋斗在一线的“码农”
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 很长一段时间以来,我们都在关注如何提高代码质量,也为此做过一些尝试,在 ...
- 北京尚学堂|程序员励志名言
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 北京尚学堂科技有限公司 编者的话:作为一个真正的程序员,首先应该尊重 ...
- 北京尚学堂|程序员的智慧
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 编程是一种创造性的工作,是一门艺术.精通任何一门艺术,都需要很多的练习 ...
- 北京尚学堂退课退课,口碑还不错
解约协议书 甲方:北京尚学堂科技有限公司 统一社会信用代码:911101067855246634 乙方: 手机号: 甲方北京尚学堂科技有限公司与乙方 姓名 于 年 月 日签订的教育培训服务合同,乙方以 ...
最新文章
- pcl需要注意的编译问题
- 大型分布式系统中的缓存架构
- 每日两SQL(8),欢迎交流~
- dropbox_Google的新存储定价与Microsoft,Apple和Dropbox相比如何
- linux ospf 命令,OSPF单区域配置 - linuxprobe2020的个人空间 - OSCHINA - 中文开源技术交流社区...
- [导入]ASP常用函数:getIMG()
- Node.js小Httpserver
- 计算火车运行时间(pta)
- Java 游戏报错 看不懂求教
- case when then 统计去重数据_数据分析--SQL求职面试题
- python实用技巧(二)
- Java多线程看着一篇足够了!
- html隐藏标签console,console的隐藏知识点,你get到了嘛?
- 多元函数泰勒展开与黑塞矩阵
- ExtJs6 为Ext.Img对象添加单机事件
- 微信小程序倒计时组件开发
- unity 暂停按钮_Unity通过按钮控制视频播放与停止
- java docx4j 合并word_如何使用docx4j在word中添加合并字段?
- 解决EZP_XPro无法烧录
- 卸载的软件电脑重启后又出现了,怎么办?