forward>,
getProperty>,include>
7)脚本语法
–“HTML注释”:
—comments-->
–“隐藏注释”:
<%--comments--%>
–“声明”
–“表达式”
–“脚本段
8)编译器指令
•编译器指令包括“包含指令”,“页指令”和“taglib指令”
•它们包含在“<%@%>”卷标里。
•两个主要的指令是page与include。
9)jsp中的声明
JSP声明的格式:
<%!
inta=3;%>,脚本段的形式:
<%intb=3;%>,当服务器将JSP转换为Servlet时,会将JSP中的声明转换为类的成员变量,而将脚本段转换为方法中的局部变量,Servlet是单实例的,这样成员变量的值就只有一个,每个用户都会访问到它,而脚本段中的值则是局部变量,每个用户访问的时候各有一份,互不影响。
10)表达式
<%=表达式%>
11)脚本段
<%代码%>
12)包含指令
•include指令:
向当前页中插入一个静态文件的内容。
•JSP语法格式如下:
•<%@includefile="relativeURL"%>或
•<%@includefile="相对位置"%>
13)page指令
•“Page”指令用于定义JSP文件中的全局属性。
JSP语法格式如下:
<%@page
[language="java"]
[extends="package.class"]
[import="{package.class|package.*},..."]
[session="true|false"]
[isThreadSafe="true|false"]
[errorPage="relativeURL"]
[contentType="mimeType
[;charset=characterSet]"|"text/html;charset=ISO-8859-1"]
[isErrorPage="true|false"]
%>
有些包不需要我们导入:
java.lang.*javax.servlet.*javax.servlet.jsp.*
javax.servlet.http.*
14)forword>
forward>指令用于转向页面,在该指令后面的所有代码都没有机会执行了,因为页面的流程已经转向了另外一个页面了。
案例:
页面一:
<%@pagecontentType="text/html;charset=gb2312"%>
test
forwardpage="forwardTo.jsp">
paramname="userName"value="riso"/>
forward>
页面二:
<%@pagecontentType="text/html;charset=gb2312"%>
--forwardTo.jsp-->
<%
StringuseName=request.getParameter("userName");
StringoutStr="谢谢光临!
";
outStr+=useName;
out.println(outStr);
%>
15)九种内置对象
•·request,请求对象
•·response,响应对象
•·pageContext,页面上下文对象
•·session,会话对象
•·application,应用程序对象
•·out,输出对象
•·config,配置对象
•·page,页面对象
•·exception,异常对象
16)重点对象
•request,请求对象(类型javax.servlet.ServletRequest)
•session,会话对象(类型javax.servlet.http.HttpSession)
•application,应用程序对象(类型javax.servlet.ServletContext)
17)requset对象
•“request”对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用的对象。
关于它的方法使用较多的是getParametergetParameterNames(获得参数的名字)和getParameterValues(获得某个参数所有的值),通过调用这几个方法来获取请求对象中所包含的参数的值。
注意:
getParameter方法是getParameterValues方法的特例,表示请求参数值只有一个,如果请求参数值有多个,请使用getParameterValue方法。
在多选框的情况下,需要使用getParameterValues方法来获取用户所选择的多个复选框的值。
18)application对象
•“application”对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等。
19)其他三种对象
•“config”对象提供一些配置信息,常用的方法有
getInitParameter和getInitParameterNames,
以获得Servlet初始化时的参数。
•“page”对象代表了正在运行的由JSP文件产生
的类对象,不建议一般读者使用。
•“exception”对象则代表了JSP文件运行时所产
生的异常对象,此对象不能在一般JSP文件中直
接使用,而只能在使用了“<%@pageisErrorPage="true"%>”的JSP文件中使用
20)request的setAttribute与getAttribute方法
request的setAttribute与getAttribute方法一般都是成对出现的,首先通过setAttribute方法设置属性与属性值,然后通过getAttribute方法根据属性获取到与该属性对应的对象值(获取到之后一般都需要进行向下类型转换,将属性值转换为真正的对象)。
setAttribute与getAttribute方法都是在服务器端内部执行的,客户端不知道服务器端是否执行过这两个方法。
21)request的getParameter方法
request的getParameter方法的作用是获取到客户端通过表单或url请求参数所发送过来的参数值,是客户端与服务器端之间的交互,服务器端要想获取到客户端发送过来的数据,就需要使用getParameter方法来获取。
没有与getParameter方法对应的setParameter方法。
22)request对象内数据的存活范围
request对象内数据的存活范围就是在request对象的存活范围内,当客户端向服务器端发送一个请求,服务器向客户端返回一个响应后,该请求对象就被销毁了;之后再向服务器端发送新的请求时,服务器会创建新的request对象,该request对象与之前的request对象没有任何关系,因此也无法获得在之前的request对象中所存放的任何数据
23)session对象内数据的存活范围
session对象内数据的存活范围也就是session对象的存活范围(?
只要浏览器不关闭,session对象就会一直存在?
默认30分钟),因此在同一个浏览器窗口中,无论向服务器端发送多少个请求,session对象只有一个。
24)application
application(应用对象):
存活范围最大的对象,只要服务器没有关闭,application对象中的数据就会一直存在。
在整个服务器运行过程当中,application对象只有一个。
案例:
网站计数器
<%@pagecontentType="text/html;charset=gb2312"%>
网页计数器
<%if(application.getAttribute("counter")==null)
application.setAttribute("counter","1");
else{
Stringstrnum=null;
strnum=application.getAttribute("counter").toString();
inticount=0;
icount=Integer.valueOf(strnum).intValue();
icount++;
application.setAttribute("counter",Integer.toString(icount));
}%>
您是第<%=application.getAttribute("counter")%>位访问者!
25)RequestDispatcher请求转发
RequestDispatcher的forward(request,response)方法称作请求转发。
26)sendRedirect重定向
HttpServletResponse对象的sendRedirect(Stringlocation)方法称作重定向。
如果location地址前面加上“/”,则表示相对于Servlet容器的根来请求,即http:
//localhost:
8080,如果location地址前没有加上“/”,则表示相对于当前请求的URI来寻找地址。
27)请求转发与重定向的区别。
1)请求转发,整个过程处于同一个请求当中
2)重定向。
实际上客户端会向服务器端发送两个请求。
3)RequestDispatcher是通过调用HttpServletRequest对象的getRequestDispatcher()方法得到的,是属于请求对象的方法。
4)sendRedirect()是HttpServletResponse对象的方法,即响应对象的方法,既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始向客户端返回执行的结果。
5)重定向在FireBug中的示意图
28)application的getRealPath方法
方法签名:
StringgetRealPath(Stringpath)
aStringspecifyingtherealpath,ornullifthetranslationcannotbeperformed
request.getSession().getServletContext().getRealPath(“/文件名”)
29)隐藏表单(hidden)
向导式注册信息尽量藏表单(hidden),而不用session
这是最常见的一种方式,也是最简单的,但有时该技巧非常管用,形如:
通过隐藏表单,我们也可以将一个页面信息,传递给另外的页面
30)javascript变量和方法声明
var变量;
function方法名(){}
注:
在jsp中使用javascript需要先声明
javascript方法
31)在表单中调用javascript方法
例如:
onsubmit="returnvalidate()"、onclick="returnvalidate()",如果将数据送到服务器需要return,否则不用return。
32)javascript中的document对象
1.document.getElementById(Stringelementid)返回指定id值
2.document.getElementsByName(Stringelementname)返回指定name变量,返回类型nodelist,要用循环取出
3.document.getElementsByTagName(Stringtagname)返回指定tag变量,返回类型modelist,要用循环取出
33)在javascipt中for循环,定义变量时var,不是int
34)javascript取值用变量.value,取出值得长度用变量.value.length
35)js实现全选和取消全选案例
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">