JSP笔记

<%! %>    声明全局变量
<% %>    包含java语句块
<%= %>    变量输出
<!-- html注释,客户端可以显示 -->
<%-- jsp注释,客户端不可以显示 --%>
JSP指令元素
1、page指令,主要用来设定JSP页面的全局属性,该配置将作用于真个JSP页面,甚至包括静态包含的文件。语法:
        <%@page 属性1="属性值1" 属性2="属性值2" %>。
            language属性---例:<%@page language="java"%>,目前暂时只能使用java语言。
            extends属性---指定该JSP页面生成的Servlet是继承于哪个父类,设定时必须指定该类的全名,即包名加类名。很少使用,慎用!否则可能限制到JSP的编译能力。语法:<%@page extends="继承的父类"%>
            import属性---指定导入的java包,有些包可以不用导入,如java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*;语法:<%@page import="导入的包"%>。例:<%@page import="java.util.*"%>   <% Date now = new Date();%>
            session属性---指定该JSP页面中是否可以使用session对象。默认值为true。语法:<%@page session="true|false"%>
            buffer属性---指定输出流是否具有缓冲区,以及设置缓冲区大小。语法:<%@page buffer="none | 40KB"%>
            autoFlush属性---指定缓冲区是否自动进行强制输出。默认值为true。语法:<%@page autoFlush="true | false"%>
            isThreadSafe属性---指定该JSP文件是否支持多线程使用。默认值为true。语法:<%@page isThreadSafe="true | false"%>
            info属性---用来设置该JSP文件的相关信息,可以是任何的信息字符串,并通过Servlet.getServletInfo方法来取得该信息。语法:<%@page info="JSP文件相关信息"%>
            errorPage属性---用来设置如果当前JSP文件发生异常错误时,网页重新跳转到能够处理异常的JSP文件。语法:<%@page errorPage="错误处理页面"%>
            isErrorPage属性---用来指定该JSP文件是否为能够处理异常的JSP文件,默认值为false。语法:<%@page isErrorPage="true | false"%>
            contentType属性---用来指定该JSP文件的MIME格式,以及网页编码格式。语法:<%@page contentType="text/html;charset=gb2312"%>
            pageEncoding属性---用来指定网页的的编码格式。语法:<%@page pageEncoding="gb2312"%>
            isELIgnored属性---用来指定该JSP文件是否支持EL表达式。语法:<%@page isELIgnored="true | false"%>

2、include指令,用于在JSP文件中插入一个包含文本或者代码的文件。被包含的文件所执行的结果插入到JSP文件放置include指令的位置。只有当被包含文件执行完成。该JSP文件才会恢复执行。语法:<%@include file="被包含文件地址"%>。例:<%@include file="content.txt"%>    content.txt:<%@page contentType="text/html;charset=gb2312"%> JSP世界欢迎您
    
3、taglib指令,用来声明此JSP文件使用了自定义的标签,同事引用指定的标签库以及设置标签库的前缀。语法:<%@taglib uri="URIToTagLibrary" prefix="tagPrefix"%>,其中uri属性用来指定标签库的存放位置,prefix属性用来指定该标签库使用的前缀。例:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>    <c:out value="Hello world!" />

JSP动作元素,可以用来动态的包含文件、网页跳转以及使用JavaBean组件等等。语法:<jsp:XXX />
第一类与存取JavaBean有关的,三个动作元素:<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>
第二类是JSP基本动作元素。六个动作元素:<jsp:include>、<jsp:forward>、<jsp:param>、<jsp:plugin>、<jsp:params>、<jsp:fallback>
第三类是JSP2.0新增的动作元素,主要与JSP document有关。六个动作元素:<jsp:root>、<jsp:declaration>、<jsp:scriptlet>、<jsp:expression>、<jsp:text>、<jsp:output>
第四类也是新增动作元素,主要用来动态生成XML元素标签的值。三个动作元素:<jsp:attribute>、<jsp:body>、<jsp:element>
第五类也是新增动作元素,主要用来Tag File中,两个动作元素:<jsp:invoke>、<jsp:doBody>

