网站首页 > 技术文章 正文
一、JSP的本质就是servlet.
JSP运行规则:先转化成Java文件,然后编译成class文件,最后才可以执行。
了解了servlet之后,好多JSP的知识可以从JSP翻译后的Java文件中看出。
JSP页面转化为Java文件后所在的位置:
Eclipse的工作目录下的
.metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Demo0808\org\apache\jsp
二、JSP中的Java代码段
介绍下我自己的Java学习群:548511899,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的Java资料和零基础到学成出山的全套教程,欢迎所有喜欢Java的小伙伴。
JSP中的代码片段,翻译到Servlet的方法中,所以可以写Java方法中允许的代码,
不能写访问标识符等在方法中都不允许的代码。
脚本中的代码要保持结构完整,可以分开写到两个脚本中,比如:
<% for(int I = 0; I < 10; I ++){ %> hello <% } %>
Java片段翻译为Servlet的时候是按照从上向下的顺序的。
三、JSP注释
JSP注释:在JSP源码界面可见,Java文件中不可见,页面源码中不可见。
HTML注释:在各个界面都可见。
Java注释,只有在页面源码中不可见
四、JSP指令
1.page指令
language属性:指示当前的JSP页面会被翻译成何种语言。
ContentType:指定浏览器的编码方式,浏览器使用。
pageEncoding:指定当前页面的编码方式,供浏览器使用。
autoFlush:是否自动刷新,默认true.
errorPage:当前页面发生错误后,转发到的页面,地址栏不变化。
buffer:缓冲的大小
isErrorPage:指定当前页面是否为错误页面,默认是false,此时内置对象Exception不可用。true的时候才可以使用。
isELIgnored:是否忽略El表达式,默认不忽略。
2.include静态加载。
被包含页面的代码完全加到目标页面中,转化为Java文件的时候只转化目标页面,被包含页面在Java文件中也有输出。
file属性
五、JSP动作标签
最终会被翻译成Java代码执行。(Java学习交流群 548511899)
1.forword标签:
只有page属性。此时路径是相对于服务器端的。转发。 这个标签可以访问WEB-INF目录下的文件 不带参数其实标签和结束标签不可以分开。 可以通过param传递参数。
2.include标签:
和指令相比,为动态包含,被包含界面和杰界面都生成Java文件和class文件
3.tablib标签
引入jstl时使用
六、web的四大域对象:
pageContext(page域):作用范围是整个JSP页面,是四大作用域中最小的一个;生命周期是当对JSP的请求时开始,当响应结束时销毁。
Request:作用范围是整个请求链(请求转发也存在);生命周期是在service方法调用前由服务器创建,传入service方法。整个请求结束,request生命结束。
Session:作用范围是一次会话。
servletContext(application域):作用范围是整个Web应用。当Web应用被加载进容器时创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟着销毁。
四个域的作用域范围大小:PageContext (page域) < request < session < servletContext(application域)
猜你喜欢
- 2024-09-20 POJO与JavaBean的区别,你知道吗?
- 2024-09-20 JSP的 结构(jsp概述)
- 2024-09-20 Jsp与Servlet如何进行数据交互(jsp和servlet的各自应用范围)
- 2024-09-20 Web服务器、Web容器、servlet的联系
- 2024-09-20 为什么要放弃 JSP?(为什么要放弃喜欢的人)
- 2024-09-20 经典技术回顾和借鉴-JSP编程(jsp技术分析)
- 2024-09-20 关于JSP技术的介绍和相关示例(jsp技术概述)
- 2024-09-20 Servlet 和JSP之间的关系(servlet和jsp的区别)
- 2024-09-20 Javaweb学习(五)JSP技术(jsp+java)
- 2024-09-20 jsp的实质是什么?(jsp的概念是什么)
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)