JSP 核心 (等待更新)

开篇:JSP的等同于servlet

编译器将其转化为.class,后执行。一旦配置在Tomcat webapps,运行访问后,在Tomcat--->work文件内出现java文件,其内容即为转化后的JSP。

 

JSP语法:

分为三个类型:

(1)编译器指令:include,page,taglib

(2)脚本语法: 

              注释:<!--...-->,<%--...-->

              声明:<%!...%>

              表达式:<%...%>

              java脚本段:<%...%>

(3)动作语法:<jsp:forword>,<jsp:include>,<jsp:plugin>,<jsp:getProperty>,<jsp:setProperty>,<jsp:useBean>

 

Part 1 :

JSP编译器指令:

    page:

 <%@page contentType="text/html;charset=GBK"%>
 <!--转化为.class中的setContentType()-->

 <%@page import="java.util.*,java.lang.*"%>
 <!--转化为导包-->

 <%@page errorPage="error.jsp"%>
<!--设置错误页面,出错后显示-->

 

    include(下面详细介绍):

<%@ include file="相对位置"%>

 

   taglib:

<%@taglib uri="http://java.sun.com/jstl/core"prefix="c"%>
<!--注意:是uri 不是 url -->

 

include分为静态导入和动态导入:

静态导入:   <5@include file="logo.jsp"%>

                在servlet引擎编译时,就将此文件内容包含进去(两个文件代码整合到一起,全部放到jspService方法中),所以只生成一个servlet,因此两个页面不能含有

                同名变量,否则出错;运行效率略高,耦合度较高,不灵活;

动态导入:    <jsp:include page="logo.jsp"><jsp:include>

                 在servlet引擎转译后,再请求此页面,所以共生成了两个servlet,所以可以有同名变量:

                  生成两个servlet,相当于两个类之间的调用,耦合性低,非常灵活;

 

Part 2 脚本语法:

html注释 : <!--comments-->

隐藏注释 :  <%--comments--%>

声明      :   <%!......%>                       (声明变量或定义方法,内为java语言)    (使用率低,一般都是jsp+servlet,不需要单独使用jsp)

             如:

<%!
          int a=3;

          void test(){
                out.print(a);
};

%>

 

表达式  :    <%=...%>                         (输出某个值)

             如:

<%=a> 
<!--编译后为system.out.println(a);-->

脚本式  :    <%...%>          (中间为java代码)

             一个jsp中多个<%...%>脚本段,编译后在一个方法内,不管多少个脚本段。

 

内置对象:

request,response,session,context,application,等 在jsp文件被java引擎编译后的java文件中,_jspService(HttpServletRequest request,HttpServletResponse response)方法中,已经被声明存在,可直接使用。

代码如下:

 request对象代表来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用对象。相关方法:

            getParameter,getParameterNames,getParameterValues;

response对象代表的是对客户端的响应,也就是说可以通过response对象组织发送到客户端的数据,但由于组织方式比较底层,不建议使用,如果需要

           向客户端发送文字,直接使用out对象: out.write(); out.print();  ------>因为out对象加了缓存,效率高。

          如图:

           

           {out对象代表了客户端发送数据的对象,与response对象不同,通过out对象直接发送的内容将是浏览器将要显示的内容,是文本一级的,可以

            通过out对象直接向客户端写一个由程序动态生成的html文件,其常用方法有:print,println,clear,clearBuffer,flush,getBufferSize,getRemaining,

            这是因为 out对象包含一个缓存区,所以需要一些对缓冲区的操作方法

            };

 session对象:代表服务器和客户端所建立的会话,当需要在不同JSP页面中保留用户信息的情况下使用,比如在线购物,客户轨迹跟踪等;

                使用:JSP中使用session

<%
    session.setAttribute("a","123");
%>

 

                 重要:若web访问量大,或是门户类网站,建议设置不创建session(JSP顶部)             

<%@ page session="false">
<!--不创建session对象-->

 

application对象:负责提供应用程序在服务器中运行的一些全局信息,常用方法有getMimeType和getRealPath等;

 

posted @ 2016-08-06 12:33  JokerJason  阅读(462)  评论(0编辑  收藏  举报

It's not who you are underneath, it's what you do that defines you

Brick walls are there for a reason :they let us prove how badly we want things