1、<jsp:include>用来包含静态和动态的文件,如果被包含的文件为静态的,则只是单纯的加到JSP页面中,不进行处理;如果被包含文件为动态的,则会先处理,然后将结果加到JSP页面中。语法:<jsp:include page="包含文件URL地址" flush="true | false" />,默认为false。
                    <jsp:include>和<%@include %>的区别
            使用<%@include%>指令元素只是将页面的内容静态的包含进来,如果被包含的文件中有JSP代码,则会执行该代码,而不管该文件是否为动态文件。先包含再处理
            <jsp:include>动作元素动态的包含文件,如果被包含的文件是静态的,则直接将内容包含进行,不会进行处理;而如果被包含的文件是动态的,则先执行,再将结果包含进来并显示。先处理再包含
2、<jsp:forward>用来转移用户的请求,从一个页面跳转到另一个页面。这种跳转为服务器端跳转,所以用户的地址栏不会发生任何的变化。语法:<jsp:forward page="跳转文件URL地址" />
3、<jsp:param>用来传递参数,一般与<jsp:include>、<jsp:forward>联合使用。语法:<jsp:param name="参数名" value="参数值" />。例:<jsp:include page="contentDemo.jsp"><jsp:param name="age" value="19" /></jsp:include>    <% String strAge = request.getParameter("age");%>

JSP内置对象,九个对象分为如下四类。
第一类:与Servlet有关,包括pagehe config两个对象。
第二类:与Input/Output有关,包括out、request和response三个对象。
第三类:与Context有关,包括session、application和pageContext三个对象。
第四类:与Error有关,仅包括exception。
    属性的保存范围:在JSP中可以通过setAttribute()和getAttribute()两个方法设置和取得属性,从而实现数据的共享。同样JSP中提供四种属性保存范围,为page、request、session以及application。
        例,<%-- 在page范围设置属性 --%><% pageContext.setAttribute("name","James"); %>
               <%-- 取得page范围属性 --%><% String strName = (String)pageContext.getAttribute("name"); %>
                request.setAttribute()    session.setAttribute()  application.setAttribute()   
request对象   例:request接收多个参数,<% Enumeration e = request.getParameterNames(); while(e.hasMoreElements()){ 
                                                            String str = (String)e.nextElement(); String strRequest = request.getParameter(str);
                                                            out.println(str + "参数值为:" + strRequest + "<br>");} %>
        例:request获得参数的所有参数值,<% String[] strArr = request.getParameterValues("sport");
                                                                            for(String str : strArr) { out.println(str); }%>
        例:request获得封装所有参数值的Map,<% Map mapParamter = request.getParameterMap();
                                                                                String[] strUsername = (String[])mapParamter.get("username");
                                                                                out.println("用户名:"+strUsername[0] +"<br>"); 
                                                                                String[] strPassword = (String[])mapParamter.get("password");
                                                                                out.println("用户名:"+strPassword[0] +"<br>"); 
                                                                                String[] strSport = (String[])mapParamter.get("sport");
                                                                                for(String sport: strSport) { out.println(sport);
                                                                            %>
response对象    用来给客户端传送输出信息,设置表头等。常用方法为页面跳转、自动刷新、自动跳转。
        例:<% response.sendRedirect("DirectPage.jsp");%>    属于客户端跳转
        例:<% response.addIntHeader("Refresh",10);%>
        例:<% response.setHeader("Refresh","10;URL=http://www.baidu.com");%>
out对象    用于页面输出、获得缓冲区使用大小
        例:<% int all = out.getBufferSize(); int remain = out.getRemaining(); int use = all - remain; %>
session对象    用来表示拥护的会话状况,一般用于保存用户的各种信息,直到生命周期超时或被认为释放掉为止。常用方法:设置并获取session生命周期、获得session其他信息。
        例:<% session.setMaxInactiveInterval(60*2); int time = session.getMaxInactiveInterval(); %>
        例:<% long creatTime = session.getCreationTime(); String sessionID = session.getId();
                      long lastTime = session.getLastAccessedTime(); boolean isnew = session.isNew(); %>








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值