jsp程序设计-复习重点(34页).doc

上传人:1595****071 文档编号:34808292 上传时间:2022-08-18 格式:DOC 页数:35 大小:80.50KB
返回 下载 相关 举报
jsp程序设计-复习重点(34页).doc_第1页
第1页 / 共35页
jsp程序设计-复习重点(34页).doc_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《jsp程序设计-复习重点(34页).doc》由会员分享,可在线阅读,更多相关《jsp程序设计-复习重点(34页).doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

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

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

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

6、外,其他属性只能在指令中出现一次。重要属性:language:设置当前页面中JSP脚本使用的语言,默认Java;import:导入包;session:是否支持session,默认支持;errorPage/isErrorPage:异常及异常处理页面;例如:Index.jsp页面中:Error.jsp中:出现错误!错误如下:b) 如果该属性值以“/”开头,那么指定的是一个绝对路径,将在当前应用的根目录下查找文件;如果是以文件名称或文件夹名开头,那么指定的是一个相对路径,将在当前页面的目录下查找文件。c) 例如:9. JSP的注释:HTML中的注释:带有JSP表达式的注释:!- comment-隐藏

7、注释 :脚本程序(Scriptlet)中的注释 :单行/,多行/*/10. JSP的脚本标识:JSP表达式:用于向页面中输出信息,声明标识: 可以声明变量或方法脚本程序:11. JSP的动作标识:1) 用于向当前页面中包含其他文件,动态静态文件均可。2) /向动态的目标文件传递参数注:转发与重定向的区别: 进行请求转发时,存储在request对象中的信息会被保留并被带到目标页面中;而请求重定向是重新生成一个request请求,然后将该请求重定向到指定的URL,所以事先存储在request对象中的信息都不存在了。3) 在页面中使用标识来实例化一个Bean实例后,可以通过属性来设置或修改该Bean

8、中的属性,或者通过标识来读取该Bean中指定的属性。4) 5) 12. 动作标识与include指令的差异:1) 属性:include指令将file属性值看作一个实际存在的文件的路径,所以该属性不支持任何表达式2) 处理方式:使用include指令被包含的文件,它的内容会原封不动地插入到包含页中使用该指令的位置,然后JSP编译器再对这个合成的文件进行翻译。所以最终编译后的文件只有一个;使用动作标识包含文件时,当该标识被执行时,程序会将请求转发到被包含的页面,并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码。因为服务器执行的是两个文件,所以JSP编译器会分别对这两个文件进行编译。3)

9、 包含方式:include指令最终服务器执行的是将两个文件合成后由JSP编译器编译成的一个Class文件,这种包含过程称为静态包含;动作标识被执行时,使用该识包含的目标文件才会被编译,否则被包含的文件不会被编译,所以这种包含过程称为动态包含。13. JSP的内置对象 1) Request, 是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。具体应用:b) 访问请求参数:String userName = request.getParameter(name);c) 在作用域中管理属性:request.setAttribute(name,obj); request.getAttr

10、ibute(String name);例如:使用request对象的setAttribute()方法设置数据,然后在请求转发后取得设置的数据。例:。在error.jsp中out.println(错误提示信息为:+request.getAttribute(error);d) 获取cookie: Cookie cookie = request.getCookies();例如:使用request对象的addCookie()方法实现记录本次及上一次访问网页的时间。%Cookie cookies=request.getCookies();Cookie cookie_response=null;if(co

11、okies!=null) cookie_response=cookies0;out.println(本次访问时间:+new java.util.Date()+);if(cookie_response!=null) /输出上一次访问的时间。并设置cookie_response对象为最新时间。 out.println(上一次访问时间:+cookie_response.getValue(); cookie_response.setValue(new java.util.Date().toString(); /如果Cookies集为空,创建cookie,并加入到response中if(cookies=

12、null)cookie_response=new Cookie(AccessTime,); cookie_response.setValue(new java.util.Date().toString(); response.addCookie(cookie_response); %1) Response, 用于响应客户请求,向客户端输出信息。a) 重定向网页:response.sendRedirect(login_ok.jsp);sendError()方法可指明错误状态。例如:b) 设置HTTP响应报头:response.setContentType(“text/html”)2) Sessi

13、on, 与请求有关的会话期,使服务器和客户端之间的连接就会一直保持下去,但是在一定时间内(系统默认在30min内),如果客户端不向服务器发出应答请求,session对象就会自动消失。a) 创建及获取客户的会话:使用setAttribute()和getAttribute()方法b) 从会话中移除指定对象:session.removeAttribute (String name);例如:session.setAttribute(information,向session中保存数据);response.sendRedirect(forward.jsp);在forword.jsp中:session.re

14、moveAttribute(information);c) 销毁session:用session.invalidate();3) Application, 对象用于保存所有应用程序中的公有数据,服务器启动并且自动创建application对象后,只要没有关闭服务器,application对象将一直存在,所有用户可以共享application对象。application对象与session对象有所区别,session对象和用户会话相关,不同用户的session是完全不同的对象,而用户的application对象都是相同的一个对象,即共享这个内置的application对象。可以用于网页计算器:4

15、) Out, 主要用来向客户端输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区。14. JavaBean技术的应用:值JavaBean: 例:在登录页面表单中有与已创建的JavaBean属性相对应的字段:转发到一下处理页面,用值JavaBean进行处理:用户名:密码:工具JavaBean:public class MyTools public static String change(String str)str=str.replace(,>);return str;/将进行转换int i=0;i=Integer.parseInt(str)/将String转换为int解决中文乱码

16、:public static String toChinese(String str)if(str=null)str=;try /通过String类的构造方法将,指定的字符串转换为“gb2312”编码str=new String(str.getBytes(ISO-8859-1),gb2312);15. Servlet技术:1) 创建Servlet的步骤:(1)继承HttpServlet抽象类。(2)重载适当的方法,如覆盖(或称为重写)doGet()方法或doPost()方法。 (3)如果有HTTP请求信息的话,获取该信息。可通过调用HttpServletRequest类对象的getParame

17、ter()方法获取http请求信息(4)生成HTTP响应。HttpServletResponse类对象生成响应简单的实例:public class MyServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html;charset=gb2312);PrintWriter out = response.getWrit

18、er();out.println(保护环境!爱护地球!);2) Web.xml文件的配置:web-appMyServletcom.MyServlet 10/启动装入优先权,小者优先MyServlet/textServlet16. 数据库相关知识:1) 连接数据库的步骤:a) 加载JDBC驱动程序 通过静态方法forName(String className)实现b) 创建数据库连接 Connection conn = DriverManager.getConnection()c) 执行SQL语句 但是通过Connection实例并不能执行SQL语句,还需要通过Connection实例创建Sta

19、tement实例,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.getConnectio

21、n(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(); %17. AjaxAjax=异步Javascript和XML,是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJA

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

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

24、MLHTTP); 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) / 请求成功,开始处理返回结果 answer.innerHTML=http_request.responseText; else

25、 /请求页面有错误 alert(您所请求的页面有错误!);这是一生中难得的机会。汉译英18. 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(upass);String uname=request.getParameter(uname);final String sSession = un

26、ame+:+pass; Cookie oItem = new Cookie(SSO, sSession); /oItem.setDomain(“); /域 oItem.setMaxAge(14*24*60*60); /秒; 0/-1 oItem.setPath(“/bbs”); /域下的路径response.addCookie(oItem);3) 获取cookie: request.getCookies 得到的是一个cookie数组获取以上设置的cookie: Cookie cookie = request.getCookies(); String upass, uname; String s

27、=null; Cookie ucookie ; for(int i =0 ; icookie.length; i+) if(cookiei.getName().equals(SSO) s=cookiei.getValue();4) 销毁cookie 将age设置为0即可:setMaxAge(0)19. EL表达式:$expression 通过表达式语言调用JavaBean中的属性值或方法的代码: $dao.name $dao.getName()20. JSTL标准标签库重点介绍核心标签库的5中标签库1) 表达式标签: a) 标签: 用于将计算的结果输出到JSP页面中例如:escapeXml属性

28、值为false时:c:out value= escapeXml=false/escapeXml属性值为true时:c:out value=/第一种语法格式:第二种语法格式: name的值为空 b) 标签:用于定义和存储变量c) 标签:可以从指定的JSP范围中移除指定的变量2) 条件标签:(a) 标签:在scope范围内,判断test并将条件的判断结果保存在var属性指定的变量中c:if test=condition var=name scope=page|request|session|application例如:/输出false请输入用户名:(b) 标签,语法:例如:6 & hours上午好

29、!11 & hours下午好!晚上好! 现在时间是:$hours时3) 循环标签:a) 标签: 可以枚举集合中的所有元素,也可以循环指定的次数标签主体例如:应用标签循环输出List集合中的内容,并通过标签循环输出字符串“编程词典”6次:利用<c:forEach>标签遍历List集合的结果如下:$id.count  $tag 编程词典b) 标签: 可以用指定的分隔符将一个字符串分割开,根据分割的数量确定循环的次数。例如:原字符串:分割后的字符串: 总共输出个元素。 21. 例题:用Servlet+JSTL实现用户验证:其中表单提交部分省略,参数为unam,upass;Str

30、ing uname=;String upass=;try uname=request.getParameter(uname);upass=request.getParameter(upass);uname=uname.trim();upass=upass.trim();ArrayList userlist=new ArrayList();/*省略数据库连接字段*/Connection con;con=DriverManager.getConnection(connectionString);PreparedStatement ps=con.prepareStatement(sqlString)

31、;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 修改 第 35 页-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