公文素材库 首页

《Java_Web开发实战经典》总结-第二部分Web基础开发(图文并貌)

时间:2019-05-28 14:31:56 网站:公文素材库

《Java_Web开发实战经典》总结-第二部分Web基础开发(图文并貌)

第二部分Web基础开发

第五章JSP基础语法

通过本章的的学习,使我了解了Jsp中注释语句的使用和Jsp中Scriptlet的使用及使用的区别,掌握了page指令的作用和两种包含语句及两种包含语句的区别,懂得了跳转指令的操作。基本可以使用Jsp基础语法结合JDBC完成登录程序的开发。

注释语句(显、隐针对客户端来讲)3种Scriptlet(脚本小程序)

实现HTML代码与JSP代码的分离:JSP源代码无缩写,而其内容是要给用户看的!Script标签VSJSP标签编程VSJSP标准标签库(JSTL)VSStruts标签库Page指令作用:(设置页面MIME类型、文件编码[超链接-..\\知识点小结\\编码总结.doc]、错误页进化)

包含指令:静态包含和动态包含(选择?)答:动态包含更好:1、可以自动区分被包含的页面是静态还是动态;如果是动态页面,先处理,再包2、

含处理结果;

避免实际开发中的变量重复问题,还可以传递参数

跳转指令:

服务器跳转:地址栏不变(错误页跳转)

客户端跳转:无法传递request范围属性(超链接)

注意:

标签指令必须完结

第六章JSP内置对象

通过本章的的学习,使我了解了Jsp中的9个内置对象及对应的操作接口,掌握了jsp中的4种属性范围及属性操作,掌握了response,session,application,pagecontext这些常用内置对象的使用。

内置对象由容器为用户实例化,所以不用什么new关键字。对比Java!9个内置对象及对应类型、特点、保存范围。

request,

回顾跳转指令比较

服务器跳转:地址栏不改变,eg:错误页跳转。客户端中转:超链接,无法传递request属性。

保存范围的设计模式实例:

Page:页面跳转后()在设置的属性是无法取得的。

request:页面跳转(服务器跳转)后仍可以取得,但如果换成超链接(客户端跳转)就不行了。Session:打开新浏览器无法取得。因为每一次打开一个新浏览器连接上服务器后就相当于一个新的Session.

Application:每一个session用户都看得见。因为属性被设置在了服务器上,但这会影响服务器性能。但重新启动服务器后,之前的所有属性都会消失。java.lang.StringgetRealPath(java.lang.Stringpath)Getstherealpathcorrespondingtothegivenvirtualpath.

Config对象:getInitParameter()方法可以取得初始化配置参数,所有的配置参数在Web.xml文件中配置。

PageContent可以设置任意范围的属性。pageContent.setAttribute(Stringname,Objectvalue,intscope);

问题:

一、request对象

参数传递的两种常见方式:表单和URL地址重写。表单提交的get和post有什么不同?从现实中两人对话理解头信息的作用。

回头看应用到request的地方:1、DAO设计模式中JSP调用DAO:解决中文乱码,通过接收表单提交的参数设置雇员信息,完成增加雇员操作。

2、Mvc设计模式实例——登录程序中:

LoginServlet.java中doGet()方法中接收客户端的输入数据并保存数据,保存错误信息,和response对象完成跳转,当然还有doGet()方法。

3、属性操作:

属性名称用String类型进行接收,内容用Object类型接收,(任意对象照单全收),但注意在取得时要进行向下转型。4、

特别要提下pageContext对象,它是javax.servlet.isp.PageContext类的实例,表示一个JSP页面的上下文。它的setAttribute()方法可以设置任意范围的属性。它可以取得ServletRequest、ServletResponse、ServletConfig、SevletContext接口的实例。它在平时开发很少用,但标签编程中应用最多。

5、Web安全:一个文件保存在WEB-IN文件夹中是绝对安全的,但是需要通过修改web.xml进行地址映射才可以访问。

第七章JavaBean

通过本章的的学习,使我了解了JavaBean的基本定义格式和web目录的标准结构,掌握了jsp中对于javabean支持的3种标签,即,和.可以使用javabean进行参数的自动赋值操作。

JavaBean的要求:答:

1、包

2、Publicclass

3、封闭-setter()和getter()方法4、无参构造方法!

配置reloadable=”true”实现JavaBean的自动加载修改的JavaBean带来的问题?答:服务器始终在监视状态,性能会下降;当Tomcat猫重新启动后,所有的session属性将消失。

