ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:19.70KB ,
资源ID:5675682      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5675682.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java Web框架DIY.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java Web框架DIY.docx

1、Java Web框架DIY一,为什么要DIY当前,成熟的java web框架有很多种,我们为什么还要自己弄一个呢?我的看法如下:首先,现在的主流框架过于庞大,使用起来过于繁琐,这一点从ROR给java带来的冲击就能看出来,用ROR开发一个web程序如此简单,反思java,难道我们真的需要那么多复杂的步骤吗?其次,现在的用户越来越追求画面的体验,而java主流框架产生的时间相对比较早,对web2.0的考虑相对少一些,对ajax的封装不足,框架处理这类问题比较笨拙。另外,java框架太注重自身的发展,缺乏和新事物的融合,在某种程度上阻碍了自身的进步。二,DIY的原则第一,简单就是美。围绕解决用户的

2、需求这个核心,方案越简洁高效越好。例如,我们没有必要为了某种形式写一大堆get,set方法。第二,坚持自己认为正确的方向。比如说有人不喜欢SQL,希望把对数据库的操作封装起来,进而实现对数据库产品无依赖的编程,但是,我不这么认为,我喜欢SQL,SQL是高效的,如果把oracle提供的递归查询弃置不用,而是自己编程实现,复杂度不必说了,就执行效率而言,同前者不可同日而语。我认为一个复杂的项目必须针对具体的数据库产品的特性编程,毕竟程序运转中,代码是固定的,而不断变化的是数据,我们必须事先对数据库有足够的重视,而不是事后把责任推给DBA。所以,在我的DIY框架中使用SQL是正常的。第三,博采众长。

3、只要不违反知识产权,很多好的,开源的东西,我们尽可能的采用。当然,使用前你要确定这些东西是安全可靠的。三,DIY举例下面对一个具体的组合框架进行刨析,希望对大家有所启发,起到抛砖引玉的作用。先介绍一下该框架的原理。说白了很简单,就是利用jquery增强画面效果,用json进行数据传递。其实网络中介绍jquery+ajax+json的文章很多,但是,都是说返回一个json,用它的内容渲染页面,我在这里更近了一步,不但回来的是json,传到后台的数据也是json,并在此基础上做了一些封装。需要引入的外部资源:jquery.js,著名的js库;json2.js,js的json工具;org.json,

