当前位置:网站首页>开发JSP应用的基础知识
开发JSP应用的基础知识
2022-08-03 00:46:00 【dawn】
1、普通脚本可以使用所有的Java语法,除了定义函数。
2、声明脚本的变量、函数都是全局变量;<%! %>
3、声明脚本的内容必须在普通脚本<% %>中调用
4、如果声明脚本的函数中有返回值,使用输出脚本调用<%= %>
5、输出脚本后面不能有分号
6、注释 <%-- 注释内容 --%>(Java注释,不编译)或者<!-- 注释内容 -->(html注释)
1、JSP指令
<%@ page... %> 定义页面的依赖属性,比如脚本语言、error页面、缓存定义等
<%@ include... %> 包涵其他文件
<%@ taglib... %> 引入标签库的定义,可以是自定义标签
2、Page指令
语法:
<%@ page 属性1=”值1” 属性2=”值2” %>
Page指令为容器提供当前页面的使用说明,一个JSP页面可以包含多个Page指令
contentType:指定当前JSP页面的MIME类型和字符编码格式
errorPage:指定当JSP页面发生异常的时候需要跳转到的错误处理页面
isErrorPage:指定当前页面是否可以作为另外一个JSP页面的错误处理页面
Import:导入需要使用的Java类
Language:定义JSP页面所使用的脚本语言,默认是Java
Session:指定页面是否使用session,默认为立即创建,为false标识使用时创建
pageEncoding:指定JSP页面的解码格式
3、Include指令
语法:<%@ include file=”被包含的JSP文件” %>
通过include指令包含其他文件,被包含的文件可以是JSP文件、HTML文件或者文本文件,要避免同名变量的定义冲突。
4、Taglib 指令
语法:<%@ taglib url=”外部标签库的路径” prefix=”前缀” %>,引入JSP的标准标签库
5、动作标签
语法:<jsp:action name attribute=”value” />,指的是在JSP页面在运行期间的命令
6、Include
<jsp:include page=”” />,将外部文件的输出结果包含在当前的JSP中
<%@ page include=”” %>是将外部文件的输出代码复制到当前的JSP当中
7、useBean
<jsp:useBean id=”name” class=”package.className” />
用来加载一个将在JSP中使用的JavaBean
在类加载后,可以通过jsp:setProperty和jsp:getProperty来设置或者获取bean的属性
8、跳转指令
<jsp:forward page=”A1.jsp”>
<jsp:param name=”para1” value=”123” />
<jsp:param name=”para2” value=”bbb” />
</jsp:forward>A1.jsp接收参数
<%
String x1=(String)request.getParameter(“para1”);
String x2=(Int)request.getParameter(“para2”);
%>9、内置对象
| 对象名 | 类型 | 说明 |
| request | javax.servlet.http.HttpServletRequest | |
| response | javax.servlet.http.HttpServletResponse | |
| session | javax.servlet.http.HttpSession | 有session=”true”开关 |
| application | javax.servlet.ServletContext | |
| config | javax.servlet.ServletConfig | |
| exception | java.lang.Throwable | 有isErrorPage=”false”开关 |
| out | javax.servlet.jsp.JspWriter | javax.servlet.jsp.JspWriter |
| pageContent | javax.servlet.jsp.PageContext | |
| page | java.lang.Object,当前对象this | 当前servlet实例 |
10、四大域对象
| pageContent | javax.servlet.jsp.PageContent | 当前JSP页面范围 |
| request | javax.servlet.http.httpServletRequest | 一次请求有效 |
| session | javax.servlet.http.HttpSession | 一次会话有效(关闭浏览器失效) |
| application | javax.servlet.ServletContext | 整个web应用有效(服务器重启或者关闭失效) |
11、示例脚本
⑴ 、属性的设置与获取
<%
pageContext.setAttribute("pageContextScope","x1");//设置属性值
pageContext.setAttribute("pageContextScope","y1");
String a1 =(String) pageContext.getAttribute("pageContextScope");//获取属性值
%>
<%= a1 %>
⑵、页面跳转与数据接收
<%
pageContext.setAttribute("X1","111",pageContext.REQUEST_SCOPE);//request作用域有效
pageContext.setAttribute("Y1","222",pageContext.SESSION_SCOPE);//session作用域有效
pageContext.setAttribute("Z1","333",pageContext.APPLICATION_SCOPE);//application作用域有效
response.sendRedirect(request.getContextPath()+"/other.jsp");
%>
参数接收:
<%
String X1=(String) pageContext.getAttribute("X1",PageContext.REQUEST_SCOPE);
String Y1=(String) pageContext.getAttribute("Y1",PageContext.SESSION_SCOPE);
String Z1=(String) pageContext.getAttribute("Z1",PageContext.APPLICATION_SCOPE);
%>边栏推荐
- matlab常微分方程在传染病建模中的应用
- 牛客网剑指offer刷题练习之链表中环的入口结点
- 记一次sql优化Using temporary; Using filesort
- Flink / Scala - 使用 CountWindow 实现按条数触发窗口
- pytest:如何调用 pytest
- 【mysql知识点整理】--- order by 、group by 出现Using filesort原因详解
- 7.29
- [NCTF2019]SQLi-1||SQL Injection
- ASP.NET网络版进销存管理系统源码【源码免费分享】
- Auto.js 特殊定位控件方法 不能在ui线程执行阻塞操作,请使用setTimeout代替
猜你喜欢
随机推荐
Carefully organize 16 MySQL usage specifications to reduce problems by 80% and recommend sharing with the team
开源聚力,共创未来 | 麒麟信安祝贺openKylin首个体验版正式发布!
电信业务分类
流程控制for和while循环语句
js显示隐藏手机号
esp32和ros2基础篇草稿-micro-ros-
并发模型和I/O模型介绍
接口流量突增,如何做好性能优化?
作业8.2 线程同步互斥机制——互斥锁
matlab常微分方程在传染病建模中的应用
Auto.js 特殊定位控件方法 不能在ui线程执行阻塞操作,请使用setTimeout代替
【飞控开发高级教程1】疯壳·开源编队无人机-飞控整机代码走读、编译与烧写
软件定义网络实验之SDN网络简单管理及开发
阿里云增强版实人认证--银行卡要素核验
.NET深入解析LINQ框架(四:IQueryable、IQueryProvider接口详解)
UVM中SVA使用指南
PyCharm中常用的快捷键用法详解
Violent recursion to dynamic programming 06 (the sword refers to Offer II 095. Longest common subsequence)
封装和练习题目
从一文中了解SSRF的各种绕过姿势及攻击思路









