jsp程序设计-复习重点

上传人:ag****7 文档编号:159135148 上传时间:2022-10-08 格式:DOC 页数:9 大小:74.50KB
收藏 版权申诉 举报 下载
jsp程序设计-复习重点_第1页
第1页 / 共9页
jsp程序设计-复习重点_第2页
第2页 / 共9页
jsp程序设计-复习重点_第3页
第3页 / 共9页
资源描述:

《jsp程序设计-复习重点》由会员分享,可在线阅读,更多相关《jsp程序设计-复习重点(9页珍藏版)》请在装配图网上搜索。

1、1. 开发JSP程序所需的开发环境及各自作用:1.Web浏览器:用于客户端用户访问Web应用的工具 2。Web服务器:只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问。如Apache Tomcat。3.JDK:包括运行Java程序所必须的JRE环境及开发过程中常用的库文件.4。 数据库:用来存储项目中需要的信息。2. 字符串处理: 例:String strA=new String(“让我们的明天会更好!”);String strB=”平平淡淡才是真!”out.println(strA。substring(4,6);out。println(strB。string(4

2、,strB。length();/输出结果是:明天 才是真3. 在表单提交中文信息时,应在对应Servlet中添加如下代码:requesrt。setCharacterEncoding(“gb2312”)4. JAVABean的分类:(1)可视化JavaBean(2)不可视JavaBean;不可视JavaBean又分为值JavaBean和工具JavaBean。值JavaBean严格遵循了JavaBean的命名规范,通常用来封装表单数据,作为信息的容器. JavaBean是根据特殊的规范编写的普通的Java类,可称它们为“独立的组件”。每一个JavaBean实现一个特定的功能,最大优点就是充分提高了

3、代码的可重用性.通常一个标准的JavaBean需遵循以下规范:(1)实现java。io.Serializable接口;(2)是一个公共类;(3)类中必须存在一个无参数的构造函数;(4)提供对应的setXxx()和getXxx()方法来存取类中的属性5. Servlet 的生命周期:第一步:用户通过客户端浏览器请求服务器,服务器加载Servlet,并创建一个Servlet实例;第二步:容器调用Servlet的init()方法;第三步:容器调用service()方法,并将HttpServletRequest和HttpServletResponse对象传递给该方法,在service()方法中处理用户

4、请求;第四步:在Servlet中请求处理结束后,将结果返回给容器;第五步:容器将结果返回给客户端进行显示;第六步:当Web器关闭时,调用destroy()方法销毁Servlet实例。 Servlet与JSP的区别:Servlet是运行在服务器端运行的Java程序;JSP是一种脚本语言;6. Servlet是在JSP之前就存在的运行在服务端的一种Java技术。Servlet主要用于处理Http请求,并将处理的结果传递给浏览器生成动态Web页面。Servlet具有可移植,功能强大、安全、可扩展和灵活等优点。与JSP的区别:(1)编程方式不同;(2)Servlet必须在编译以后才能执行;(3)运行速

5、度不同。7. JSP是运行在服务器端的脚本语言之一,是用来开发动态网页的一种技术.8. JSP的处理过程:1.客户端通过浏览器向服务器发出请求,在该请求中包含了请求的资源的路径,这样当服务器接收到该请求后就可以知道被请求的资源。2. 服务器根据接收到的客户端的请求来加载被请求的JSP文件.3. Web服务器中的JSP引擎会将被加载的JSP文件转化为Servlet.4. JSP引擎将生成的Servlet代码编译成Class文件。5. JSP引擎将生成的Servlet代码编译成Class文件。6. 服务器将执行结果发送给浏览器进行显示9. JSP的三种指令标识:a) page attribute1

6、=”value1” attribute2=value2” %;Page指令中除import属性外,其他属性只能在指令中出现一次。重要属性:language:设置当前页面中JSP脚本使用的语言,默认Java;import:导入包;session:是否支持session,默认支持;errorPage/isErrorPage:异常及异常处理页面;例如:Index.jsp页面中:% page contentType=”text/html;charset=gb2312” errorPage=error。jsp”%String name=”YXQ”;Integer.parseInt(name); /将字符

7、串转化为int型Error。jsp中: page contentType=”text/html;charset=gb2312” isErrorPage=”true” 出现错误!错误如下:br%=exception。getMessage()b) include file=文件的绝对路径或相对路径 %如果该属性值以“/”开头,那么指定的是一个绝对路径,将在当前应用的根目录下查找文件;如果是以文件名称或文件夹名开头,那么指定的是一个相对路径,将在当前页面的目录下查找文件。c) taglib uri=”tagURI prefix=”tagPrefix” 例如: taglib uri=http:/jav

