jsp基础(一)

来源:互联网 发布:淘宝网白色运动鞋 编辑:程序博客网 时间:2024/06/06 09:13

JSP (java服务器页面)

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

 

它实现了Html语法中的java扩展(以<%, %>形式)。JSPServlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

 

JSP技术使用Java编程语言编写类XMLtagsscriptlets,来封装产生动态网页的处理逻辑。网页还能通过tagsscriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

 

Java ServletJSP的技术基础,而且大型的Web应用程序的开发需要Java ServletJSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

 

句法

一个JSP页面可以被分为以下几部份:

静态数据,如HTML

JSP指令,如include指令

JSP脚本元素和变量

JSP动作

用户自定义标签

 

静态数据

静态数据在输入文件中的内容和输出给HTTP响应的内容完全一致。此时,该JSP输入文件会是一个没有内嵌JAVA或动作的HTML页面。而且,客户端每次请求都会得到相同的响应内容。

 

JSP指令

Jsp编译指令          Jsp动作指令

Jsp编译指令

Page指令

 

 

作用:针对当前页面的指令

语法:<%@ page 属性1="属性值"属性2="属性值1,属性值2"… 属性n="属性值n"%>

eg:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 

Page常用属性

 

属性 描述               默认值

 

language   指定JSP页面使用的脚本语言              java

import     通过该属性来引用脚本语言中使用到的类文件        

contentType  用来指定生成网页的编码字符集和文件格式      text/html,ISO-8859-1

pageEncoding 指定JSP页面使用的编码方式     无

errorPage     指定错误处理页面。如果jsp页面发生异常,             无

会自动执向errorPage指向的页面处理    

isErrorPage 指定本页面是否是jsp错误处理页面。

如果是,就无需指定errorPage   

 

 

 

 errorPage属性

eg:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="error.jsp"%>

效果:当访问的页面抛出异常时该页面跳转到error.jsp页面,且浏览器中url地址不发生改变

 

错误处理页面第二种方法 配置web.xml(针对所有页面)

eg:

 <error-page>

   <error-code>404</error-code>

   <location>/404.jsp</location>

  </error-page>

<error-page>

   <error-code>500</error-code>

   <location>/500.jsp</location>

  </error-page>

 

 

include指令

作用:将一个外部jsp文件嵌入到当前jsp文件中

语法:<%@ include file=“被包含文件”%>

eg: <%@ include file=“a.jsp”%>

注:由于使用include指令将会涉及到2JSP页面,并会把2JSP翻译成一个servlet,所以这2JSP页面指令不能冲突(除了pageEncoding和导入的包),

        并且多个JSP页面中声明的变量不能重复。

 

taglib指令

作用:用于定义和访问自定义标签

<%@ taglib prefix="tagPrefix" uri="tagURI" %>

 

eg:引入JSTL标签库

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 

Jsp动作指令

<jsp:inlucde>标签

指令该动作指令告诉JSP 页面动态包含一个文件,即JSP 页面运行时才将文件加入。动作指令是在执行时才对包含的文件进行处理。它仅仅将被包含页面的body内容插入本页。

语法:

<jsp:include page=“被包含的文件”/>

<jsp:include page=“被包含的文件”>

      <jsp:param name=“参数名”  value=“参数值”/>

</jsp:forward>

 

 

 

<jsp:forward>标签

从该指令处停止当前页面的继续执行,而转向其它的一个JSP 页面。(通过forward方式跳转,页面参数不会丢失)

语法:

<jsp:forward page=“转发地址”/>

<jsp:forward page=“转发地址”>

      <jsp:param name=“参数名”  value=“参数值”/>

</jsp:forward>

增加的请求参数可以通过request.getParameter(“参数名”)获得。

 

<jsp:param>标签

这个标签与jsp:includejsp:forwardjsp:plugin标签一起使用。当该标签与jsp:include标签一起使用时,可以将param标签中的值传递到include指令要加载的文件中去

 

Include动态指令和静态指令的区别

静态导入是将被导入页面的代码完全融入,两个页面合成一个整体。而动态导入则只是将被导入页面的body内容导入。

静态导入时,被导入页面的编译指令会起作用。而动态导入时被导入页面的编译指令会失效。

动态导入可以增加额外的参数。(动态导入不同页面可以声明相同的变量名,静态导入不行)

 

动态导入涉及到的2jsp会被翻译成2servlet而静态导入涉及到的2jsp会翻译成一个servlet

静态导入是先包含后处理

 

 

 

原创粉丝点击