当前位置:网站首页>开发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);
%>
边栏推荐
猜你喜欢
随机推荐
Qt在选择MSVC 编译器的时候,无法识别出M_PI的问题处理
软件测试从业多年,自认为技术不错,裸辞:一晃 ,失业3个月了~
[NCTF2019]SQLi-1||SQL注入
alibaba数据同步组件canal的实践整理
Latex-查看预收录在arXiv.org上论文的TeX源文件
Wireshark数据抓包分析之传输层协议(TCP协议)
Carefully organize 16 MySQL usage specifications to reduce problems by 80% and recommend sharing with the team
2022 开放原子全球开源峰会 | 麒麟信安携手openEuler助力开源产业繁荣发展
【MySQL —— 数据库约束】
Auto.js special positioning control method cannot perform blocking operations on the ui thread, please use setTimeout instead
.NET深入解析LINQ框架(四:IQueryable、IQueryProvider接口详解)
投资的思考
apache-activemq-5.14.1
一个接口并发问题的模拟与复现
心电记录电路设计(框图/波形以及信号放大器的选择)
买了一瓶饮料
北路智控上市首日破发:公司市值59亿 募资15.6亿
GTK实现水波纹效果
Brute force recursion to dynamic programming 07 (516. Longest palindrome subsequence)
爆款视频怎么做?这里或许有答案