为什么使用指令可以直接进行对象的实例化?=相比import命令省略了对象实例化的步骤?

答:

答案是反射机制。注意到以上指令需要定义对象所在的“包.类”,而且又要求类存在无参构造方法,这是反射的前提。

JSP+JavaBean的优点:答:

HTML和Java从JSP页面中分离出来

JavaBean组件减少重复代码(组件思想)

第八章文件上传

通过本章的的学习,使我了解了文件上传操作的作用和smartupload上传组件的使用,理解了fileupload上传组件的使用。

本章多进行实战操作

参考:注意:

如果要进行文件上传操作,在表单处必须使用enctype将文件封装成一个二进制数据才可以接收。

如何限制文件上传类型?答:通过正则表达式

If(smart.getFiles().getFile(0).getFileName().match(“^\\\\w+\\\\.(gif|jsp)$”)){}

扩展阅读:《Java_Web开发实战经典》总结-第三部分Web高级开发(图文并貌)

第三部分Web高级开发

第九章Servlet程序开发

通过本章的的学习,使我了解了servlet与jsp之间的关系和servlet的生命周期及对应的操作方法及内置对象在servlet中的使用。了解了requestdispatcher接口的作用,并可以使用mvc进行程序的开发,掌握过滤器的基本原理及应用和监听器的基本原理及应用。

Servlet(服务器端小程序):多线程、可移植。最大好处:它可以处理客户端传来的HTTP请求,并返回一个响应。(没有Main主程序)

接口类继承关系?

Servlet处理的基本流程:

Servlet分类?

1、请区分容器和服务器?

2、关闭容器||一个Servlet长时间不使用和动态加载怎样实现?(servlet销毁)3、回顾config对象、模板设计模式(servlet程序本身应用);

4、Servlet生命周期控制的3个方法:init(),service()(doGet()、doPost())和destory();这些方法在哪个类里?

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,java.io.IOException覆写里要扩大访问权限,

要想实现一个Servlet则一定要继承HttpServlet类,并覆写相应方法,编译完成后马上配置web.xml文件。

为什么要在WEB-IN/web.xml中进行Servlet程序的映射配置?

答:zz.servlet.HelloServlet又是“包.类”,反射有木有!

访问Servlet程序时,是以*.class形式存在。

过滤器就是个收各种门票的!应用:编码过滤器进化

第十章表达式语言

通过本章的的学习,使我了解了表达式语言的作用及与4种属性范围的关系,可以使用表达式完成数据的输出,掌握了表达式语言中各种运算符的使用。

博客笔记:

第十一章Tomcat数据源

通过本章的的学习,使我了解了数据源的作用及操作原理,掌握了tomcat中数据源的配置和数据源的查找及使用。

第十二章JSP标签

通过本章的的学习,使我了解了标签库的主要作用及标签的操作原理,掌握了标签的基本开发模式,并且可以通过tagsupport类完成迭代传输的功能,理解了标签的使用及与tagsupport类的区别,tagextrainfo类和variableinfo的使用。要想完成一个标签的开发,需要有以下四部分:

TagSupport类的四个方法和常量;

Tag接口和IteratorTag接口的执行区别:

第十三章JSP标准标签库

通过本章的的学习,使我了解了JSTL的主要作用及配置和JSTL中core标签的使用,了解了format和SQL标签的使用。

第十四章Ajax开发技术

通过本章的的学习,使我了解了AJAX技术的主要作用,和XMLHttprequest对象的作用,并可以使用XMLHttprequest对象进行操作。

第一个Ajax程序

背景知识:Ajax指的是异步JavaScript及XML(AsynchronousJavaScriptAndXML)。AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的

Web应用程序的技术。通过AJAX,您的JavaScript可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。通过这个对象,您的JavaScript可在不重载页面的情况与Web服务器交换数据。AJAX

在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX可使因特网应用程序更小、更快,更友好。AJAX

是一种独立于Web服务器软件的浏览器技术。AJAX基于下列Web标准:JavaScriptXMLHTMLCSS在AJAX中使用的Web标准已被良好定义,并被所有的主流浏览器支持。AJAX应用程序独立于浏览器和平台。Web应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。通过AJAX,因特网应用程序可以变得更完善,更友好。