8、a.sun。com/jsp/jstl/core” prefix=”c 10. JSP的注释:HTML中的注释:带有JSP表达式的注释:隐藏注释 :%- 注释内容 -%脚本程序(Scriptlet)中的注释 :单行/,多行/*/11. JSP的脚本标识:JSP表达式:用于向页面中输出信息,声明标识: 可以声明变量或方法%! 声明变量或方法的代码 %脚本程序: Java程序片段 12. JSP的动作标识:1) jsp:include page=”被包含文件的路径” flush=”truefalse”/用于向当前页面中包含其他文件,动态静态文件均可。2) jsp:param name=”参数名称 v

9、alude=”参数值/向动态的目标文件传递参数注:转发与重定向的区别: 进行请求转发时,存储在request对象中的信息会被保留并被带到目标页面中;而请求重定向是重新生成一个request请求,然后将该请求重定向到指定的URL,所以事先存储在request对象中的信息都不存在了.3) jsp:useBean id=”us type=”com。Bean。UserInfo scope=”session”/在页面中使用jsp:useBean标识来实例化一个Bean实例后,可以通过属性来设置或修改该Bean中的属性,或者通过jsp:getProperty标识来读取该Bean中指定的属性。4) jsp:

10、setProperty5) 13. 动作标识包含文件时,当该标识被执行时,程序会将请求转发到被包含的页面,并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码.因为服务器执行的是两个文件,所以JSP编译器会分别对这两个文件进行编译.3) 包含方式:include指令最终服务器执行的是将两个文件合成后由JSP编译器编译成的一个Class文件,这种包含过程称为静态包含;jsp:include动作标识被执行时,使用该识包含的目标文件才会被编译,否则被包含的文件不会被编译,所以这种包含过程称为动态包含.14. JSP的内置对象 1) Request, 是从客户端向服务器发出请求,包括用户提交的

11、信息以及客户端的一些信息.具体应用:b) 访问请求参数:String userName = request。getParameter(”name);c) 在作用域中管理属性:request。setAttribute(name,obj); request。getAttribute(String name);例如:使用request对象的setAttribute()方法设置数据,然后在请求转发后取得设置的数据。例:jsp:forward page=”error。jsp /.在error。jsp中out。println(错误提示信息为:”+request.getAttribute(error);d)

12、 获取cookie: Cookie cookie = request.getCookies();例如:使用request对象的addCookie()方法实现记录本次及上一次访问网页的时间。1) Response, 用于响应客户请求,向客户端输出信息。a) 重定向网页:response.sendRedirect(login_ok.jsp”);sendError()方法可指明错误状态.例如:request。setCharacterEncoding(gb2312”);String username=request.getParameter(username”);String pwd=request.

13、getParameter(pwd”);if(!username.equals() & !pwd。equals(”))/验证是否为空response。sendRedirect(”login_ok。jsp);elseresponse。sendError(500,”请输入登录验证信息”);b) 设置HTTP响应报头:response。setContentType(“text/html”)2) Session, 与请求有关的会话期,使服务器和客户端之间的连接就会一直保持下去,但是在一定时间内(系统默认在30min内),如果客户端不向服务器发出应答请求,session对象就会自动消失。a) 创建及获取客

14、户的会话:使用setAttribute()和getAttribute()方法b) 从会话中移除指定对象:session。removeAttribute (String name);例如:session。setAttribute(information,”向session中保存数据”);response.sendRedirect(forward.jsp);在forword。jsp中:session.removeAttribute(”information);c) 销毁session:用session。invalidate();3) Application, 对象用于保存所有应用程序中的公有数据,

15、服务器启动并且自动创建application对象后,只要没有关闭服务器,application对象将一直存在,所有用户可以共享application对象。application对象与session对象有所区别,session对象和用户会话相关,不同用户的session是完全不同的对象,而用户的application对象都是相同的一个对象,即共享这个内置的application对象.可以用于网页计算器: int number=0;if(application。getAttribute(number”)=null)number=1;elsenumber=Integer。parseInt((Stri

16、ng)application。getAttribute(number”);number=number+1;out.print(”您是第”+number+”位访问者!”);application.setAttribute(number”,String.valueOf(number);%4) Out, 主要用来向客户端输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区。15. JavaBean技术的应用:值JavaBean: 例:在登录页面表单中有与已创建的JavaBean属性相对应的字段:转发到一下处理页面,用值JavaBean进行处理:jsp:useBean id=user class=

17、”com。yxq。bean.Userjsp:setProperty name=user” property=”*/用户名:/b密码:/bjsp:getProperty name=”user” property=userPass”/工具JavaBean:public class MyTools public static String change(String str)str=str。replace(”,”<;);str=str.replace(”,”>;”);return str;/将servlet-nameMyServletcom。MyServlet/servletclass lo