4、java操作json的类包;sqlitejdbc-v053.jar,sqlite的jdbc驱动,因为只是做一个demo所以用了一个我知道的最简单的数据库。json_param.js 算是一个jquery插件。把dom中的内容做成json;包装了一下jQuery.ajax,使其调用更简单。/ Add a dom parameter to json.$(document).ready(function() jQuery.jsonParam = jsonRetn: new Object(), registParaToJson: function(dom) if (dom.is(table) var

5、arryData = new Array(); $(tr:gt(0), dom).each(function() var curRow = new Object(); $(td, $(this).each(function(index) if ($(this).children().is(inputtype=text) curRowindex = $(inputtype=text:eq(0), this).val(); else if ($(this).children().is(inputtype=radio) curRowindex = $(inputtype=radio:eq(0), t

6、his).attr(checked); else if ($(this).children().is(inputtype=checkbox) curRowindex = $(inputtype=checkbox:eq(0), this).attr(checked); else if ($(this).children().is(select) curRowindex = $(select:eq(0), this).val(); else curRowindex = ; ); arryData.push(curRow); ); $.jsonParam.jsonRetndom.attr(id) =

7、 arryData; else if (dom.is(inputtype=text) | dom.is(select) $.jsonParam.jsonRetndom.attr(id) = dom.val(); else if (dom.is(inputtype=checkbox) | dom.is(inputtype=radio) $.jsonParam.jsonRetndom.attr(id) = dom.attr(checked); , passEventToJson: function(even) $.jsonParam.jsonRetn.passEvent = even; , get

8、ParamFromJson: function() return JSON.stringify($.jsonParam.jsonRetn); , ajaxJson: function(url, callback) return jQuery.ajax( type: post, url: url, dataType: json, data: param:$.jsonParam.getParamFromJson(), success: callback ); );first.jsp 一个jsp,注意$.jsonParam.registParaToJson往后台传值的使用。 $(document).

9、ready(function()$(#contentdiv).html( );$(#idm).change( function() $.jsonParam.passEventToJson(idm); $.jsonParam.registParaToJson($(#idm); $.jsonParam.ajaxJson(SecondServlet, function(response) $(#contentdiv).empty(); $.each(response, function(entryIdex, entry) $(#contentdiv).append(entryMAIN_DI

10、SH); ); );); $(#b_pass).click( function() $.jsonParam.passEventToJson(b_pass); $.jsonParam.registParaToJson($(#idm); $.jsonParam.registParaToJson($(#t_demo); / $.jsonParam.ajaxJson(SecondServlet, / function(response) / $(#ret_table).empty(); / var htm = ; / $.each(response, function(entryIdex, entry

11、) / htm += / htm += + entry0 +   / htm += + entry1 +   / htm += + entry2 +   / htm += / ); / htm += / $(#ret_table).append(htm); / / ); $(#param).attr(value, $.jsonParam.getParamFromJson(); $(#form1).attr(action, SecondServlet); $(#form1).submit(); return true; ););Whats for Dinner?.M

12、ondayTuesdayWednesdayThursdayFridaySaturday No. content select chk - Calico Tortie Siamese - Calico Tortie Siamese - Calico Tortie Siamese SecondServlet.java,后台Servlet,注意jreq.GetParameterFromJson中的参数,他的命名就是jsp中dom的id名,约定大于配置。package org.demo;import java.io.*;import java.util.*;import javax.servlet.*

13、;import javax.servlet.http.*;import mon.*;/* The simplest possible servlet.* author chengj*/public class SecondServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException doPost(request, response); public void doPost(Ht

14、tpServletRequest request, HttpServletResponse response) throws IOException, ServletException String param=request.getParameter(param); JsonRequest jreq = new JsonRequest(param); String resWrite = ; SecondEnty enty = new SecondEnty(); if (idm.equals(String)jreq.GetParameterFromJson(passEvent) String

15、key = (String)jreq.GetParameterFromJson(idm); resWrite = enty.getDish(key); response.setContentType(application/json;charset=utf-8); PrintWriter out = response.getWriter(); out.println(resWrite); else if (b_pass.equals(String)jreq.GetParameterFromJson(passEvent) resWrite = enty.getDetail(ArrayList)j

16、req.GetParameterFromJson(t_demo); request.setAttribute(param,resWrite); RequestDispatcher rd = request.getRequestDispatcher(/jsp/second.jsp); rd.forward(request, response); SecondEnty.java,SecondServlet的业务相关类。package org.demo;import java.io.*;import java.util.*;import java.sql.*;import mon.*;/* The

17、simplest possible servlet.* author chengj*/public class SecondEnty extends DBAccess private Connection conn = null; public String getDish(String key) String retJson = null; try PreparedStatement prep = super.conn.prepareStatement(SELECT day, main_dish FROM menu where qsid = ?); prep.setString(1, key

18、); retJson = JsonResponse.GetQuery(prep.executeQuery(); return retJson; catch(Exception e) System.out.println(e.toString(); return null; public String getDetail(ArrayList table) ArrayList retTable = new ArrayList(); for (int i = 0; i table.size(); i+) ArrayList arrRow = (ArrayList)table.get(i); if (

19、arrRow.get(3).equals(true) retTable.add(table.get(i); return JsonResponse.GetTable(retTable); 下面是两个公共类,负责request到json,以及json到response的转换任务package mon;import java.util.*;import org.json.*;/* author chengj*/public class JsonRequest private JSONObject data; public JsonRequest(String param) try this.data = new JSONObject(param); catch(JSONException e) System.out.println(e.toS

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1