步骤目录

  • 一.数据库
    • 1.建库
    • 2.建表,添加约束,插入数据,导出
  • 二.创建项目
    • 1.导jar包(三个)
    • 2建包:
      • 1.创建util包,写DBHelper
      • 2.创建model包,数据类
  • 三.功能
    • 一.登录
    • 二.注册
    • 三.列表
    • 四.新增
    • 五.修改
    • 六.删除
    • 七.详情(修改的前半段)

一.数据库

1.建库

CREATE DATABASE 库名ON PRIMARY(NAME = '库名_data',FILENAME = 'D:\DATA\库名_data.mdf',SIZE = 5MB,MAXSIZE = 10MB,FILEGROWTH = 15%)LOG ON(NAME = '库名_log',FILENAME = 'D:\DATA\库名_log.ldf',SIZE = 5MB,MAXSIZE = 10MB,FILEGROWTH = 15%)

2.建表,添加约束,插入数据,导出

 这些根据所要创建的表自行添加这个可以通过点点点的操作完成,也可以通过sql语句完成

二.创建项目

1.导jar包(三个)

2建包:

1.创建util包,写DBHelper

         1.加载驱动程序static{Class.forName("?");}2.连接数据库public static Connection getConn(){Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=MyDB","sa","1");return conn;}3.关闭资源public static void close(Connection conn , PreparedStatement ps , ResultSet rs){conn.close();ps.close();rs.close();}4.更新(增删改)操作public static boolean update(String sql, Object [] objs){// 连接数据库Connection conn = getConn();// 与数据库进行交互PreparedStatement ps;// 设置数据for(int i = 0,i < objs.length , i++){ps.setObjecct(i+1,objs[i]);}// 结果int count = ps.execu;// 判断返回if(count > 0){return true;} else {return false;}// 关闭资源close(conn,ps,null);}

2.创建model包,数据类

         1.根据数据库的列名添加私有属性eg: private Integer id;2.生成公有方法(无参构造方法,含参构造方法,get和set方法)可以通过Source下的1.Generate Getters and Setters2.Generate Constructor using Fields3.Generate Constructors from Superclass3.创建dao层,操作接口/实现类(impl) == > 为了方便可以直接把操作方法写在dao层及各个操作类的查询方法1.用户登录查询方法2.获取列表数据(所有数据)方法 --> 这个方法用在获取列表数据上3.通过id获取数据(单行数据)方法 -->这个方法用在详情和修改上4.创建action包,写servlet用的

三.功能

一.登录

     1.写一个login.jsp页面一个form表单, action = "login"的servlet类中添加一个错误接受提示,当登录失败返回到登录页面显示错误2.登录的servlet(LoginServlet)1.设置编码 2.接收参数(用户名和密码)3.查询(通过用户名和密码去使用登录查询方法查询是否有这个数据)有:return 数据无:return null4.判断响应if(数据 != null){// 登录成功1.创建session会话,并将登录的用户数据设置到session会话当中去2.重定向到获取列表信息的servlet中} else {// 登录失败1.设置返回注释2.通过转发返回到登录页面}

二.注册

     1.写一个reg.jsp页面一个form表单, action = "reg"的servlet类中 onSubmit= "return check()"-->这里通过js来进行非空验证添加一个错误接受提示,当注册失败返回到注册页面显示错误非空验证:1.通过 var c = document.getElementById("对应的id名").value; 来获取数据2.验证 if(c == "" || c == undefined){// 数据为空,出来一个提示弹框,并返回false终止注册alert("数据不为空");return false;} else {// 数据不为空,返回true,进入注册的Servlet中进行注册操作return true;}2.注册的servlet(RegServlet)1.设置编码 2.接收参数(注册的各个数据)3.DBHelper中更新方法(需要一个SQL语句,一个Object类型的数组用来储存注册数据)String sql = "";Object [] objs = {接收参数的个个变量};有:return true; ==> 更新成功无:return false; ==> 更新失败4.接收返回参数boolean isOk = DBHelper.update(sql , objs);4.判断响应if(isOk){// 注册成功2.重定向到login.jsp页面进行登录} else {// 注册失败1.设置返回注释2.通过转发返回到注册页面}

三.列表

     1.获取列表信息的servlet(GetListServlet)    1.设置编码2.调用无参查询列表信息的方法并使用ArrayList<?> 接收 ?为你model包下定义的类名ArrayList<?> lists = ?Dao.select();3.通过转发将信息转发到列表的jsp中2.列表的jsp(list.jsp)1.写一个table表格2.通过<c:forEach itam="${注意:这里要一一对应}" var="自定义一个下面获取值的名称"></c:forEach>

四.新增

     1.新增的.jsp(add.jsp)跟注册类似,只是form表单的内容有所改变这里也可以添加非空验证2.新增的servlet(AddServlet)1.设置编码2.接收参数3.插入操作跟注册类似;4.响应// 添加成功跳转到获取数据列表的servlet中,获取完数据,进入到列表页面// 添加失败返回到添加的.jsp页面

五.修改

     1.通过id获取数据详情的servlet(getListToIdServlet)1.设置编码2.接收参数3.通过id获取数据详情的查询操作4.响应1.获取成功使用转发将数据发送到修改的jsp页面(update.jsp)2.获取失败返回列表2.修改的jsp页面(update.jsp)1.form表单 action="update"2.内容通过value="${}"获取3.修改的Servlet(UpdateServlet)1.设置编码2.接收参数3.String sql = "UPDATE <表名> SET 列名 = ?, WHERE id = ?";4.更新操作5.响应1.更新成功重定向到获取列表信息的servlet中2.更新失败返回到修改的.jsp页面

六.删除

     1.删除的servlet(DeleteServlet)1.设置编码2.获取id3.String sql = "DELETE FROM <表名> WHERE id = ?";4.更新操作5.重定向到获取列表信息的servlet中

七.详情(修改的前半段)

     1.通过id获取数据详情的servlet(getListToIdServlet)1.设置编码2.接收参数3.通过id获取数据详情的查询操作4.响应1.获取成功使用转发将数据发送到详情的jsp页面(info.jsp)2.获取失败返回列表2.详情的jsp页面(info.jsp)1.table表格 2.内容通过${}获取3.加一个超链接返回到获取数据列表的servlet中<a href="GetListServlet">返回列表</a>

做一个简易jsp项目的详细开发流程及步骤相关推荐

  1. 使用JSP做一个小小的新闻项目(END)

    使用JSP做一个小小的新闻项目(END) 用户主页: show.jsp:用户的一个浏览界面 管理员主页: index.jsp:管理员主页(完全版,没多大变化,完善了一些机制) 新闻阅读: read.j ...

  2. 使用vue-cli+element-ui+expsess+mysql做一个简易的登录功能

    使用vue-cli+element-ui+expsess+mysql做一个简易的登录功能 1使用webpack下载vue模板 vue init webpack aaa(aaa为项目名称) cd到aaa ...

  3. 一个项目的简单开发流程——需求、数据库、编码

    关于一个项目的简单开发流程 前言:从11月8号开始到11月12号我们小组使用html+easyUI+ashx+异步,开发了一个简易的网 站,也就是简单的门户网站,下面我就将我们这几天开发中遇到的一些问 ...

  4. python 知乎接口_Python日记——用Django做一个简易的知乎日报API

    为什么我要选择django做生成api的框架 因为其内置的orm简单易用 生成restful的api要配合rest_framework使用 文档地址:https://darkcooking.gitbo ...

  5. python发音机器人_只需三步,菜鸟也能用Python做一个简易版Siri

    原标题:只需三步,菜鸟也能用Python做一个简易版Siri 当下,各个手机厂商都陆续的推出了属于自己的智能手机机器人,像是苹果的Siri,小米的小爱,还有等等.这些智能机器人不仅仅方便了我们对于手机 ...

  6. 安卓初体验一:做一个简易计分器

    安卓初体验一:做一个简易计分器 1.成品图 2.准备:确定开发环境.明确应用功能 2.1开发环境 2.2应用功能 3.界面制作 3.1选择布局 3.2代码编写 4.功能编写 4.1提示信息功能编写 4 ...

  7. 艾伟也谈项目管理,如何做一个合格的项目经理

    项目经理这个角色说大不大,说小也不小.在大公司,项目经理这样的角色可能存在不计其数,他们很多都是寄托于项目的存在而生,项目的完成而终:但对于一些小作坊的软件公司,项目经理一职很多时候是一个长期持有的过 ...

  8. 教你做一个优秀的项目经理

    教你做一个优秀的项目经理 如何做个好的项目经理?项目经理应该做什么?不应该做什么?这个问题涉及的范围很广,我只能就以前的一些项目经验谈谈个人的体会.难免有以偏盖全的地方,还请大家多提意见. 1.项目经 ...

  9. 使用Trinamic TMC2300步进驱动器做一个迪斯科灯项目

    从RoadTest发布,Trinamic TMC2300-loT-REF步进驱动器+电机看起来很优秀,使其成为机电远程控制应用的理想选择.出于对评估它的功能和建立一个迪斯科灯项目的兴趣,我申请了这个实 ...

  10. 做一个聪明的项目参与者--制订WBS清单

    前段时间,团队开始实施一个新项目.这个项目有着中国IT行业的三个共同特点:需求繁.工期紧.资源缺. 虽然从目前情况来看,它还有希望不会沦为"死亡项目",但如果实施过程中不小心翼翼. ...

最新文章

  1. uboot源码分析笔记
  2. linux shell mkdosfs 命令用于建立 dos 文件系统
  3. logback修改日志内容_巧用maven profile动态修改logback日志目录
  4. 机房为什么要设计冷热通道,设计原则及如何施工?
  5. SpringBoot事件与监听机制
  6. 中序遍历的模板(以及变形更新中。。。)
  7. 不会跳回到微博认定申请书
  8. Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果
  9. 求数组中数对的最大值
  10. 自定义notebook扩展插件_Anaconda3中的Jupyter notebook添加扩展插件
  11. C++导入导出动态库
  12. php报错致命错误203,Centos7 下安装PHP7 phpredis扩展报错解决办法 致命错误:ext/standard/php_smart_str.h...
  13. linux大数据命令操作
  14. 一楼土木人序列号查询_iPhone序列号是什么 序列号怎么查看【步骤】
  15. 1694 件 AI 事件大盘点,哪些事让你记忆深刻?
  16. [转载]Jquery mobile 新手问题总汇
  17. [转载] 语言程序设计第4版黄洪艺_计算机二级教程 Python语言程序设计 第8章python计算生态...
  18. 在Vue 项目 webpack 打包中关于 背景图片的路径问题
  19. moonlight不显示鼠标指针
  20. is this mysql server_mysql出现is not allowed to connect to this mysql server异常的解决办法

热门文章

  1. WPF视频教程系列笔记
  2. c语言ftell函数,C语言中ftell函数的使用方法
  3. 程序员如何接私活?十年码农悄悄告诉你
  4. Mendix App推送服务之实践分享
  5. 怎样通过微PE工具箱制作启动盘?
  6. Proteus 8.4软件安装教程
  7. json数组转换成java对象_json中包含json数组怎么转换成java对象
  8. Fiddler 手机抓包详解
  9. HTK中函数ProcessCrossWordLinks处理流程
  10. Unity 边缘发光HighlightingSystem的使用