前言:

  在项目开发过程中的一点点指导思想

1、环境准备

  • win系统
  • Eclipse 开发平台
  • maven
  • tomcat
  • Mysql 数据库,mysql5.6
  • 操作数据库的jar 包
    •   JDBC 连接数据库的jar,mysql-connector-java-xxx.jar
    •   DbUtils 操作数据库jar包,基于 JDBC的封装
    •   数据源jar,可以有c3p0、dbcp
  • 日志文件,log4j
  • 前台编写jquery需要的js
  • 编写前台使用的公用样式 bootstrap

2、需求

创建一个表,对该表进行增删改查

3、数据库创建

create database XXX;

create table XXX ();

4、详细设计

  1. 数据库操作方法的封装  
    使用数据源来获取连接和释放连接

    将基本的CRUD方法封装,以供子类继承或者调用
  2. 实体类,实体的数据库操作
  3. 实现业务逻辑的servlet
    在web.xml 中配置出servlet 对应的路径,我们本来的一个做法是 在doGet 或者 doPost中将路径拦截,然后用 拦截路径得到的methodName 来调用对应的方法。缺点:每增加一个方法,除了在servlet中要配置一条路径外,dopost中也得将路径加进去
    现在有个方法,如果路径与对应的方法名取值相同,可以采用映射
    //1 获取servlet路径 诸如:/add.do
    String servletPath=req.getServletPath().substring(1);
    //去除/和.do得到类似于add这样字符串
    String methodName=servletPath.substring(0,servletPath.length()-3);
    //System.out.println(methodName);
    try {
    //利用反射获取获取methodName对应的方法
    Method method = getClass().getDeclaredMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);
    //利用反射获取方法
    method.invoke(this, req,resp);
    } catch (Exception e) {
    //出错时候响应出来
    resp.sendRedirect("error.jsp");
    }

      对于request、response 的编码问题

    在servlet 中跳转页面,我们需要将后台的对象在传回前台,可以用 request.setAttribute(name,value);
    request.getRequestDispatcher(forwordPath).forward(request,response);

  4. 新添加
    新添加的信息有哪些需要验证错误,比如name是否被占用,电话号的格式,email的格式之类,若验证通过,则将表单封装为一个实体对象,然后操作save数据库,成功则重定向到 success.jsp 页面,失败则提示错误信息,并保留在当前页面
  5. 修改
    获取请求参数id,根据id 得到实体对象,重定向到 修改页面
    验证参数通过后,将传过来的表单参数作为一个信息对象,调用操作数据库的修改方法,成功则跳转到查询页面
    判断一个值唯一,可以用old 和 new 两个参数作为对比,如果新旧不相同,则在数据库中其是否存在
  6. 删除
    获取id的值,执行提示是否删除,调用Dao的删除方法,删除成功跳转删除(批量删除?)

JavaWeb 项目开发中的技术总结的更多相关文章

  1. JavaWeb项目开发中eclipse缓存问题

    学习Java快2年了 有时候改完代码启动tomcat测试时,新代码不生效,这可能就是缓存问题. 所以平时就用以下几个方法解决,如果还是解决不了,就找老师吧! 1.清理项目 2.移除项目,清理tomca ...

  2. MyBatis 项目开发中是基于 XML 还是注解?

    只要你对 MyBatis 有所认识和了解,想必知道 MyBatis 有两种 SQL 语句映射模式,一种是基于注解,一种是基于XML. 基于 XML <mapper namespace=" ...

  3. 团队项目开发中,常见的版本控制有svn,git

    团队项目开发中,常见的版本控制有svn,git

  4. 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获

    项目开发中的一些注意事项以及技巧总结   1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...

  5. Angular 项目开发中父子组件传参

    在项目开发中经常会遇到 组件之间传参的问题.今天总结下在使用angular的项目中父子组件传参的问题: 1.父组件向子组件传参: 然后在父组件中 然后在父组件的html中 然后就可以在子组件中使用了 ...

  6. 《Maven在Java项目开发中的应用》论文笔记(十七)

    标题:Maven在Java项目开发中的应用 一.基本信息 时间:2019 来源:山西农业大学 关键词:Maven:Java Web:仓库:开发人员:极限编程; 二.研究内容 1.Maven 基本原理概 ...

  7. 炼金术(1): 识别项目开发中的ProtoType、Demo、MVP

    软件开发是很分裂的,只有不断使用原则和规律,才能带来质量. 只要不是玩具性质的项目,项目应该可以大概划分为0-1,1-10,10-100,100-1000四个种重要阶段.其中,0-1是原型验证性的:1 ...

  8. 项目开发中的git简单使用

    原文地址: https://www.zhuyilong.fun/tech/the-blog-git.html 示例远程仓库地址: https://github.com/zhu-longge/gitWo ...

  9. Java项目开发中实现分页的三种方式一篇包会

    前言   Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用 ...

随机推荐

  1. UVALive 6263 The Dragon and the knights --统计,直线分平面

    题意:给n条直线,将一个平面分成很多个部分,再给m个骑士的坐标,在一个部分内只要有一个骑士即可保护该部分,问给出的m个骑士是不是保护了所有部分. 解法:计算每个骑士与每条直线的位置关系(上面还是下面) ...

  2. POJ 2142 The Balance【扩展欧几里德】

    题意:有两种类型的砝码,每种的砝码质量a和b给你,现在要求称出质量为c的物品,要求a的数量x和b的数量y最小,以及x+y的值最小. 用扩展欧几里德求ax+by=c,求出ax+by=1的一组通解,求出当 ...

  3. [3D跑酷] GUIManager UI管理

    UI元素更新及界面跳转 继上篇日志<Unity开发之 GUIClickEventReceiver>,再谈一下我们如何管理游戏中的UI元素更新及界面跳转 UI绑定 图一:Inspector面 ...

  4. JMeter学习(十四)JMeter监控Tomcat性能

    使用jmeter的tomcat监视器功能,可以通过向tomcat的status页面发送get请求,得到资源使用信息,然后转换为只直观的图像方式,这样的话,就可以监视到服务器的资源使用情况,不过需要注意 ...

  5. css3实现立方体的旋转功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. HTML5和css3的总结二

    继续接着昨天的整理 [倒影]:用的不是很多 -webkit-box-reflect:below 20px -webkit-linear-gradient(rgba(0,0,0,0,),rgba(0,0 ...

  7. (转载)java多态(2)-------Java转型(向上或向下转型)

    5.13.1 向上转型 我们在现实中常常这样说:这个人会唱歌.在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就是说我们更倾向于使用抽象概念“人”.再例如,麻雀是鸟类的一种(鸟类的子类), ...

  8. 【转】【Asp.Net】asp.net服务器控件创建

    VS新建一个Web服务控件工程,会默认生成以下代码: namespace WebControlLibrary { [DefaultProperty("Text")] [Toolbo ...

  9. CLR Profiler

    检查c#代码内存泄露工具-CLR Profiler 大家都知道.net有一套自己的内存(垃圾)回收机制,除非有一些数据(方法)长期占有内存不随着垃圾回收功能而释放内存,这样就造成了我们经常说的内存泄露 ...

  10. Unity 协程Coroutine综合测试

    using UnityEngine; using System.Collections; using System.Text; public class rotCube : MonoBehaviour ...