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、详细设计
- 数据库操作方法的封装
使用数据源来获取连接和释放连接
将基本的CRUD方法封装,以供子类继承或者调用 - 实体类,实体的数据库操作
- 实现业务逻辑的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); - 新添加
新添加的信息有哪些需要验证错误,比如name是否被占用,电话号的格式,email的格式之类,若验证通过,则将表单封装为一个实体对象,然后操作save数据库,成功则重定向到 success.jsp 页面,失败则提示错误信息,并保留在当前页面 - 修改
获取请求参数id,根据id 得到实体对象,重定向到 修改页面
验证参数通过后,将传过来的表单参数作为一个信息对象,调用操作数据库的修改方法,成功则跳转到查询页面
判断一个值唯一,可以用old 和 new 两个参数作为对比,如果新旧不相同,则在数据库中其是否存在 - 删除
获取id的值,执行提示是否删除,调用Dao的删除方法,删除成功跳转删除(批量删除?)
JavaWeb 项目开发中的技术总结的更多相关文章
- JavaWeb项目开发中eclipse缓存问题
学习Java快2年了 有时候改完代码启动tomcat测试时,新代码不生效,这可能就是缓存问题. 所以平时就用以下几个方法解决,如果还是解决不了,就找老师吧! 1.清理项目 2.移除项目,清理tomca ...
- MyBatis 项目开发中是基于 XML 还是注解?
只要你对 MyBatis 有所认识和了解,想必知道 MyBatis 有两种 SQL 语句映射模式,一种是基于注解,一种是基于XML. 基于 XML <mapper namespace=" ...
- 团队项目开发中,常见的版本控制有svn,git
团队项目开发中,常见的版本控制有svn,git
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
项目开发中的一些注意事项以及技巧总结 1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...
- Angular 项目开发中父子组件传参
在项目开发中经常会遇到 组件之间传参的问题.今天总结下在使用angular的项目中父子组件传参的问题: 1.父组件向子组件传参: 然后在父组件中 然后在父组件的html中 然后就可以在子组件中使用了 ...
- 《Maven在Java项目开发中的应用》论文笔记(十七)
标题:Maven在Java项目开发中的应用 一.基本信息 时间:2019 来源:山西农业大学 关键词:Maven:Java Web:仓库:开发人员:极限编程; 二.研究内容 1.Maven 基本原理概 ...
- 炼金术(1): 识别项目开发中的ProtoType、Demo、MVP
软件开发是很分裂的,只有不断使用原则和规律,才能带来质量. 只要不是玩具性质的项目,项目应该可以大概划分为0-1,1-10,10-100,100-1000四个种重要阶段.其中,0-1是原型验证性的:1 ...
- 项目开发中的git简单使用
原文地址: https://www.zhuyilong.fun/tech/the-blog-git.html 示例远程仓库地址: https://github.com/zhu-longge/gitWo ...
- Java项目开发中实现分页的三种方式一篇包会
前言 Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用 ...
随机推荐
- Head First HTML5 Programming 读书笔记
1:HTML5引入了简单化的标记,新的语义和媒体元素,另外要依赖于一组支持web应用的js库. 2:关于js 对象是属性的结合 window对象是全局变量. document对象是window的一个属 ...
- python中thread模块中join函数
http://www.cnblogs.com/vingi/articles/2657790.html for i in range(10): t = ThreadTest(i) thread_arr. ...
- [转] Linux下防火墙iptables用法规则详及其防火墙配置
from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...
- Android的Style的使用
Style个人理解就是view的一些属性的集合,那么一系列view(例如TextVIew),只要是要该style那么就都有相同的内容,如 文字的大少,颜色等,方便修改 首先最基本的使用,多个textV ...
- Eclipse调试按钮消失问题
Window-->Reset Perspective 把Eclipse重置一下,然后 点击红色框圈的向下的箭头,在弹出的菜单里边,点击 show debug toolbar 这个菜单项目,然后奇 ...
- U3D5.3.5f Monodevelop 仅支持到.NET 3.5
2016年12月2号:发现这个标题是错误的,可以在monodevelop中选择.NET的版本,如下:打开solution,右击 Assembly-CSharp,options, build, gene ...
- php基础19:文件
<?php //1.打开文件的更好的方法是通过 fopen() 函数.此函数为您提供比 readfile() 函数更多的选项. //fopen() 的第一个参数包含被打开的文件名,第二个参数规定 ...
- Linux常用指令---定时任务
linux定时任务crontab命令选项基本只有对用户操作选项:-u 指定用户-l 列出某用户任务计划-r 删除某用户任务-e 编辑某用户任务 查看某一用户的定时任务crontab -u root - ...
- 系分过了,mark一下,就从这里开始吧
算是重新归回吧,发现写博客还是这里人气比较旺,开源中国不行,动弹人气还可以,不过都没啥节操, 这么多年没来了,发现竟然还排名1150,不容易,继续加油.有种回娘家的赶脚
- java并发:线程同步机制之Lock
一.初识Lock Lock是一个接口,提供了无条件的.可轮询的.定时的.可中断的锁获取操作,所有加锁和解锁的方法都是显式的,其包路径是:java.util.concurrent.locks.Lock, ...