面试题:SSH项目总结 !=!=未看 没用
阿玻罗软件(上海)有限公司已经两年了.中国银行营销系统,到民生银行小微信贷工厂建设.再到交通银行ioffice移动平台项目.以前所学的SSH好多都用不上
公司的框架.都是负责项目的贷款查找模块开发和测试.为什么总是要我管这些呢.其实心里还真是喜欢解决代码问题的.这里总有机会去深圳了.哈哈..
以下是我空的时候做的几个小项目.有人要可以分享.
项目部分案例:A B 两个,不做jsp方面的总结. (服务器在我自己电脑上,不一定随时开着) 也可以用微信加我微信公众平台号: laser7 直接查看
http://bsyg.vicp.net/netctoss-ssh-hd/cost/findCost
这个项目用SSH架构,其中主要用到: struts2用filter配制请求,和OGNL表达式, hibernate的多级缓存应用及优化,利用hibernate建表也是比较省心的一件事. spring 的数据源管理,SessionFactory对java Bean的管理我用的是用注解方式.虽然配制起来有点麻烦,用起来真是很爽的.不知道要少写多少代码.
其实我感觉这三个框架所有的业务最终还是要回到struts2的配制中.这个是最重要的.
在上海奔波两年难道只是为了积累人生经验?
A项目:
某公司DMS数据采集系统:
主要总结经验有三:
一.数据文件解码与编码,用socket.流的传送文件到服务器(设计为单例的),并用了定时器.(Timer.schedule).后来改为:插件Quartz+Spring来实现.具体实现还可以用过虑器等
二,由于数据不多,并且大多用于以上项目的报表与帐单输出,oracle中用pl/Sql做了相关的存储过程,用于输出显示.在此不做说明;
三.客户端可能有多个(大并发),所以服务端在指派任务时我用延迟的线程池+双缓冲队列.(项目经理说这个队列以后都会用得很少.)
通过读取UNIX系统日志文件,获取其中用户的登录记录加以处理统计,最终生成多干对登录登出记录上传至服务器,等待分析。
读取的日志文件为:wtmpx
其为一个纯2进制文件。
通过我们的程序最终应将此文件转化为一个记录了每个用户的一组登录登出数据的文本文件
实现过程:
wtmpx此文件中记录了若干条用户的操作数据,登录和登出分别都记录在该文件中。此文件会根据用户的操作而不断增长的。unix会将每次用户的操作写入该日志文件。
1:
从日志文件中读取10条2进制数据。并存入一个临时文件中。
临时文件名:temp.log
那么我们就需要将当前读取10条数据后,游标的位置记录起来,以便我们下次再读取日志文件时直到从哪里开始。
记录游标位置的文件:
last-position.txt
第二步:
从临时文件temp.log中将每一条2进制的数据转换为我们可以理解的字符串信息,并存入一个解析后的日志文件中log.txt
对于unix的日志文件中的一条数据中有若干信息,但我们不需要将所有信息全部解析出来。这里我们只采集我们需要的部分信息,其中包括:
第三步:
将log.txt中的数据匹配成对,将匹配上的数据保存在logrec.txt文件中,等待被发送至服务器。
将没有被匹配成对的数据存入login.txt文件中,等待下次匹配
B项目:NETCTOSS某公司计费支撑系统-网络版:
--用于维护UNIX服务器账号、资费标准, 以及查询用户消费情况的在线系统。
--系统分为如下模块:资费管理、账务账号、 业务账号、角色管理、管理员管理、账单 管理、报表等。
--我们开发其中的资费、账务账号、业务账号、 角色、管理员(这两个数据表也用到很多的关系表中间表,自认为比较麻烦)。
主要总结经验如下::
一:查询.
带条件、分页、关联:为了客户的良好体验,一般都是真分页,不做假分页,当然前期做案例演示还是用假分页好.主要是Sql(本项目用的是Spring+Hibernate,以后都写为Hql)的判断与拼写,这个在多个模块中都用到.我想这个得成一个模板才好(当然前台也是),其中对参数的分配比较麻烦,不过和后面的角色与管理员分配相比就差了些.
二.权限与角色模块管理
. --用途是能够满足一个软件的多元化,满足不同的人的使用需求,就是要给不同的人分不同的模块。现在让我说也很难说得清,但心里对如何操作却是明白
为什么说不好说呢,因为BS架构考虑到下拉框的传输,struts中的不同tags不同,写完完全不同,从xml中读出权限后处理为一个list,再通过中间表来找到相关的角色
这时就是不简单的修改,而是一个修改动作包含了:查询,删除,再增加的操作(见下面)
--角色复选框的值,是查询出的所有的角色,不是模块。
--新增时分3步骤(参考角色新增)
a、新增管理员数据
b、从新增数据中得到管理员ID
c、根据管理员ID,以及页面传递过来的一组角色ID,
新增管理员和角色中间表数据。
----权限表:用XXX.xml替代,做为一个数据源,不管是oracle,mysql等,还是一个文本,都要做到方便的读写,这个读xml文件其实不难,但是应用广,我在做的微信公众平台
后才发现.所有传输数据都是写为xml格式,(当然一些接口还是用json来传递参数).
===最后就是权限控制,我们在前端用到:轮询.(相当于多次的ajax提交数据,当然也有点类似servlet中的转发)
----- 写一个权限控制拦截器,在拦截方法中,判断Action的URL,从而判断它访问的模块,进而可以知道当前访问的模块,将此信息存入session------
以上包含的信息量太大,本人水平有限,不能尽述,只能在实践中多多运用熟悉才能完全掌握.希望看到此的HR或前辈们能介绍一下工作.工作地点无所谓.北上广都可以.
也希望以后在项目中多用到新的点子,完善我的微信平台.平台名字是以前注册用的,不必关注.
面试题:SSH项目总结 !=!=未看 没用的更多相关文章
- [转载] JAVA面试题和项目面试核心要点精华总结(想进大公司必看)
JAVA面试题和项目面试核心要点精华总结(想进大公司必看) JAVA面试题和项目面试核心要点精华总结(想进大公司必看)
- 【SSH项目实战三】脚本密钥的批量分发与执行
[SSH项目实战]脚本密钥的批量分发与执行 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载, ...
- 【SSH项目实战】脚本密钥的批量分发与执行【转】
[TOC] 前言 <项目实战>系列为<linux实战教学笔记>第二阶段内容的同步教学配套实战练习,每个项目循序衔接最终将组成<Linux实战教学笔记>第二阶段核心教 ...
- Myeclipse插件快速生成ssh项目并配置注解 在action层注入service的超详细过程
最近发现,我对于ssh的 自动注入配置 还是不熟悉,于是整理了一下 终于做了一个 简单的 注入配置出来. 以前都是在applicationContext.xml 里面这样配 <bean id=& ...
- 在SSH项目中实现分页效果
在实现分页的时候,我使用的是数据库下面的User表,实现的效果是通过分页查询 能够将表中的数据分页显示,点击相关的按钮实现:首页.上一页.下一页.末页的显示 1新建一个dynamic web proj ...
- SSH项目搭建(二)
本章讲解SSH项目需要到哪些jar包,及各个jar包的作用 一.struts2 1.下载好struts2,struts2文件夹>>>>apps>>>>a ...
- ssh项目java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoade错误
错误: 导入别人的ssh项目后出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoade错误, 错 ...
- SSH项目与SSM项目的进入首页的方法
SSH项目中: jsp页面一般都是存放在WEB-INF下面的目录下,这样我们就不能直接访问到这些jsp页面了,保证了页面的安全性. 在struts的管理中,是利用action来实现页面的跳转,进入in ...
- SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)
这篇博文的目的 尝试搭建一个完整的SSH框架项目. 给以后的自己,也给别人一个参考. 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hiberna ...
随机推荐
- phpcms v9 tags调用方法
{loop $keywords $keyword} <a href="{APP_PATH}index.php?m=content&c=tag&catid={$catid ...
- 中 varStatus的属性简介
varStatus是<c:forEach>jstl循环标签的一个属性,varStatus属性.就拿varStatus="status"来说,事实上定义了一个status ...
- C# 操作自定义config文件
示例文件:DB.config 1.读取 //先实例化一个ExeConfigurationFileMap对象,把物理地址赋值到它的 ExeConfigFilename 属性中: ExeConfigura ...
- loj #6136. 「2017 山东三轮集训 Day4」Left
题目: 题解: 我们可以发现所有的交换器都是一个位置连接着下一层左侧的排序网络,另一个位置连着另一侧的排序网络. 而下一层是由两个更低阶的排序网络构成的. 两个网络互不干扰.所以我们可以通过第一行和最 ...
- Linux常用命令(个人使用频率较高)
1,日志查看 tail(cat) -f|grep ERROR(任意字符) filepath (任意行数) -f|grep ERROR(任意字符) filepath 2,查看目录&授权 file ...
- Amoeba mysql读写分离搭建及介绍
Amoeba mysql读写分离搭建及介绍 推荐: http://blog.chinaunix.net/uid-20639775-id-154600.html
- nginx 端口转发
nginx 端口转发 默认nginx监听的端口是8080,想通过配置nginx访问80直接跳转到nginx,以下是配置方法: [root@localhost vhost]# cat tomcat.jo ...
- sqlserver卸载
- fragment用法
简单用法: 1.新建布局.新建fragment类 2.在activity_main.xml中添加fragment <LinearLayout...... <fragment android ...
- 启用不安全的HTTP方法解决方案
启用不安全的HTTP方法解决方案 Web AppScan HTTP WebDAV 近期通过APPScan扫描程序,发现了不少安全问题,通过大量查阅和尝试最终还是解决掉了,于是整理了一下方便查阅. 1. ...