18、adon-startup10/loadon-startup/启动装入优先权,小者优先/servletservlet-mappingMyServleturlpattern/textServlet/servletmapping/web-app17. 数据库相关知识:1) 连接数据库的步骤:a) 加载JDBC驱动程序 通过静态方法forName(String className)实现b) 创建数据库连接 Connection conn = DriverManager。getConnection()c) 执行SQL语句 但是通过Connection实例并不能执行SQL语句,还需要通过Connectio

19、n实例创建Statement实例,Statement实例又分为以下3种类型:(1)Statement实例:该类型的实例只能用来执行静态的SQL语句;(2)PreparedStatement实例:该类型的实例用于执行动态SQL语句的功能(3)CallableStatement对象:该类型的实例用于执行数据库存储过程的功能.d) 获得查询结果 如果执行的是executeUpdate()方法,将返回一个int型数值,代表影响数据库记录的条数,即插入、修改或删除记录的条数;如果执行的是executeQuery()方法,将返回一个ResultSet型的结果集,其中不仅包含所有满足查询条件的记录,还包含相

20、应数据表的相关信息e) 关闭连接 通过各个实例的close()方法2) 连接SQL数据库实例:% String driverClass=”com。microsoft。jdbc。sqlserver.SQLServerDriver”; String url = ”jdbc:microsoft:sqlserver:/127。0.0.1:1433;DatabaseName=db_database08”; String username = sa; String password = ”; Class.forName(driverClass); Connection conn=DriverManager

21、.getConnection(url, username, password); Statement stmt=conn。createStatement(); ResultSet rs = stmt。executeQuery(”select from tb_user”);while(rs.next())out.println(用户名:+rs.getString(2)+密码:+rs。getString(3)); rs.close();stmt.close(); conn.close(); 18. AjaxAjax=异步Javascript和XML,是一种用于创建快速动态网页的技术.通过在后台与服

22、务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。XMLHttpRequest 是 AJAX 的基础,用于在后台与服务器交换数据.Var xmlhttp=new ActiveXObject(”Microsoft.XMLHTTP”);常用方法:open(method,url,async) send()onreadystatechange存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。readyState存有 XMLHttpRequest 的状态。0: 请求未初始化1: 服务器连接已建立2: 请求

23、已接收3: 请求处理中4: 请求已完成,且响应已就绪status200: ”OK404: 未找到页面responseText服务器的响应,表示为字符串responseXML服务器的响应,表示为XML,这个对象可以解析为一个DOM对象搭建Ajax开发框架实例:script language=”javascript” var http_request = false; function createRequest(url) http_request = false;try http_request = new ActiveXObject(”Msxml2.XMLHTTP”); catch (e) t

24、ry http_request = new ActiveXObject(”Microsoft。XMLHTTP); catch (e) http_request。onreadystatechange = getResult; /调用返回结果处理函数 http_request。open(POST, url, true); http_request.send();/返回结果处理函数 function getResult() if (http_request。readyState = 4) / 判断请求状态 if (http_request.status = 200) / 请求成功,开始处理返回结果

