| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
itheima国家电力系统(10天)
这是一个 基于maven的SSH demo整合项目。
[TOC]
##day01 系统框架的搭建
##day02 运行监控
js特效(一):JS控制table数据过长
一个隐藏的 div
.innerHTML
js特效(二):JS控制文本域或输入字符串的大小
引入一个 LimitedTextarea.js
js定时器 设置每10分钟刷新一次
Window.onload=function(){
setTimeout('refresh10()',1000*60);
}
function refresh10(){
window.loaction.reload();
}
CKEditor+CKFinder文本编辑器
(CkFinder 文件上传) (*!BUG)
文本编辑器 处理大数据 需进行截串存取
js特效(三):JS进度条
(实际是一个table、2个td td1.width每次+10px,td2.width-10px)
setTimeout('',100); 0.1s执行一次
js特效(四):JS浮动框
js特效(五):highslideJs插件
##day03 数据字典 SystemDDL
String hql = "SELECT DISTINCT new cn.itcast.elec.domain.ElecSystemDDL(o.keyword) FROM ElecSystemDDL o"; List<ElecSystemDDL> list = this.getHibernateTemplate().find(hql);
使用JQuery 进行表格的添加删除tr
添加数据类型的JS校验:
c3p0连接池
还可将hibernate.cfg.xml完全整合到beans.xml中
VO 栈值对象
PO 持久态对象
Hibernate实体的四种状态:瞬时(VO)、托管(PO)、游离、销毁
数据字典 编辑页面那个Form2页面还是有问题!
只能删除第1个itemname 无法删除其他的,Debug了一下 发现jQuery.remove 方法无效 (*!BUG)
? 当使用数据字典的时候,需要数据的转换,多了很多的sql语句(待优化!)(*!BUG)
打开子窗口
function.js/openWindow(sHref,strWidth,strHeight)
##day04 用户管理(【用户-用户文件】 一对多的操作)
jquery的ajax实现二级联动
jquery的ajax实现登录名的校验
鼠标失去焦点时 执行checkUser(this)方法:onblur="checkUser(this);"
jquery对象校验上传的表单 ?(!BUG) 为什么不执行这句话了???
window.close();
文件上传
struts2 文件上传
fileURL 是文件在服务器上的相对路径
/WEB-INF/page/system/error.jsp
errorReason:
<s:fielderror></s:fielderror><br>
<s:actionerror/><br>
改变struts2上次文件的大小
<constant name="struts.multipart.maxSize" value="20971520"></constant>
用户编辑
添加spring解决hibernate懒加载:
在web.xml的struts2过滤器前 openSessionInViewFilter
这样 一个servlet的生命周期 就可以延长至一个 request到response整个周期了。
延迟了session的关闭时间,,,容易造成*“假死”*现象(一个session未关闭,则另一个session链接就连不上了。)
文件下载
for(int b=-1;(b=in.read())!=-1;){
out.write(b);
}
内容的处理形式:
response.setHeader("Content-disposition","inline");
内联方式: 即直接打开
response.setHeader("Content-disposition","attachment;filename="+filename):
附件方式:
处理文件名中的中文
filename = newString(filename.getByte("gbk"), "iso8859-1");
用户删除
不仅要删除数据库中的, 还要把服务器上的userFiles.delete;
用户&用户文件-->级联删除:
在user.hbm.xml的userFile那一项 加个cascade="delete"属性
查看用户明细
11.使用md5的密码加密,处理用户的密码
MD5keyBean.java是个好东西!
##day05角色管理(权限分配)(多对多的操作)
角色-权限 多对多关系
角色是维护方
用户-角色 多对一的关系
用户是维护方 ,
hibernate主键策略:
1. uuid 32位唯一的uuid 2. increment 自增长 3. assigned 代理主键(hibernate自动生成、一个没有任何含义的唯一主键) 4. 。。。??
遍历所有 权限
使用 二级List
jquery实现 首页权限选择的复选框的联动操作
[attribute^=value] 匹配给定的属性是以某些值开始的元素
[attribute$=value] 匹配给定的属性是以某些值结尾的元素
火狐firedebug jquery函数执行完 返回的那些东西都是什么?
使用包含的技术 匹配 角色所具有的权限
(popedomList 中的所有mid->String 然后调用contains())
编辑页面的一些JS控制
根据角色 查询对应的用户!!
(如果是普通用户、这数量也太大了、、、此处应该放到 用户编辑页面去做)
再加一个 添加权限的功能!!(!BUG)
多对多的删除
##day06 系统登录&权限管理模块
struts2校验机制
ValidationAware -->
覆盖更改struts标签的样式(struts2-core --> template -->simple --> <s:... />)
在src下 创建一个 template/simple文件夹,然后想覆盖那个 就复制那个标签,然后 直接更改。
HashMap 与 HashTable的区别:‘
hibernate懒加载问题 之四种解决方案(详见 word笔记)
验证码 系统生成的imageNumber放到session域中,与request传过来的imageNumber比较
额额额 又发现了一个问题(!BUG)前端向后台传密码 居然是明文传输、、、
(要不要 先在前端用md5加个密,然后 再在后台 将密码二次加密后 再存到数据库中?[[-> _-》] 还是先不给自己找麻烦了])
利用客户端的Cookie(保存用户名、密码)“记住我”
拦截器 -->只能拦截.do(跳转action的操作),不能拦截跳转jsp servlet的操作
此时 需引入过滤器filter:
在跳转index.jsp页面之前 先获取Cookie, 传值的方式给index.jsp
自定义过滤器,放置到web.xml的struts2过滤器的前面
el表达式 获取request中的值: ${requestScope.password}
jquery的ztree插件的使用(完成动态加载树型结构)
HQL :
请不要 尝试封装 in语句, hibernate找不到的。
xml中加个 ...无需转义
###角色和权限的控制
角色控制
权限控制:
使用了大量的 <s:if test="">标签。。。感觉 并不是一个特别好的方法
--> 引入 自定义标签
###(session级别的)粗颗粒权限控制:
服务器中的session,10分钟不操作,就会被自动清空(web.xml-->
<session-timeout>10</session-timeout>
</session-config>
) 【所以要在**struts过滤器**中 先将操作拦截下来 判断一下此操作的Session是否存在】 - 存在 放行 - 否则 重定向回首页(登陆等 本来就没有Session的操作除外)
try{
//如果没有异常,不会执行catch
String result = 参数.invoke();//指定Action的类,返回Action类的返回值
return result;
}
catch(Exception){
//如果出现异常,执行catch体
//日志备份(log4j技术)
//异常处理
return "errorMsg";
}
##day07
webservice框架:
hibernate 二级缓存
联合查询+标量查询
???hibernate的联合查询与sql联合查询???孰优孰劣
利用反射技术 封装了一个 接口
List<T> findCollectionByConditionNoPageWithSql(Map<String, Object> condition, Map<String, String> orderby, String scalar, ArrayList<String> innerJoin);
然而,,装逼失败。 因为查出来的object与 t的属性顺序不一致。[(´Д⊂ヽ]
// 将List<Object[]>转换成List<ElecUser>
List<T> tList = new ArrayList<T>();
if (list != null && list.size() > 0) {
for (Object[] o : list) {
try {
T t = (T) entityClass.newInstance();
Field[] fields = entityClass.getDeclaredFields();
for (int i = 0; i < o.length; i++) {
Field field = fields[i];
field.setAccessible(true);
field.set(t, this.convert2String(o[i], field));
}
tList.add(t);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return tList;
##day08 资料图纸管理 & lucene检索
##day09
用户管理 添加分页功能
POI报表导出,JXLexcel文件的导入
jfreechart 了解(!BUG) 和 FusionCharts free
| Back | FazBrowse Home | New Git URL |