返回数据的页面D:\\ProgramFiles\\webdemo\\14_Ajax\\content.htmHelloWorld!使用异步处理:D:\\ProgramFiles\\webdemo\\14_Ajax\\Ajax_recieve_content.htm接收content内容varxmlHttp;functioncreateXMLHttp(){象}if(window.XMLHttpRequest){//创建XMLHttpRequest核心对xmlHttp=newXMLHttpRequest()//使用FireFox内核}else{xmlHttp=newActiveXObject("Microsoft.XMLHTTP");//使用IE内核的浏览器}functionshowMsg(){//显示信息createXMLHttp();//xmlHttp.open("POST","content.htm");//设置一个请求//设置完请求后调用回调函数xmlHttp.onreadystatechange=showMsgCallback;xmlHttp.send(null);//发送请求,不设置参数}functionshowMsgCallback(){//回调函数if(xmlHttp.readyState==4){//数据返回完毕if(xmlHttp.status==200){//HTTP操作正常vartext=xmlHttp.responseText;//接收返回内容//设置要使用的CSS样式表//doucument.getElementById("msg").className="样式表名称";document.getElementById("msg").innerHTML=text;}}}

显示效果:

手敲千行不如单步一行!

调试手段:HTML代码怎么调试?类比servlet代码调试System.out.printf("*********");

allert(“**************”);看程序进行到哪一步!

问题:Ajax的xmlhttpRequests对象、方法、属性有专门的文档么?与jqueryajax比较。

参考文档:

场景描述:

登录程序大家都不陌生,但如果要注册,则必须保证用户的ID不能重复,这种检测用户ID的操作可以通过Ajax完成。

异步验证

异步验证varxmlHttp;varflag;functioncreateXMLHttp(){象}if(window.XMLHttpRequest){//创建XMLHttpRequest核心对xmlHttp=newXMLHttpRequest()//使用FireFox内核}else{xmlHttp=newActiveXObject("Microsoft.XMLHTTP");//使用IE内核的浏览器}functioncheckUserid(userid){//显示信息createXMLHttp();////设置请求,通过地址重写方式将userid传递到JSP中xmlHttp.open("POST","CheckServlet?userid="+userid);//设置完请求后调用处理回调函数xmlHttp.onreadystatechange=checkUseridCallback;}xmlHttp.send(null);//发送请求,不设置参数//document.getElementById("msg").innerHTML="正在验证";//alert("*******");functioncheckUseridCallback(){//回调函数if(xmlHttp.readyState==4){//数据返回完毕if(xmlHttp.status==200){//HTTP操作正常alert("*****8");vartext=xmlHttp.responseText;//接收返回内容if(text=="true"){}}flag=false;//无法提交表单document.getElementById("msg").innerHTML="用户名ID重复,无法使用";注册";}}else{flag=true;//可以提交表单document.getElementById("msg").innerHTML="恭喜!此用户ID可以}functioncheckForm(){//对表单判断能否进行提交操作returnflag;}用户ID:姓名:密码:checkzz.ajax.CheckServletcheck/14_Ajax/CheckServletpackagezz.ajax;importjava.io.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.PreparedStatement;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassCheckServletextendsHttpServlet{publicstaticfinalStringDBDRIVER="org.gjt.mm.mysql.Driver";publicstaticfinalStringDBURL="jdbc:mysql://localhost:3306/zz";publicstaticfinalStringDBUSER="root";publicstaticfinalStringDBPASSWORD="mysql";publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,java.io.IOException{this.doPost(request,response);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,java.io.IOException{request.setCharacterEncoding("GBK");response.setContentType("text/html");//设置回应的MIMEConnectionconn=null;PreparedStatementpstmt=null;ResultSetrs=null;PrintWriterout=response.getWriter();//接收验证的useridStringuserid=request.getParameter("userid");try{Class.forName(DBDRIVER);//加载驱动conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);//连接数据库Stringsql="SELECTCOUNT(userid)FROMuserWHEREuserid=?";pstmt=conn.prepareStatement(sql);}

}pstmt.setString(1,userid);rs=pstmt.executeQuery();System.out.printf("*********");if(rs.next()){if(rs.getInt(1)>0){//判断ID是否已存在out.print("true");//已存在}else{out.print("false");}}out.close();}catch(Exceptione){e.printStackTrace();}finally{try{conn.close();}catch(Exceptione){e.printStackTrace();}}

友情提示:本文中关于《《Java_Web开发实战经典》总结-第二部分Web基础开发(图文并貌)》给出的范例仅供您参考拓展思维使用,《Java_Web开发实战经典》总结-第二部分Web基础开发(图文并貌):该篇文章建议您自主创作。

  来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


《Java_Web开发实战经典》总结-第二部分Web基础开发(图文并貌)
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/585491.html
相关阅读
最近更新
推荐专题