jsp笔记.docx
- 文档编号:9217790
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:26
- 大小:1.58MB
jsp笔记.docx
《jsp笔记.docx》由会员分享,可在线阅读,更多相关《jsp笔记.docx(26页珍藏版)》请在冰点文库上搜索。
jsp笔记
Jsp笔记
1)什么叫jsp?
1
2)jsp文件结构1
3)jsp编译过程1
4)jsp执行过程1
5)JSP最终都会转换为Servlet去执行。
2
6)JSP语法分为三种不同的类型2
7)脚本语法2
8)编译器指令2
9)jsp中的声明2
10)表达式2
11)脚本段2
12)包含指令3
13)page指令3
14) forword>3 15)九种内置对象4 16)重点对象4 17)requset对象4 18)application对象4 19)其他三种对象4 20)request的setAttribute与getAttribute方法5 21)request的getParameter方法5 22)request对象内数据的存活范围5 23)session对象内数据的存活范围5 24)application5 25)RequestDispatcher请求转发6 26)sendRedirect重定向6 27)请求转发与重定向的区别。 6 28)application的getRealPath方法7 29)隐藏表单(hidden)7 30)javascript变量和方法声明7 31)在表单中调用javascript方法7 32)javascript中的document对象8 33)在javascipt中for循环,定义变量时var,不是int8 34)javascript取值用变量.value,取出值得长度用变量.value.length8 35)js实现全选和取消全选案例8 36)javabean9 37)javabean的特征9 38)访问javabean语法10 39)jsp: setProperty10 40)JavaBean的存活范围11 41)servlet向jsp传递中文时解决乱码11 42)EL表达式(expressionlanguage)11 43)创建客户化JSP标签的步骤12 44)创建客户化JSP标签范例二14 45)属性文件***.properties16 1)什么叫jsp? 全名JavaServerPages •在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页 •Java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。 •所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。 2)jsp文件结构 3)jsp编译过程 JSP首先被转化为Servlet(Java文件),然后再被编译为class文件,最后由服务器调用 4)jsp执行过程 5)JSP最终都会转换为Servlet去执行。 6)JSP语法分为三种不同的类型 编译器指令(DIRECTIVE)例如: <%@pageimport=“java.io.*”%> 脚本语法(SCRIPTING) 动作语法(ACTION)例如: 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"%> 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"> functionselectAll() { varall=document.getElementsByName("allMials")[0]; varemail=document.getElementsByName("email"); if(all.checked) { for(vari=0;i { email[i].checked=true; } } else { for(vari=0;i { email[i].checked=false; } } } 全选 36)javabean JavaBean是一种可重复使用、且跨平台的软件组件。 JavaBean可分为两种: 一种是有用户界面(UI,UserInterface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。 JSP通常访问的是后一种JavaBean。 37)javabean的特征 –JavaBean是一个公共的(public)类 –JavaBean有一个不带参数的构造方法 –JavaBean通过setXXX方法设置属性,通过getXXX方法获取属性 38)访问javabean语法 •1).导入JavaBean类 通过<%@pageimport>指令导入JavaBean类, 例如<%@pageimport="mypack.CounterBean"%> •2).声明JavaBean对象 useBean>标签用来声明JavaBean对象, 例如 useBeanid="myBean"class="mypack.CounterBean"scope="session"/> useBeanid="myBean_1"class="mypack.CounterBean"scope="session"/> •3).访问JavaBean属性 getPropertyname="beanInstanceName"property="propertyName"/> 属性: 1).name="beanInstanceName"bean的名字,由 useBean>指定。 2).property="propertyName"指定的Bean的属性名。 39)jsp: setProperty 可以在 setProperty>中通过param参数为bean的属性动态赋值。 对应的Servlet代码是: 40)JavaBean的存活范围 41)servlet向jsp传递中文时解决乱码 request.setCharacterEncoding("utf-8");或者 变量名=newString(变量名.getBytes(”iso-8859-1”),”utf-8”) 42)EL表达式(expressionlanguage) 默认对象: 43)创建客户化JSP标签的步骤 • (1)创建标签的处理类 标签处理类必须扩展以下两个类之一: –javax.servlet.jsp.tagext.TagSupport –javax.servlet.jsp.tagext.BodyTagSupport packagecom.shengsiyuan.tag; importjava.io.IOException; importjavax.servlet.jsp.JspException; importjavax.servlet.jsp.tagext.TagSupport; publicclassMyTagextendsTagSupport { @Override publicintdoStartTag()throwsJspException { try { //向页面输出字符串 this.pageContext.getOut().println("helloworld"); } catch(IOExceptione) { e.printStackTrace(); } returnEVAL_BODY_INCLUDE; } @Override publicintdoEndTag()throwsJspException { try { this.pageContext.getOut().println("welcome"); } catch(IOExceptione) { //TODOAuto-generatedcatchblock e.printStackTrace(); } returnEVAL_PAGE; } } • (2)创建标签库描述文件(创建以.tld结尾的文件) xmlversion="1.0"encoding="UTF-8"? > DOCTYPEtaglibPUBLIC"-//SunMicrosystems,Inc.//DTDJSPTagLibrary1.2//EN""
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 笔记