前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OA项目总结(附程序源码)

OA项目总结(附程序源码)

作者头像
时间静止不是简史
发布2020-07-27 10:27:02
1.6K0
发布2020-07-27 10:27:02
举报
文章被收录于专栏:Java探索之路Java探索之路

项目感知

利用思维导图概括项目实现过程以及所需要实现的各项功能

在这里插入图片描述
在这里插入图片描述

项目中重要知识点

MVC分层设计模式

mvc简介 m:model 模型层service层和dao层和实体类层 v:view 视图层jsp页面 c:controller 控制层servlet

好处: 1、各司其职,互不干扰。 2、有利于开发当中的分工 3、有利于组件中代码的重用

重定向与请求转发的区别

重定向: 1、客户端发送请求,服务器响应,待服务器响应后客户端又发送请求。两次请求,不共用request,地址改变为目标地址 2、重定向跳转的url采用的是绝对路径

请求转发: 1、一次请求,前后共用一个request,地址不变仍为当前地址 2、请求转发跳转的url采取的是相对路径

JSP中的四个作用域

PageContext 1、生命周期:当对JSP的请求时开始,当响应结束时销毁。 2、作用范围:整个JSP页面,是四大作用域中最小的一个,即超过这个页面就不能够使用了。

Request 1、生命周期:在service 方法调用前由服务器创建,传入service方法。整个请求结束,request生命结束。 2、作用范围:整个请求链(请求转发也存在)。 3、作用: 在整个请求链中共享数据。最常用到:在Servlet 中处理好的数据交给Jsp显示,此时参数就可以放置在Request域中带过去

Session 1、生命周期:在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存 中创建一个session并返回。当一段时间内session没有被使用(默认为30分钟),则服务器会销毁该session。 如果服务器非正常关闭(强行关闭),没有到期的session也会跟着销毁。 如果调用session提供的invalidate(),可以立即销毁session。 2、作用范围:一次会话。 3、作用:HttpSession 在服务器中,为浏览器创建独一无二的内存空间,在其中保存会话相关的信息。

Application 1、生命周期:当Web应用被加载进容器时创建代表整个web应用的application对象,当服务器关闭或Web应用被移除时,application对象跟着销毁。 2、作用范围:整个Web应用。

所用插件

前端代码插件 Junit 各种工具类(Dbutil、验证码、ExcelOperate、自定义异常、DateUtil、Constants) 富文本编辑器kindEditor 日历插件My97DatePicker 数据导出为xls:POI 图表显示数据Echarts

项目中踩过的雷

1、更改项目后,需要重新部署相关项目,不然会出现各种访问错误

2、使用jquery时,一定不要忘记给id 选择器加 # 如:$("#btn1")

3、分行的时候一定一定要加空格,不加空格会导致产生sql语句未正确结束的错误,如下语句

代码语言:javascript
复制

 String sql="select dt.*,e.deptno,e.realname,d.deptname from duty dt "
 + "join employee e on dt.empid=e.empid "
 + “join dept d on e.deptno=d.deptno”;
 

4、接上个错误,如果遍历的时候,取的字段名错误,java.sql.SQLException: 列名无效

5、如果servlet发送的日期数据格式为"五月 20, 2019",则需要gson对其格式化,如下:

代码语言:javascript
复制

 Gson gson = new GsonBuilder().setDateFormat(“yyyy-MM-dd HH:mm:ss”).create();
 //按照 yyyy-MM-dd HH:mm:ss格式化。勿忘重启服务器
 

6、两种Date java.util.Date 时间格式: 年-月-日 时:分:秒.毫秒 java.sql.Date 时间格式:年-月-日 java.sql.Date转为java.util.Date java.sql.Date date=new java.sql.Date(); java.util.Date d=new java.util.Date (date.getTime());

7、在写ajax时,注意单词拼写问题,如果发现所有逻辑都一样但是就是不出结果过,这说明应该是自己的单词拼写的问题(datetype/dataType)

代码语言:javascript
复制

 /* date:{“empId”:empId,“deptno”:deptno,“dtDate”:dtDate},
 datetype:“text”,  */
 data:{“empId”:empId,“deptno”:deptno,dtDate:dtDate},
 dataType:“text”,
 

8、报非法参数错误,一般是由于在jsp页面中声明的变量名与下面传值的变量名不一致导致,注意仔细观察 如: var dtDate——>var dtDtate 但在href拼接是变量名残缺用dtDate

9、

代码语言:javascript
复制
String  typeArr[]=request.getParameterValues(“type”);  用于接收jsp页面的数组数据
String empId=request.getParameter(“empId”);            用于接收的单个数据

10、在jsp页面的书写中,使用el表达式应注意:

代码语言:javascript
复制
${param.expId} <==> request.getParameter(“expId”)
 request.setAttribute(“key”,value)???

11、在新建一个servlet项目时,在继承baseServleth后需要: 删注解(@override),改访问修饰符(propected 为 pulic,否则会404)

12、在Oracle中插入日期型数据: to_date(‘2014-02-14’,‘yyyy-mm-dd’) 在Oracle将(已存储的)日期型数据转换成字符型数据: to_char(dt.dtdate,‘YYYY-MM-DD’) 将数据库中的数据与jsp页面中的日期数据比较时,使用

13、Ajax书写格式

代码语言:javascript
复制
$.ajax({
url:" ",
type:“post”,
data:{“key”,value},
dataType:“text”,
success:function(data){
});

注:第一个:data:{key,value},可省略,用于控制层获取相关的值,request.getParameter(“key”); 第二个:data:形参,用于表示从控制层传来的值,一般会alert一下(alert(data);)

14、""" 作用: 输出双引号

代码语言:javascript
复制
System.out.println("""+a+""");-----》“a” 

项目源码分享

项目数据库表以及源码见百度云,下载后请根据修改db.properties 链接:https://pan.baidu.com/s/1tiNfz9HQNUaZjF_Mjyjkpg 提取码:83ip

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目感知
  • 项目中重要知识点
    • MVC分层设计模式
      • 重定向与请求转发的区别
        • JSP中的四个作用域
          • 所用插件
          • 项目中踩过的雷
          • 项目源码分享
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档