JSP

来源:互联网 发布:skb平面设计方案优化 编辑:程序博客网 时间:2024/05/07 12:03

jsp页面发布到tomcat中后实际上会被翻译成.java文件和.class文件放在了apache-tomcat-7.0.30\work\Catalina\localhost\jspDemo_mine\org\apache\jsp目录下了,你点进去查看一下,再对比一下你自己写的jsp文件,然后你就秒懂jsp是底层怎么回事了。


JSP技术简介

JSP是Java Server Page的缩写,它是Servlet的扩展,它的作用是简化网站的创建和维护。
JSP是HTML代码与Java代码的混合体。
JSP文件通常以JSP或JSPX的扩展名。
JSP拥有自己的语法。
JSP形式上像HTML,但本质上是Servlet。
JSP的出现,使得将Web开发中的HTML与业务逻辑代码有效分离成为可能。通常JSP只负责生成动态的HTML文档,而业务逻辑由其他Java组件如JavaBean来实现。JSP可以通过Scriptlet来访问这些组件。
<% %>


ContentType与pageEncoding的区别:

pageEncoding是jsp文件本身的编码 ,把jsp文件编译成java的时候给编译器用的 。
contentType的charset是指服务器发送给客户端时的内容编码 ,是浏览器解析网页的时候用的 
如果两个任意设置了其中一个,另一个即会与此保持一致。但,contentType除可以设置charset外,还可以设置MIME类型,如text/html


1、查找与JSP文件对应的Servlet,如果已经存在,就调用它的服务方法。
2、如果与JSP对应的Servlet不存在,就解析文件系统中的JSP文件,将它翻译成Servlet源文件,接着把Servlet源文件编译成Servlet类,然后再去初始化并运行Servlet。

    以下是经过翻译的JSP文件,可见在它的服务方法中存在以下对像
    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;


JSP语法:

JSP指令。
<%@   指令名  属性=“值”%>
JSP声明。成员变量,或是成员方法.
<%!   …. %>
Java程序片段。不论有多少这样的代码块,都将包含_jspSerivice方法中。
<% … %>
Java表达式。-快速输出信息. _jspSerivice
<%= …%>
JSP隐含对像。
pageContext,request,response,session,config,application,out,page


JSP指令-page:

Page指令-用于指定所使用的语言,及导入的包。
属性说明:
language – 示例:language=“java”
import  -如:  (注意多个引用之间使用逗号分开。)
<%@ page import=“java.util.*,java.sql.*”%> contentType – 指定响应结果的MIME类型。默认为text/html;charset=ISO-8859-1
session = true | false –指定jsp页面是否使用session.
errorPage = url – 指定当发生异常时转发到哪一个页面。
isErrorPage = true|false, - 表示此页是处理异常的页面。 
pageEncoding – 设置页面的编码方式,此编码方式,会自动应用到contentType中的charset上,如果没有设置content-Type的话。显示时以content-Type为准。建议这两个值应该设置一个或至少应该一致。建议设置content-Type
buffer = none | 8kb | sizeb – 设置页面缓冲区大小。-建议不要修改此值。


JSP指令-include:

JSP可以通过include指令来包含其他文件的内容,被包含的可以是JSP或html文件。
语法:
<%@ include file=“目标页面”%>  -静态包含.
共享变量,共享request
<jsp:incluce..  JSP标签动态包含.
仅共享request
 实际应用:
在开发中通常使用此功能包含一些不经常修改的页头和页脚。


JSP指令-taglib—标签库:

taglib指令,用于在页面上声明要使用的自定义标签。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
uri – 指定自定义的标签的引用URI。
Prefix-指定使用时的前缀。
如:<c:out value=“hello”/> 
 此内容将在讲自定义标签时具体讲。
JSTL :java Standard Tag Lib
URL – 统一资源定位符
URI – 统一资源标识符.—XML namespace=“http://hncu.cn”


JSP声明:

JSP声明用于在JSP文件中声明成员变量和成员方法。
语法:
<%!  int a = 100;
         public void abc(){
        }
%>
 可以声明静态变量,也可以声明静态方法。可以多个JSP声明的代码块。


JSP的Java程序片段和JSP表达式:

    <%        //可以声明多个Java片段,它们都位于_jspService方法中。        int a = 90;     %>     <%     out.print(a);   //JspWriter     %>     <%     for(int i=0;i<a;i++){  //注意JSP表达式不能用;号结束     %>           <input type=“button“ value=“<%=i%>”><br/>     <%     }     %>



0 0
原创粉丝点击