项目总结 骑猪看日落 2022-08-13 11:58 156阅读 0赞 经历漫长的时间,终于把项目功能模块做完了,后期进行项目的测试、调优等工作。想想在这个项目中还是收获许多,比如:使用struts2+mybatis+bootstrap做商户管理系统,struts2虽然以前有使用过,但是自从struts2报高危漏洞之后就很少使用过,对于其中的一些用法不是很熟悉,只有自己慢慢的拾,struts2的拦截器做的真的很好,在做登录的时候就使用到了 /** * 登录拦截器 * @author wangbowen@date 2014年9月1日 * @version 1.0 * */ public class LoginedCheckInterceptor extends AbstractInterceptor { /** * */ private static final long serialVersionUID = 6812421935655688100L; @Override public String intercept(ActionInvocation invocation) throws Exception { //获取请求的地址 String url = ServletActionContext.getRequest().getRequestURL().toString(); //获取响应 HttpServletResponse response = ServletActionContext.getResponse(); //设置响应头信息 response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setHeader("Cache-Control", "no-store"); response.setDateHeader("Expires",0); //登录信息 MerchantLoginInfo merchantLoginInfo = null; //对登录与注销请求直接放行,不予拦截 if (url.indexOf("goLogin")!=-1 || url.indexOf("goLoginOut")!=-1){ return invocation.invoke(); }else{ //验证Session是否过期 if(!ServletActionContext.getRequest().isRequestedSessionIdValid()){ //session过期,转向session过期提示页,最终跳转至登录页面 return "gotoLogin"; }else{ merchantLoginInfo =(MerchantLoginInfo) ServletActionContext.getRequest().getSession().getAttribute("userInfo"); //验证是否已经登录 if (merchantLoginInfo==null){ //尚未登录,跳转至登录页面 return "gotoLogin"; }else{ return invocation.invoke(); } } } } } 然后在xml中配置如下就可以使用了 <!-- 配置自定义拦截器LoginedCheckInterceptor --> <interceptors> <interceptor name="loginedCheck" class="cn.my.interceptor.mertchant.LoginedCheckInterceptor"/> <interceptor-stack name="mystack"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="loginedCheck" /> </interceptor-stack> </interceptors> <!-- 定义全局result --> <global-results> <result name="gotoLogin">login.html</result> </global-results> <!-- 跳转至主页面 --> <action name="goMenu"> <result>/view/merchant/main.html</result> <interceptor-ref name="mystack"/> <!--使用自定义拦截器---> </action> 在以前的项目中数据库访问技术一般使用hibernate、jdbc,基本上没有使用过mybatis,只是看过相关文档。在使用的时候心里总是想还是 hibernate好,一些基本的sql语句不需要自己去写,而mybatis什么sql语句都需要自己去写。比如一个简单的分页语句,对于hibernate只需要调用方法就可以了,而mybatis需要手写查询数据的方法和查询总条数的方法 <select id="getxx" resultMap="BaseResultMap" parameterType="cn.my.utils.PageParameter" > select * from (select * from (select osd.AO_RUNNING_NUM,osd.AO_TRANS_DATETIME,osd.TRANS_TYPE, osd.TRANS_AMOUNT,osd.BILL_ORGAN_SERVICE_CHARGE,osd.MOBILE_NO ,rownum rn from osd_inprov_trans_details_info osd where osd.TRANS_BILL_ORGAN = ${parameterMap.get('merchantId')} <if test="parameterMap.get('beginTime') != null and parameterMap.get('beginTime') != ''"> and to_char(osd.AO_TRANS_DATETIME,'yyyy-MM-dd') between '${parameterMap.get('beginTime')}' </if> <if test="parameterMap.get('endTime') != null and parameterMap.get('endTime') != ''"> and '${parameterMap.get('endTime')}' </if> <if test="sort != null and order != null"> order by ${sort} ${order} </if> ) <![CDATA[ where rn <= #{endRows,jdbcType=INTEGER} ) where rn >#{startRows,jdbcType=INTEGER} ]]> </select> <select id="getxxxTotal" resultMap="BaseResultMaps" parameterType="cn.my.utils.PageParameter"> select count(*) as total, sum(TRANS_AMOUNT) as sumMoney from osd_inprov_trans_details_info osd where osd.TRANS_BILL_ORGAN = ${parameterMap.get('merchantId')} <if test="parameterMap.get('beginTime') != null and parameterMap.get('beginTime') != ''"> and to_char(osd.AO_TRANS_DATETIME,'yyyy-MM-dd') between '${parameterMap.get('beginTime')}' </if> <if test="parameterMap.get('endTime') != null and parameterMap.get('endTime') != ''"> and '${parameterMap.get('endTime')}' </if> <if test="sort != null and order != null"> order by ${sort} ${order} </if> </select> 但是慢慢发现mybatis还是很好用的,多以总结了以下 数据库访问技术的比较 : 1. Hibernate可以提供开发效率,但是对底层SQL的控制不太方便; 2. MyBatis通过模版化支持可以方便的控制SQL,效率不高 3. JDBC自由度高、运行效率高,但是代码繁复,比如:完全依赖于数据配置产生的查询方案的综合查询系统 对于bootstrap响应式框架之前只是简单的使用,并没有详细的了解。对于页面的样式与布局不是很会,还需要多看多使用多总结。 ![Image 1][] 其实让我真正受益匪浅的是软件开发的思想:做一个功能或者其他时,首先要弄清楚做的目的,接着就是做的方法有哪些?然后挑选出最能解决此问题的方法,构思此方法的一个实现逻辑;最后就是动手实践,在实践中修正不足之处。 [Image 1]:
相关 项目总结 故心故心故心故心小故冲啊 -------------------- 文章目录 这是一个怎样的项目 用到了什么技术,为什么用这项技术(以及每项技术很细的点以 淩亂°似流年/ 2023年01月03日 01:22/ 0 赞/ 155 阅读
相关 项目总结 经过项目组成员一年多的努力,项目现在顺利上线。由于本项目在国内属于首例城市交通项目,不论客户还是我们开发方对系统需求都没有一个清醒的认识,这就在需求定义和项目开发过程中走了不少 Myth丶恋晨/ 2022年10月01日 02:00/ 0 赞/ 156 阅读
相关 项目总结 开发平台,资源库,为公司内部保存资源,制作其他类型资源为项目开发背景。 前期无测试,无文档,需求一步跟着一步来。造成大量时间浪费。 此项目中主要负责题库,字典功能开发。 一时失言乱红尘/ 2022年08月18日 00:52/ 0 赞/ 167 阅读
相关 项目总结 经历漫长的时间,终于把项目功能模块做完了,后期进行项目的测试、调优等工作。想想在这个项目中还是收获许多,比如:使用struts2+mybatis+bootstrap做商户管理系 骑猪看日落/ 2022年08月13日 11:58/ 0 赞/ 157 阅读
相关 项目总结 在发布的时候犯了一个非常非常不该犯的错误。 发布之前,没有对上次到这次发布的功能进行详细的测试。 而且没有在测试服务器上测试。 当初只是想着这块功能实现就行了,但是 布满荆棘的人生/ 2022年07月29日 11:42/ 0 赞/ 150 阅读
相关 jqGrid 项目总结 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <t 拼搏现实的明天。/ 2022年06月18日 04:45/ 0 赞/ 186 阅读
相关 暑假项目总结 这个暑假待在学校十几个人分组做了几个项目,其中一个项目是这学期一直在搞的,从明确产品目标,需求分析,到UI设计,再到后期的开发,是我大学两年以来从没做过的一个完整流程,总算是对 ╰+攻爆jí腚メ/ 2022年05月16日 02:12/ 0 赞/ 176 阅读
相关 项目总结 项目总结 有很多的人可能都怀揣着同一个相同的理想走进了兄弟连,那就是我要改变自己的将来,改变那种面朝黄土背朝天的境况,但是在经过了一段时间的学习后我发现很多的人已经将自己最 柔情只为你懂/ 2022年05月15日 11:11/ 0 赞/ 200 阅读
相关 项目总结 项目总结 有很多的人可能都怀揣着同一个相同的理想走进了兄弟连,那就是我要改变自己的将来,改变那种面朝黄土背朝天的境况,但是在经过了一段时间的学习后我发现很多的人已经将自己最 r囧r小猫/ 2022年05月15日 11:10/ 0 赞/ 226 阅读
相关 项目总结 开发工作总结 总体上来说在这段时间里 学习了许多平时没有学到的东西,对项目的理解也不象以前那么肤浅了。下面就在这段时间工作总结下: 第一阶段:需求分析阶段。 骑猪看日落/ 2022年05月15日 09:23/ 0 赞/ 209 阅读
还没有评论,来说两句吧...