25、answer。innerHTML=http_request。responseText; else /请求页面有错误 alert(您所请求的页面有错误!);/script这是一生中难得的机会。div id=answer”/div/body19. Cookie:1) Cookie的格式:Set-Cookie: Name = Value;Comment = value; Domain = value; Max-Age = value; Path = Value;2) 创建cookie: response.add(cookie) 例如:String pass= request.getParameter

26、(”upass”);String uname=request。getParameter(uname);final String sSession = uname+”:+pass; Cookie oItem = new Cookie(SSO, sSession); /oItem。setDomain(“。my。com); /域 oItem.setMaxAge(142460*60); /秒; 0/-1 oItem。setPath(“/bbs); /域下的路径response.addCookie(oItem);3) 获取cookie: request.getCookies 得到的是一个cookie数组

27、获取以上设置的cookie: Cookie cookie = request。getCookies(); String upass, uname; String s=null; Cookie ucookie ; for(int i =0 ; i/jsp:useBean $dao。name dao。getName()21. JSTL标准标签库重点介绍核心标签库的5中标签库 taglib prefix=”c” uri=http:/java.sun。com/jsp/jstl/core” 1) 表达式标签: a) c:out标签: 用于将计算的结果输出到JSP页面中c:out value=”value

28、 escapeXml=truefalse” default=”defaultValue/例如:escapeXml属性值为false时:c:out value=”hr” escapeXml=false/escapeXml属性值为true时:c:out value=第二种语法格式: name的值为空 b) c:set标签:用于定义和存储变量c:set value=”value” var=”name” scope=pagerequest|sessionapplication”/c) 2) 条件标签:(a) c:if标签:在scope范围内,判断test并将条件的判断结果保存在var属性指定的变量中c

29、:if test=condition var=name” scope=page|request|session|application例如:c:if test=$param.user=null var=”rtn scope=”page”/c:out value=”rtn/输出false请输入用户名:input type=submit” value=提交/c:if(b) c:choose标签,语法:c:choosec:whenc:otherwise/c:otherwise/c:choose例如:c:set var=”hours”/c:setc:when test=”$hours6 & hours

30、上午好!/c:when11 hours17下午好!晚上好!/c:otherwise 现在时间是:$hours时3) 循环标签:a) 标签: 可以枚举集合中的所有元素,也可以循环指定的次数c:forEach items=data var=”name” begin=start end=”finish step=step” varStatus=statusName”标签主体/c:forEach例如:应用标签循环输出字符串“编程词典”6次:利用lt;c:forEach>;标签遍历List集合的结果如下:c:forEach items=”$list var=tag” varStatus=idid。c

31、ount nbsp;tag br/c:forEachc:out value=”str”/编程词典b) c:forTokens标签: 可以用指定的分隔符将一个字符串分割开,根据分割的数量确定循环的次数。例如:bodyc:set var=”sourceStr value=无语|冰儿wgh简单simpleRain/原字符串:br分割后的字符串:c:forTokens var=”str items=$sourceStr” delims=” varStatus=status br总共输出/c:out个元素./c:if/c:forTokens /body22. 例题:用Servlet+JSTL实现用户验证

32、:其中表单提交部分省略,参数为unam,upass;String uname=;String upass=”;try uname=request.getParameter(uname”);upass=request.getParameter(”upass);uname=uname.trim();upass=upass。trim();ArrayListUserInfo userlist=new ArrayListUserInfo();/省略数据库连接字段/Connection con;con=DriverManager.getConnection(connectionString);Prepar

33、edStatement ps=con。prepareStatement(sqlString);ResultSet rs=ps。executeQuery();while(rs.next())UserInfo user=new UserInfo();user.setUserName(rs。getString(1).trim();user.setUserPass(rs。getString(2)。trim());userlist.add(user); request.setAttribute(ulist”, userlist);request。getRequestDispatcher(show。jsp)。forward(request, response);在show.jsp里,显示代码如下:id.count /tdtdc:out value=”gs。upass/tdtda href=$pageContext。request.contextPath/Op?action=enmodifyid=$gs。id修改/a /c:forEach

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!