Jsp自我学习笔记1
来源:互联网 发布:局域网禁用软件 编辑:程序博客网 时间:2024/05/15 09:16
Jsp自我学习笔记1
一 . 什么是JSP
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
二 .常用的JSP指令
Jsp包含三个编译指令和七个动作指令。
三个编译指令为:page、include、taglib。
1.1 page指令
通常位于jsp页面的顶端,同一个页面可以有多个page指令。语法格式如下:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
其中language=”java”和contentType=”text/html”必有,其他为可选。
1.2 include指令
使用 include 指令,可以将一个外部文件嵌入到当前 JSP 文件中,同时解析这个页面中的 JSP 语句(如果有的话)。这是个静态的 include 语旬,不会检查所包含 JSP 页面的变化。
include 既可以包含静态的文本,也可以包含动态的 JSP 页面。静态的编译指令include ,是将被包含的页面加入进来,生成一个完整的页面。
include 编译指令的语法:
<% @include file="relativeURLSpec" %>
taglib使用很少,不再举例。
七个动作指令为:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。
1、 forward指令:forward 指令用于将页面响应控制转发给另外的页面。既可以转发给静态的 HTML页面,也可以转发到动态的 JSP 页面,或者转发到容器中的 Servlet。
jsp:forward语法:
<jsp:forward page="{relativeURL |<%=expression%>}" />
还可以这样写:
<jsp:forward page="{relativeURL |<%=expression%>}">
{<jsp:param…/>}
</jsp:forward>
第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest 类的 getParameter方法获取。
2、 include指令,它是一个动态的指令,可以用于导入某个页面。它的导入会每次检查被导入页面的改变。下面是included的语法:
<jsp:include page="{relativeURL |<%=expression%>}" flush="true" />
或者:
<jsp:include page="{relativeURL |<%=expression%>}" flush="true">
<jsp:param name="paramName" value="paramValue"/>
</jsp:include>
注意它与 页面编译指令include 是不同的
主要有两个方面的不同;
2.1:执行时间上:
<%@ include file="relativeURI"%>
是在翻译阶段执行
<jsp:include page="relativeURI" flush="true" />
在请求处理阶段执行.
2.2:引入内容的不同:
<%@ include file="relativeURI"%>
引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
<jsp:include page="relativeURI" flush="true" />
引入执行页面或servlet所生成的应答文本.
另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释.
3 . useBean、setProperty和getProperty指令
这三个指令都是与JavaBean相关的指令,其中useBean用于在jsp页面初始化一个java实例,setProperty用于修改JavaBean实例的属性,getProperty用于获取JavaBean实例的属性。
useBean的语法格式:
<jsp:useBean id="class=" scope="page|request|session|application" />
Id是JavaBean的实例名,class属性确定JavaBean的实现类。Scope属性确定生存范围【页面、请求、会话、应用】
setProperty的语法格式:
<jsp:setProperty name="" property="" value="" />
Name属性确定需要设定。
4 .plugin指令
plugin 指令主要用于下载服务器端的 JavaBean 或 Applet 到客户端执行。由于程序在客户端执行,因此客户端必须安装虚拟机。在这里就不说明了。
三 .JSP九大内置对象
request:用户端请求,此请求会包含来自 GET/POST请求的参数;
response:网页传回用户端的回应;
pageContext:网页的属性是在这里管理;
session:与请求有关的会话期;
application:servlet 正在执行的内容;
out:用来传送回应的输出;
config:servlet 的构架部件;
page:JSP 网页本身;
exception:针对错误网页,未捕捉的例外。
具体使用时再详细说明。
四.简单实验
实验要求:
1.在页面中输出乘法口诀表
2.编写三个JSP页面:first.jsp 、second.jsp和third.jsp。另外,要求用“记事本”编写一个TXT文件hello.txt。hello.txt的每行有若干个英文单词,单词之间用空格分隔,每行之间用“
”
分隔,如下所示:
hello.txt
package apple void back public
private throw class hello welcome
(1)first.jsp的具体要求
first.jsp使用page指令设置contentType属性的值是text/plain,使用include指令静态插入hello.txt文件。
(2)second.jsp的具体要求
second.jsp使用page指令设置contentType属性的值是application/vnd.ms-powerpoint,使用include指令静态插入hello.txt文件。
(3)third.jsp的具体要求
third.jsp使用page指令设置contentType属性的值是application/msword,使用include指令静态插入hello.txt文件。
其中hello.txt文件内容如下:
hello.txt package apple void back public <br/> private throw class hello welcome
首先是实验1 乘法口诀表的页面:
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>乘法表</title></head><body><br/><br/><h2>乘法表</h2><br/><br/><br/> <% for(int i=1;i<=9;i++){ for(int j=1;j<=9;j++){ if(j<=i){ //out.print(i+"*"+j+"="+i*j); %> <%=j%> * <%=i%> == <%=i*j%> <% } %> <%} %> <br/> <%} %></body></html>
然后是实验2
frist.jsp
<%@ page language="java" contentType="text/plain"%><!DOCTYPE html><html><head> <title>Frist</title> <meta charset="utf-8"></head><body><jsp:include page="hello.txt" /><!-- <%@ include file ="hello.txt" %> --></body></html>
second.jsp
<%@ page language="java" contentType="application/vnd.ms-powerpoint"%><!DOCTYPE html><html><head> <meta charset="utf-8"> <title>Second</title></head><body><!-- <jsp:include file="hello.txt" /> --><%@ include file ="hello.ppt" %></body></html>
third.jsp
<%@ page language="java" contentType="application/ms.word" %><!DOCTYPE html><html><head> <title>Thrid</title></head><body><!-- <jsp:include file="hello.txt" />s --><%@ include file="hello.txt" %></body></html>
- Jsp自我学习笔记1
- JSP 自我学习笔记2
- Jsp自我学习笔记3
- Unity Shader自我学习笔记1
- jsp学习笔记1
- JSP学习笔记1
- jsp学习笔记1
- JSP学习笔记1
- JSP学习笔记1
- JSP学习笔记1
- jsp学习笔记1
- JSP学习笔记1
- 数据库自我快速学习笔记
- 数据库自我快速学习笔记
- JSP学习笔记(1) -- JSP 2.0基础
- jsp学习笔记1:初识jsp
- JSP学习笔记(1)-JSP简介
- JSP 2.0 学习笔记 - 1
- Thread.sleep(0)的意义& 多线程详解
- 十一、 device_register
- 互联网安全防御之道
- 推荐几款实用的Android Studio 插件
- 最大公因子
- Jsp自我学习笔记1
- String首字母大写处理
- js手机号校验
- linux常用命令整理
- mysql的查询、子查询及连接查询
- tomcat指定jdk
- MSSQL批量替换语句 在SQL SERVER中批量替换字符串的方法
- bootstrap-table 分页,超细致!新手写的个人的看法和理解。
- jenkins集成sonarqube代码质量跟踪分析