• JavaWeb 项目开发中的技术总结


     前言:

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

    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的删除方法,删除成功跳转删除(批量删除?)
  • 相关阅读:
    JetBrains——账户登录错误(JetBrains Account Error:JetBrains Account connection error: www.jetbrains.com)解决方案
    pip list出错原因
    MyBatis 动态SQL
    MyBatis Mapper文件简述
    MyBatis XML配置
    MyBatis 简单笔记
    nginx配置文件参考
    CentOS 8 下 nginx 服务器安装及配置笔记
    CentOS8 下 Redis5.0.7 哨兵Sentinel 模式配置指南
    shell script简单笔记
  • 原文地址:https://www.cnblogs.com/panie2015/p/5574550.html
Copyright © 2020-2023  润新知