JSP技术基础

JSP技术基础

Ø JSP由来?JSPServlet技术区别关系?

Servlet技术在生成动态网页时,需要通过response的输出流,通过print语句生成HTML源代码

Servlet生成HTML源代码,编程非常复杂,不利于美工页面人员维护 ,也不能使用Dreamweaver所见即所得开发工具进行调试

sun公司为了简化动态网页生成,推出JSP技术 ,可以说JSP技术就是Servlet技术,功能完全相同

 

Ø 2JSP运行原理

JSP在执行时,会被服务器翻译为Servlet 编译执行, JSPServlet方式运行的 ------ JSP就是Servlet

* JSP 支持HTML语法,通过<% %> 嵌入java程序代码,Servlet 本身是一个java程序,不支持HTML

* JSP在运行时 翻译Servlet程序 保存tomcat/work 目录

 

Ø 3JSP脚本元素

<%! %> JSP声明 <%= %> JSP脚本表达式 <% %> 脚本代码

<%! %> 生成内容 翻译Servlet程序成员变量、成员方法、内部类

<%= %> 翻译为 out.print ,在service方法内部,用于生成HTML页面源代码

<% %> 嵌入任何java程序代码,运行多个脚本块共同组合为一个java程序

JSP注释

l JSP注释:<%-- … --%>,转化阶段消失,只能被开发人员看到

 

l JAVA注释:///**//***/,编译阶段消失

 

l HTML注释:<!-- … -->, 不会消失,在页面中也能看到

 

JSP注释 在JSP翻译为Servlet代码后 消失 ,只存在于JSP源代码中

Java注释 在Servlet程序执行后消失,不会被显示客户端HTML源代码中

HTML注释 会在客户端HTML 源代码中保留 (在浏览器客户端执行 )

* HTML注释 所以不能阻止 JSP代码和 Java代码的执行

JSP指令

l 功能

• 用于指示JSP执行某些步骤

• 用于指示JSP表现特定行为

l 语法格式

• <%@ directive [ attribute =value] * %>

l 分类

• page指令标记

• include指令标记

• taglib指令标记

 

Ø page指令

l page属性包含在“<%@ page ”和“%>”之间。

 

l 这些属性可以单独使用,也可以几个或多个同时使用

 

l page指令用来定义JSP文件的全局属性

 

JSP页面中,只有import可以出现多次,其它属性都只能出现一次

 

1) language 值必须是java ,可以不写默认也是 java

 

2) extends 指定JSP翻译后Servlet继承哪个类,tomcat中默认继承 extends org.apache.jasper.runtime.HttpJspBase,一般不做修改,如果非要改,必须继承HttpServlet

 

3) session 指定JSP翻译后Servlet是否可以直接使用内置对象session,默认true 可以直接使用

* 如果session = true 翻译后生成以下两句代码

HttpSession session = null;

session = pageContext.getSession();

4) import 指定JSP翻译Servlet后 导入包

* 如果使用 当前包和java.lang包 之外的类,必须通过import 导包

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.jsp.*;

* javax.servlet包 、javax.servlet.http包、javax.servlet.jsp包 当中类,在JSP中使用时 不需要导包

5) bufferautoFlush 设置jsp中内置对象 out 的缓冲区大小 和是否自动输出

*  pageContext = _jspxFactory.getPageContext(this, request, response, null, false, 8192, true);

该方法最后两个参数,8192就是默认buffer大小,true代表 autoFlush 自动输出

 

<%@ page buffer="16kb" autoFlush="false" %> 生成代码如下:

pageContext = _jspxFactory.getPageContext(this, request, response,null, false, 16384, false);

 

6) errorPageisErrorPage 设置 JSP发生错误后跳转页面,设置错误的处理页面 (错误友好页面 )

* 单个页面的友好页面设置,每个jsp都需要配置,十分麻烦

* 通用错误页面配置 web.xml

<error-page>

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

   <location>/500.jsp</location>

</error-page>

* 错误处理页面中,通过设置isErrorPage=true 使用JSP内置对象 exception 获得异常信息

Throwable exception = org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);

    if (exception != null) {

      response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

    }

* IE浏览器无法显示错误友好页面解决:工具--internet选项 -- 高级 -- 将显示友好HTTP错误信息前面钩 去掉

 

7) contentTypepageEncoding : pageEncoding JSPServlet源文件编码,contentType设置Http响应内容编码

8) isELIgnored 设置是否解析EL表达式,如果设置false 会对EL进行解析,如果设置true,不会对EL进行解析

 

 

Ø include指令

 

l include指令的语法格式如下

• <%@ include file=filename%>

l include指令的作用是在JSP页面中静态包含一个文件,同时由JSP解析包含的文件内容

l 静态包含的含义

• file不能为一变量

• <% String url="index.html" ; %>

• <%@ include file = "<%= url %>" %>

• 不可以在file 所指定的文件后接任何参数

• <%@ include file = "jw.jsp?nm=browser" %>

1) 包含内容注意: 被包含页面不需要 完整html结构 <html> <body> , 只需要编写HTML代码片段就可以了

2) include指令包含原理 (静态包含原理)

* file属性不能使用变量,不能携带参数

 

 

Ø taglib指令

用来引入标签定义文件

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

uri : 标签文件名称空间

prefix : 前缀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值