项目开发一般流程、入职流程、尚学堂OA项目01_基础环境搭建、人事管理模块搭建、Servlet的高级封装

1. 项目开发的一般流程

  1. 与客户确定需求文档
  2. 项目组研讨需求的合理性
  3. 与客户再次确定需求文档【需求文档定稿】
  4. 项目组研讨需求文档的功能及模块划分
  5. 项目组研讨文档规范及数据库设计
  6. 项目组确定模块职责及与测试组对接
  7. 进入开发阶段【迭代开发】
  8. 开发完成的功能提交到测试服务器【测试人员测试】
  9. 测试出现问题,相应人员修改,之后再提交重新测试
  10. 测试无误,提交到正式服务器【客服的服务器】
  11. 项目维护

2. 入职时工作的一般流程

  1. 索要开发文档
  2. 索要数据库模型PDM
  3. 索要项目源码及数据库脚本
  4. 搭建项目
  5. 找到自己负责的部分【研读】
  6. 正式开发

一般公司会给一周时间

3. 尚学堂办公自动化系统/OA

OA—Office Automation

3.1 项目介绍

搭建一个web项目,用来处理公司内部的一般管理

3.2 项目资料

  1. 界面原型 -HTML原型模板,用来搭建JSP页面
  2. 用例图 -阐述用户的关系及权限功能
    用例图
  3. 数据库模型图 -阐述表结构及表之间的相互关系
    数据库模型图
  4. 时序图 -阐述某个功能具体的执行流程
    时序图
  5. 业务流程图 -阐述某个业务的处理逻辑
    业务逻辑图
  6. 工具类
    6.1 My97日期插件
    6.2 验证码生成工具类
    6.3 POI工具
    6.4 Echarts

3.3 项目开发

3.3.1 数据库环境搭建

执行数据库脚本

3.3.2 项目基板搭建

  1. 层级目录搭建
    • src/cn.khue/
      exception
      filter
      listener
      mapper
      pojo
      service
      servlet
      util
    • web/WEB-INF/
      lib
  2. jar包导入
    • JDBC:
      mysql-connector-java-5.1.38.jar
    • Mybatis:
      mybatis-3.2.7.jar
      asm-3.3.1.jar
      cglib-2.2.2.jar
      commons-logging-1.1.1.jar
      javassist-3.17.1-GA.jar
      log4j-1.2.17.jar
      log4j-api-2.0-rc1.jar
      log4j-core-2.0-rc1.jar
      slf4j-api-1.7.5.jar
      slf4j-log4j12-1.7.5.jar
    • JSTL:
      jstl-1.2.jar
    • GSON:
      gson-2.2.4.jar
    • ServletFileUpload:
      commons-fileupload-1.3.2.jar
      commons-io-2.5.jar
  3. 配置文件导入
    mybatis.xml
    log4j.properties
  4. 工具类编写
    MybatisUtil.java
    MyFilter.java

3.3.3 界面原型模板搭建

将资料中的html模板文件转变为jsp文件

3.3.4 人事管理模块搭建

3.3.4.1 部门添加功能
  1. 前端实现
    deptAdd.jsp添加jQuery代码

    请求时机:单击按钮时
    请求地址:deptServlet
    请求参数:部门编号、部门名称、地址
    响应结果:true或false的字符串

请求参数较多时,可用form表单包裹,然后使用ajax通过id获取form表单数据

<form id="fm">
<input type="text" name="" />
<input type="text" name="" />
<input type="text" name="" />
...
</form>
<script>
	$(funcation(){
		var reqData=$("#fm").serialize();
		$.post("deptServlet", reqData, funcation(){
			if(eval(data)){
				alert("增加成功");
			}else{
				alert("增加失败");
			}
		})
	})
</script>
  1. 后端实现
    DeptServlet.java
    DeptService.interface
    DeptServiceImpl.java
    DeptMapper.interface
3.3.4.2 部门查询功能
  1. 前端实现
    deptList.jsp添加jQuery代码

    请求时机:页面加载成功
    请求地址:deptListServelt
    请求数据:无
    响应数据:所有部门信息的json字符串

  2. 后端实现
    DeptListServlet.java
    DeptListService.interface
    DeptListServiceImpl.java
    DeptListMapper.interface
3.3.4.3 Servlet的高级封装

解决问题:每个功能点都需要独立的一个Servlet来实现,代码冗余
解决方式:向上提取service方法,向下拆分不同功能点的实现方法,上下通过请求传递的实现方法名链接
所需技术:封装、继承、反射

  1. 上层父类BaseServlet类
public class BaseServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	//获取请求传入的方法名
        String methodName = req.getParameter("method");
        //获取本类的字节码对象
        Class clazz=this.getClass();
        try {
        	//获取本类字节码对象的方法
            Method methods = clazz.getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
            //执行方法
            methods.invoke(this,req,resp);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. 下层子类DeptServlet类
@WebServlet("/deptServlet")
public class DeptServlet extends BaseServlet{
	//增加部门的方法
	public void addDept(HttpServletRequest req, HttpServletResponse resp){
		//获取请求数据
		int deptno=Integet.parseInt(req.getParameter("deptno"));
		String deptname=req.getParameter("deptname");
		String location=req.getParameter("location");
		//处理请求
		DeptService dept=new DeptServiceImpl();
		int i=dept.addDept(deptno, deptname, location);
		//响应请求
		if(i>0){
			resp.getWriter().writer("true");
		}else{
			resp.getWriter().writer("false");
	}
	
	//查询部门的方法
	public void queryDept(HttpServletRequest req, HttpServletResponse resp){
		//处理请求
		DeptListService dept=new DeptListServiceImpl();
		List<Dept> list=dept.query();
		//响应请求
		resp.getWriter().writer(new Gson().toJosn(list));
	}
}
  1. 前端传参
    deptAdd.jsp
<script>
$.post("deptServlet", reqData+"method=addDept", funcation(){...})
</script>

deptList.jsp

<script>
$.post("deptServlet", "method=queryDept", funcation{...})
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值