`
狂奔DE蜗牛
  • 浏览: 15934 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

AJAX基础和MVC个人总结

阅读更多

  近期一直在学习WEB方面的知识,渐渐的开始接触并熟悉一些网页设计方面的技术和思想:CSS,JS,JSP,AJAX,这些都是一个java网页编程者必须熟悉并且精通的技术,现在对近两天学习的AJAX和MVC做一个简单的总结。

  一  AJAX部分

  1.首先来介绍一些AJAX技术吧,说到底AJAX也不能称得上一门真正的技术,它其实就是某些技术的综合利用,包含了JS,XMLRequest异步请求,CSS,DOM组件操作以及XML,HTML语言等等。它使用XMLRequest异步请求对象进行数据的读取传输,通过DOM组件的操作来刷新网页的内容。当你注册用户时,如何神奇的不用刷新网页就能在数据库中查找出这个用户名是否已注册,在你使用百度搜索是,如何实时的将你要搜索的内容用下拉框显示出来,这些都是AJAX的应用,不算很神奇,但足够的神秘。

 2. 如何来实现AJAX技术,即如何创建和使用XMLRequest异步请求对象,才是他神秘的地方。传统的WEB技术就是简单的请求处理,而AJAX打破了这种束缚,它通过获取网页中的数据然后通过AJAX代码块进行处理来局部刷新这个网页,并不是一个网页的跳转,这些都归功于XMLRequest,下面来具体说明其实现:

 要使用异步请求对象,当然首先要有一个对象,显然我们需要去创建这样一个对象,下面给出创建异步请求对象的代码:

写道
var request;
function createRequest(){
//判断客户端使用的浏览器是IE内核还是Netscape。
if(window.ActiveXObject){
request = new window.ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
request = new XMLHttpRequest();
}else{
window.alert("您使用的浏览器内核不支持AJAX,请更换浏览器!");
}
}

  

首先我们要知道目前的主流浏览器有两种 IE和Firefox,首先要判断用户使用的是何种浏览器,然后根据浏览器创建XMLRequest对象。

然后是从网页中获取数据并且处理数据。这些都是XMLRequest完成的,接下来要写这段代码,在写之前要考虑下(当然这是学习后才知道),当这些数据处理后,如何显示这些返回的信息呢!这就是问题所在了,所以要在此之前编写回调函数,下面给出这段代码:

写道
//第二步:编写回调函数
function processResult(){
//判断当前请求对象的状态是否已经执行完,并执行后页面的状态是否是200,200表示OK。
//异步请求对象的状态有5个,0表示为初始化,1表示开始载入,2.表示载入完成,3表示正在交互执行,4表示请求处理已经完成。
if(request.readystate == 4 && request.status == 200){
//输出服务器返回的信息
alert("服务器返回的信息是:"+request.responseText);
//将服务器返回的信息显示到DIV上
document.getElementById("divMessage").innerHTML = request.responseText;
}
}

//第三步:编写发送请求函数
function sendRequest(){
//创建异步请求对象
createRequest();
//绑定回调函数,必须要在open前绑定。
request.onreadystatechange = processResult;
//开始发送请求了,HTML发送请求的方式有两种:get和post.
//get请求的方式,如果要使用异步请求将第三个参数设置为true,否则为false即可
//request.open("get","validateUserServlet?userName="+userName,true);
//如果使用的是get方式发送的请求,再最后的时候必须加上request.send(null);
//post请求方式
request.open("post","validateUserServlet",true);
//使用post方式提交的时候一定要加上下边语句
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");
//获取用户输入的用户名
var userName = document.getElementById("userName").value;
//把用户名发送给服务器
request.send("userName="+userName);
}

     回调函数的设置是通过onreadystatechange属性来实现的,还有注意向服务器发送数据的格式。接下来就是在servlet中对得到的数据进行处理后然后返回,那部分代码完全由自己去发挥了。

   对于AJAX中要注意的的,个人认为有下面几个方面:

  首先对于XMLRequest异步请求对象的一些属性和方法要熟悉,比如readyState有四个返回值

           0 = uninitialized

           1 = loading

           2 = loaded

           3 = interactive

           4 = complete

Status返回的是服务器的状态,200代表服务器完成处理。onreadystatechange就是指回调函数。open(method,url,async),method是指表单的提交的方法,有get和post两种方法,当要发送的数据大于

512字节时,最好使用post方法,使用post方式时一定要在后面带上request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");这段代码。async有true和false两个值,使用true代表使用的是异步请求方式,就是发送数据后不需要响应就可以继续执行。

 以上就是关于AJAX部分的总结。

 二  MVC部分

  总的来说,MVC是一种模式设计思想,模型(Model),视图(View)和控制Controller)。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常能用JavaBean或EJB来实现。View层用于和用户的交互,通常用JSP来实现,Controller层是Model和View之间沟通的桥梁,他能分派用户的请求并选择恰当的视图以用于显示,同时他也能解释用户的输入并将他们映射为模型层可执行的操作。

 MVC主要是将一个项目分离成三个部分,三个层各司其职,每个人只需要完成自己要完成的部分,很多时候我们写代码到一半时候发现要添加某些东西,这时候很容易就牵一发而动全身,然而MVC模式中如果某些需求发生改变,只需要每个人修改自己相应的代码块,而不用去管其他层的代码。

   在WEB开发方面,jsp,html页面属于我们要给用户show的,即view,而那些servlet就是控制器,它接收请求,将数据封装成数据模型并且对这些模型进行处理,Model就是我们对数据库的操作,从数据库中取出数据,修改数据库内容。我们的每一个请求都通过一个servlet来根据请求的类型生成相应的servlet,即将以前所有的servlet包中的类综合起来,这些类都由我们页面发送的请求来生成,这些类的生成我们来通过一个ActionFacrory来实现。

下面给出生成servlet的代码:

写道
package cn.netjava.action;
/**
*命令对象工厂类实现
*根据命令名字,创建命令对象
*/
public class ActionFactory {
//单实例访问方法
public static ActionFactory getIns(){
if(null==ac){
ac=new ActionFactory();
}
return ac;
}

/**
* 根据具体的Action类名字创建Action对象
* @param actionName:具体的Action类全名
* @return :Action类型对象
*/
public Action getAction(String actionClass) {
Action actionInstance = null;
try {
Class c=Class.forName(actionClass);
actionInstance = (Action) c.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return actionInstance;
}
//不需要创建对象
private ActionFactory() { }
private static ActionFactory ac=null;
}

 

Action接口的定义如下:

写道
public interface Action {
/**
* 所有的具体Action实现这个接口
* @param request:请求对象
* @param response:应答对象
* @return :结果页面
*/
public String execute(HttpServletRequest request, HttpServletResponse response);

}

 

通过String来返回要跳转的页面。之后去通过这个ActionFactory来处理请求。

对于MVC经典设计模式,个人也是刚刚接触到,还要在以后的使用中深入的理解。对于一种思想关键的是要去理解,并在以后遇到一个问题去分析它的过程中去运用你所掌握的思想,而不是为了运用这种思想去刻意编写那种代码。

分享到:
评论

相关推荐

    mymvc自己写的ajax框架

    在IT行业中,自定义开发一个AJAX框架是...总结来说,“mymvc自己写的ajax框架”是一个个人实现的MVC架构下的AJAX通信解决方案。通过这样的框架,开发者可以更好地组织代码,简化前后端交互,提升应用的性能和用户体验。

    MVC三层架构个人信息管理系统实训报告借鉴.pdf

    总结来说,这个实训项目旨在通过实现个人信息管理系统,让学生掌握JSP基础、MVC模式和J2EE架构的实际运用,以及软件开发的完整流程。系统的设计和实现不仅提升了学生的编程技能,还强调了项目管理的重要性,以适应...

    Ajax和Struts的个人笔记

    总结来说,Ajax提供了前端与服务器的高效通信机制,而Struts2作为强大的后端框架,为处理请求、执行业务逻辑和返回响应提供了便利。两者结合,能够构建出响应迅速、用户体验优良的现代Web应用程序。

    基于mvc模式的Javaweb酒店管理系统

    总结,这个基于MVC模式的JavaWeb酒店管理系统充分利用了Java的技术栈,提供了完善的酒店管理功能。通过合理的架构设计和前端技术的应用,不仅提高了系统的运行效率,还为用户带来了流畅的交互体验。

    Manning.ASP.NET.MVC2.in.Action 和Apress.Pro.ASP.NET.MVC.2.Framework.2nd.Edition.Jun.2010

    总结来说,无论是初学者还是有经验的开发者,都可以从《ASP.NET MVC 2 in Action》和《Pro ASP.NET MVC 2 Framework 2nd Edition》中受益匪浅。它们不仅提供了全面的理论知识,还有丰富的实践案例,是学习和精通ASP...

    MVCz在线个人日记系统

    总结起来,MVCz在线个人日记系统是一个集成了MVC架构、数据库管理和Web开发技术的个人应用,通过高效的设计和组织,为用户提供了一个安全、便捷的在线日记存储平台。开发者可以深入研究各个组件和技术,提升自己的...

    基于J2EE的MVC模式BBS论坛源代码加数据库脚本

    总结,基于J2EE的MVC模式BBS论坛源代码结合数据库脚本,为开发者提供了一个完整的论坛应用实例,涵盖了用户认证、内容管理、互动功能等多个方面。理解并分析这个项目,对于深入学习J2EE开发和MVC模式有着极大的帮助...

    Professional ASP.NET MVC 1.0 (Wrox Programmer to Programmer)

    同时,对于那些对框架构建方式有特别要求的开发者来说,ASP.NET MVC也提供了高度的灵活性和可定制性,几乎所有的框架组件都可以根据个人喜好进行调整或替换。 #### Wrox Programmer to Programmer系列介绍 ...

    个人开发总结文件夹

    【个人开发总结文件夹】包含了多个与IT开发相关的文档和图像,主要涵盖了工具使用、框架应用、服务器管理和数据库操作等核心领域。以下是这些文件所涉及的知识点详解: 1. **工具集合.bmp**:虽然这是一个图像文件...

    基于web与mvc架构开发的Takeaway-system.7z

    总结,Takeaway-system是一个综合运用了Web技术和MVC架构的项目,其背后涉及了Java Web开发的多个层面,包括数据库设计、前端界面实现、安全机制以及第三方服务的整合。理解并掌握这些知识点,对于开发出高效、稳定...

    asp.net MVC人力资源管理系统源码

    总结,ASP.NET MVC人力资源管理系统源码展示了如何利用C#和MVC框架构建一个高效、可扩展的Web应用。通过深入学习和理解这个源码,开发者不仅能掌握ASP.NET MVC的核心技术,还能了解到企业级应用的开发实践,对于提升...

    javaweb就业笔记(个人吐血总结)不下后悔

    这份"javaweb就业笔记(个人吐血总结)不下后悔"无疑为想要踏入这个行业或者提升自己技能的朋友们提供了一份宝贵的资源。笔记作者通过个人经验的积累,详细梳理了学习JavaWeb所需的关键知识点,旨在帮助读者快速掌握...

    ASP.NET个人网站微软官方实例_personalwebsite.zip

    总结起来,"ASP.NET个人网站微软官方实例"是一个全面的学习资源,涵盖了从基础到高级的ASP.NET开发技能。通过这个实例,开发者不仅可以掌握ASP.NET的核心技术,还能了解到如何构建一个完整的、具有用户认证功能的...

    ExtJS_MVC框架的搭建实例

    ExtJS的MVC模式主要包括三个核心部分:模型(Model)、视图(View)和控制器(Controller)。 - **模型(Model)**: 负责数据的管理和业务逻辑处理。 - **视图(View)**: 展示数据,负责用户交互。 - **控制器...

    asp.net做的个人博客

    总结来说,"asp.net做的个人博客"是一个结合了ASP.NET技术栈,利用数据库、身份验证、路由、模板等工具创建的互动式、个性化网站。开发者可以根据需求定制功能,提升用户体验,同时关注SEO和性能优化,打造一个专业...

    JAVAWEB 个人理财管理系统 源码

    以上就是“JAVAWEB个人理财管理系统”涉及的主要知识点,这个系统不仅涵盖了JavaWeb开发的基础技术,还涉及到数据库设计、用户认证、数据处理、前端交互等多个方面,对于学习和实践Web应用开发有很高的参考价值。

    ASP.NET实训实验报告

    在项目过程中,我们不仅巩固了XML文件操作、数据库连接等基础知识,还接触并掌握了新的技术和工具,如Ajax、FunshionChart等,提升了我们的编程技巧和团队协作能力。 在个人评价方面,每个团队成员都积极参与,完成...

    应聘JAVA程序员个人简历(范例).doc

    应聘者是一名男性,出生于1986年3月,具备良好的团队协作能力和问题解决能力,对JAVA编程有深厚的基础,并熟悉多种编程语言和框架。他熟练掌握Java、Struts、Spring、Hibernate等Web开发技术,同时也了解.NET ...

Global site tag (gtag.js) - Google Analytics