1.JSP的概念
JSP(Java Server Page)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准, 是Java EE标准(13个小的技术标准组成)中的重要组成部分。JSP是一个混血的语言。综合了Java、HTML、Taglib、XML 语言的特点。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
2.JSP的特点
1.能够使用丰富的Java内置对象,Servlet中所有的对象,都可以使用。
2.在HTML代码中,夹杂Java代码,(运行在服务器端)。
3.还有很多扩展标签可以使用JSTL、Struts TagLib。
3.JSP原理
JSP虽然编写的时候是在*.jsp文件中,但是真正运行还是依赖JavaEE的jar包。在 Tomcat服务器中webapps(保存发布的工程代码的目录)、work(保存经过Tomcat编译后的文件目录)编译过如下:
*.jsp源文件–> (Tomcat转义)–> *_jsp.java–>(JDK编译)—>*_jsp.class
–>(JDK运行)–>返回浏览器结果(html文档)
上述转义过程由Tomcat调用Apache组织内部开发的jar(jasper.jar、HttpJSPBase) 完成。
分层示图:
javax.servlet.Servlet
/
GenericServlet JspPage
| |
HttpServletHttpJspPage(HttpJSPBase(tomcat))
4.JSP基本语法
Jsp内的元素,page指令元素,指令:对整个jsp页面下达的命令,允许页面可以操作的内容
:指定整个页面的全局属性。
属性
说明
language=“java”
指定脚本元素中使用的脚本语言,目前只支持java
import=“importList”
指定脚本元素中使用到的Java类
session=“true|false”
用于指定该JSP是否参与到会话中,默认值为true
buffer=“none|size”
用于指定out对象使用的缓冲区大小,8kb为默认值
errorPage=“url”
用于当JSP页面发送异常时,转向的错误页面
isErrorPage=“true”
指定页面是否是错误处理页面,默认值为false
contentType=“ctinfo”
指定用于响应JSP页面的MIME类型和编码
pageEncoding=“en”
指定JSP页面使用的字符编码
isELIgnored=“true”
指定JSP页面是否忽略EL表达式,默认值为false
其中pageEncoding=”UTF-8″是设置JSP整个页面的字符集,而只针对html起作用。
include指令元素::指当前页面在运行时,可以包含的其他页面内容,可以重复利用的代码,在Java中可以独立成一个方法或者一个类。要使用时可以“调用”。在JSP中,重复的内容可以独立为一个页面jsp全称,使用时,使用上述指令进行“包含”。
语法:
注意:file=”relativeURL”被包含的内容所在路径,一定要是 *.jsp
Taglib指令元素::对常用的固定格式的Java代码进行封装后形成的标签语言的调用。Tomcatlib文件夹内该加载的jar文件。JSTL、JavaEE中默认使用的标签库。由*.jar、*.tld等组成,使用时告知JSP页面,例如这些标签库(java.lang.*、java.util.*)。Core、sql每个JSTL库中都有很多标签。
语法:
脚本元素:代码段:在jsp页面中,要使用java代码的区域,,可以放到任何位置,不能在代码段内放html标签,但可以拆分脚本代码。
声明:定义整个页面有效的变量或方法;
表达式:用于输出有明确结果的表达式;
注意:表达式内只能放一个对象,没有结束符号。
注释:前台注释()、可以看到注释内容,后台注释()。
动作元素:动作是利用XML语法格式的标记来控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。为了简化页面代码的开发,能够完成一定的逻辑操作的代码。JSP为了简化常用的固定格式的代码,把这些代码转化成了一个个的标签,完成判断、循环、连数据库等功能。
⑴ –jsp 页面跳转。
⑵ –jsp 页面包含的。
⑶ –在页面中导入Java Applet程序(已经不常用了)。
⑷ –封装在jsp中任何的new方法,创建JavaBean。
⑸ –配合useBean使用的,取得对应属性值的方法。
⑹ –配合useBean使用的,设置对应属性值的方法。
部分代码:
<%
User u = new User();
session.setAttribute("user",u);
u.setName("张明");
u.getName();
%>
include指令和动作的区别:
⑴静态包含:,多个jsp页面,转义生成一个xxx_jsp.java 文件,该JSP Servlet中包含所有页面的内容,注意:多个页面中不能定义同名的变量。
⑵动态包含:,包含和被包含的相关jsp页面,不同情况下,转义生成的class字节码方式不同。多个jsp页面,分别转义成多个xxx_jsp.java,并编译成多个xxx_jsp.class字节码文件,运行过程中内容才合并输出到一个页面。
静态包含:转义时合并。
动态包含: 编译时合并。
5. 知识扩展
JSF:全称Java Server Faces ,是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。
Groovy:是设计用来以精简快速有趣的方式来在Java平台上处理事务,并且把类似Python Ruby等的强大功能带到Java的世界里。
JavaFX: Sun公司(已于2009年被Oracle公司收购)在2008年12月05日发布了JavaFX技术的正式版,它使您能利用JavaFX编程语言开发富互联网应用程序(RIA)。借鉴了Script 语言的特点。
6.作用域
定义:简单地说,就是作用的范围,指它在函数的哪些范围内可以用,而在其他部分不可以,要用就得重新定义。在程序中指值能够发挥作用的有效时间。Java代码中,对象与对象之间可以用值传递(传参)的方式进行调用,所有作用域一般使用{ }。
JSP 中的隐式对象的作用域:
1.页面作用域:PageScope,非常短暂,一个JSP页面的执行时间,等价于Java中的 this。
2.请求作用域:RequestScope,只能在跳转的页面中取到所传递的值的范围,时间取决于:服务器响应时间、网络的传输时间。
request.setAttribute("list", list);
request.getRequestDispatcher("chatLogin.jsp").forward(request, response);
3.会话作用域:SessionScope,默认30分钟jsp全称,一般可以修改
HttpSession session = request.getSession();
session.setMaxInactiveInterval(arg0);
4.应用程序作用域:ApplicationScope,是一个Web工程一个的作用域,所有的 Servlet/JSP 共享整个作用域。时间从服务器启动到服务器关闭。
ServletContext application = session.getServletContext();
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410