简单留言板 Simple Guest Book == 开发环境:Win7 32bit + Eclipse for Javaweb Indigo 3.72 + tomcat6 + sqlite3 采用MVC模式开发 实现分发器DispatchServlet来对拦截所有*.xx(web.xml中配置)的请求,然后分发给不同的控制器执行后对不同结果进行渲染。 分发器实现流程 在初始化时需要将URL映射到具体控制器的方法上 拦截所有一定规则的请求 如: *.do 这个在wel.xml配置 在URL映射中查找拦截的URL请求,根据URL请求找到具体的控制器和其方法 实例化该控制,然后执行该方法 对返回结果进行处理然后渲染 怎么实现呢? 要映射URL到控制器需要一个Controller类来记录类名和方法,还要一个Map集合存储映射 URL -> Controller 在分发器初始化时通过反射读取控制器和其方法上指定URL添加到Map集合中.这需要一个注解@Mapping来指定URL 依次查看一下Controller -> Map mapping -> @Mappting 实现参照 void inti() void requestMapping() 两个方法 参数的注入实现 提供一个注解@Parameter来标注控制器中那些需要注入的字段 取得浏览器传入的参数通过反射注入到控制中 实现参照 void injectPrarameter() void doInject() 两个方法 ... 控制器是一个普通的JavaBean. @Mapping("/user") public class UserController { @Parameter private User user; private JsonModel json = new JsonModel(); private UserService userService = new UserService(); @Mapping("/register") public String register() { if (Utils.isEmpty(user.getUsername()) || Utils.isEmpty(user.getPassword())) { json.setMsg("请将项目填写完整!"); return Json.toJson(json); } try { boolean exist = userService.isExist(user.getUsername()); if (exist) { json.setMsg("用户名已经存在!"); return Json.toJson(json); } user.setPassword(Utils.md5(user.getPassword())); boolean f = userService.register(user); json.setSuccess(f); json.setMsg(f ? "注册成功" : "注册失败"); } catch (ServiceException e) { System.out.println(e.getMessage()); json.setSuccess(false); json.setMsg(e.getMessage()); } return Json.toJson(json); } ... 其他 .... } 以上代码 将"/user/register" 绑定到了用户控制器的注册方法上。 访问http://localhost:8080/guest/user/register.do时将执行 String register()方法 == @Parameter private User user; == 将会自动把浏览器提交的数据注入到user实体中,比如userid,username等... 事务的实现,参照Nutz的事务简化实现. ... public boolean delete(final int mid) throws ServiceException { final String sql = SqlMapping.get("sql.msg.delete"); final int[] re = new int[1]; try { // Sqlite只支持TRANSACTION_SERIALIZABLE事务级别 int level = java.sql.Connection.TRANSACTION_READ_COMMITTED; String dbType = Guest.get("DB.TYPE", "0"); if ("0".equals(dbType)) { level = java.sql.Connection.TRANSACTION_SERIALIZABLE; } // 匿名类中使用的变量必须是final类型的 Trans.exec(level, new Runnable() { @Override public void run() { try { re[0] = gdao.update(sql, mid); // 删除该留言的评论 gdao.update(SqlMapping.get("sql.comment.delmsg"), mid); } catch (SQLException e) { throw new TransException(e); } } }); } catch (TransException e) { throw new ServiceException(e.getMessage()); } return re[0] > 0; } ... 前端对JS的封装。。 // 退出 function logout() { $.get($.bp() + '/user/logout.do', function(data) { $('msg-content').html("退出成功!"); $('msg').fadeIn(); if (data && data.success) { setTimeout(function() { location.href = $.bp(); }, 2000); } setTimeout(function() { $('msg').fadeOut(); }, 1500); }, 'json'); } 仿jQuery选择器 取值设值val,html函数,show,hidden显示隐藏函数,fadeIn,fadeOut淡出函数,ajax简单封装,表单序列化... == 如何使用sqlite? 如何实现事务处理? 如何实现URL映射? 如何实现参数注入? 如何实现对象转json字符串? 如何实现$选择器和Ajax封装? 源码注释挺详细的,主要是给新同学看的,大牛请无视. 感兴趣的话更多内容请下载后请行查看....
2022-12-21 11:54:09 3.8MB 留言板 简单 mvc j2ee
1
跨模态检索指的是:根据一个模态的查询样本,在另一个模态上搜索相关的样本。 例如,给出一张图像,去检索包含相同对象或主题的文本描述;或是给出一段文本,去检索带有其描述对象的图片。 但由于各模态之间具有不同的数据表现形式,所以不同模态的样本间并不能直接进行相似性比较。 以Pascal Sentence数据集为实力,用pytorch写一个demo 文章链接:https://blog.csdn.net/zzpl139/article/details/128372023
1
设计一个简单的LISP算术表达式计算器。简单LISP算术表达式(以下简称表达式)定义如下:(1)一个0...9的整数,或者(运算符 表达式 表达式),例如6,(+45),(+(+25)8)都是表达式,其值分别为6,9和15。基本要求:实现LISP加法表达式的值。
2022-12-20 20:53:08 1.82MB 简单LISP算术表达式计算器
1
随着Qt6的发布,Qt官方开始推崇cmake编译,而qtmqtt对应的版本和Qt发布的版本一致的,所以qtmqtt从6.0发布以来,也开始默认用cmake编译。这样一来,很多之前习惯用Qt5的童鞋就有点摸不着头脑了,特别是一些刚入门的新手,看到Qt工程,习惯性的一上来就去找pro工程文件,但是Qt6的cmake工程是没有pro文件的,所以更是二脸懵逼。 资源包含了qt在线安装包软件和perl安装包。 demo下的mqtt目录可以直接拷贝到其他项目使用 博客介绍:https://luoyayun361.blog.csdn.net/article/details/128339682
2022-12-20 18:28:46 33.36MB mqtt qt6mqtt mqtt动态库
《智优ERP》的特点是简单易用、稳定、极速,不用培训就能用起来。软件可以直接在U盘中使用,绿色小巧、并且支持局域网多用户同时使用,适合广大中小企业。 软件能够解决的问题 一、日常的出入库管理、收付款管理、移动加权平均成本核算、以及相关数据的查询分析; 二、订单的跟单管理(包括销售跟单、采购跟单、生产跟单),可随时查询各业务的进度和相关物料的状态; 三、物料需求的计算、在维护好BOM的基础上,可计算生产计划的物料需求,进一步计算需要采购的物料数; 功能特点: 1、软件绿色、小巧、简单易用,支持局域网任意多用户同时使用; 2、可自定义出入库类型,根据类型设置单据编码,根据类型设置打印单据页脚信息; 3、可自定义添加多个仓库,可以上传货品图片供随时查看; 4、可自定义用户组,根据用户分组设置权限,包括菜单权限、按钮权限、价格权限; 5、查询数据可以复制到Excel中,期数数据可以批量导入,提高初始化效率; 6、收藏夹功能可以把自己常用的功能添加到收藏夹,方便使用。
2022-12-20 17:00:02 2.22MB MRP 进销存 对账 生产管理
1
电脑维修单页网页模板下载_绿色 电脑 标准 简单 英文 html.rar
2022-12-20 16:20:35 118KB 模板
多色块仿win8界面大气html5网页模板_大气 蓝色 纯色 扁平化 产品 服务 商业 单页 跳转 手机 responsive 响应式 案例 律师 科技 互联网 官网 简单.rar
2022-12-20 16:20:32 243KB 模板
分 一二三等级 各个等级奖项个数可以配置 背景图片/声音/标题/抽奖人名单可以配置 上传后发现有bug, 偶不知道如何删除!!!!
2022-12-20 16:19:12 276KB C# 抽奖 程序 软件
1
eviews计量经济学实验报告-简单线性回归模型分析.pdf
2022-12-20 14:21:36 170KB 文档资料
1
Java Web 简单的图书信息管理系统 简单的图书信息管理系统.txt
2022-12-20 14:21:14 392B 文档资料
1