准备工作
一. 导入自己的项目
二. 配置MVC需要的项目、配置文件…
1.把webapp的 login.xml()文件改成jsp的
1.1.怎么改?
先复制以前的HTML文件里的内容,在新建jsp文件,再把除了jsp文件的第一行(设置编码的)剩下的全部替换掉
2.新建一个文件夹user
3.在user文件夹下建Service(模型层)项目和Servlet(控制层)项目
这里是文件夹名加模型层和控制层
三.配置XML文件(配置文件)
1.步骤:webapp–WEB-INF–>web.xml
(1).设置login.jsp为首页
(2).设置为首页的标签
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
四.正式开始:
1.一个会议室管理系统的用户管理模块(user),也对应着user文件2.
2.1
user(UserService(模型类)、UserServlet(控制器))
2.2
前端也有个user文件里面分别是list(列表页)、add(添加页)、edit(修改页)
2.3
这五个文件就组成了一套CRUD操作的页面环境(控制,模型,页面)
一.从web.xml文件开始进行CRUD
第一步去配置web.xml文件
图中角标1.类全路径*(有波浪线不要怕,先放着,等Servlet继承了HttpServlet并且覆盖servlce方法后自然就好了)
图中角标2.给Servlet起名字
图中角标3.也是起名字
图中角标4.对于这个控制器如何请求的url
第二步
2.1 去UserServlt继承HttpServlet
2.2 覆盖service方法(ctrl+o)
2.3 设置参数一个是请求参数(request),一个是响应参数(response)
2.4 简单的测试(打印测试)1.先把要测试页面(index.jsp)的前端页面变成jsp的
1.1好处:跳转页面可以写绝对路径了,比相对路径来的更好
2.怎么看是不是绝对路径?
2.1.看路径前面有没有/如果有那么就是绝对路径
1.1绝对路径是从项目的根路径开始找
1.2.相对路径:相对他所在的那个页面3.把静态页面的内容变成动态的,在删除静态的(上面有讲怎么删)
4.去index去找框架页(图1)改menu.htm为menu.jsp
5.去menu.jsp里找查询功能并把herf(图2)改成绝对路径(图3)
5.1绝对路径(<%=request.getContextPath()%>)/…开始请求相应的控制器
6.六合一的写法
控制器里面必须传入一个固定的参数,参数是method如果是查询那么=query,这一样就可以共用一个控制器了
图1.
图2.图3.第三步
1.重新启动项目
2.点击查询角色信息(因为增删改的最后都是查,所以先看查)
3.看控制台,之前打印的看看现在在控制台里显没显示出来
3.1 点击角色查询,控制台里打印出上图想打印的文字 我们的第一步,控制器如何配置就算完成了
第四步:怎么在Select里写控制器的代码
一.环境
- 在入口处需要让他走多个分支 接传过来的method(在menu里)
- 走多个分支用if语句
- 是query生成的方法体
- 内部转向到list页(通转)
{
list页面里的内容是usermanage里的,在删脚本,
}
5.可以显示出页面了
6.删脚本(script标签),自己写
7.把假数据(页面上的)存在数据库中
二.接调存转
1.接:
2.调(调模型):
2.1.在控制器的声明模型的实例
2.2调用自己实现的一个方法(暂时还没有)
2.2.1. 是个查询方法,所以叫query,因为查的是user里的数据,所以后面加上user
就变成了queryUsers(因为查多条数据,所以多了个s)
2.2.2,自己写类型,因为我们想要创建方法的时候自动带着这个类型
2.2.3 . 会在模型层生成一个方法,等存完去实现这个方法
3.存(存作用域):
把lsit存在request作用域里4.转:(在上边的第四步的4.)
5.try catch
其他的抛出,这个try catch
5.设置绝对路径
6.${list}
三.测试
运行tomcat,看空白区域是否出值
四.把值迭代输出在表格里
1.找到列表页(list页)的table
2.表头
3.留下第二个<tr,其他删掉(迭代不需要那么多)
4.用JSTL
4.1.找到JSTL jar包(分别使jstl.jar,standard.jar,xalan.jar)放在lib下
5.在页面引入标签库
6.找到需要迭代的tr ,开始进行输出
<c:forEach items="测试的list">
标签库的引入
1.加入jar包
2.在页面引入标签库
3.在页面引用
6.1输出完成
6.2测试页面表格的数据是不是数据库里的,迭没代迭代出来
能查出来但是不是中文
7.改中文
7.1数据准备有问题所以去改查询(sql)
7.2 去模型层去改sql语句(在myslq里试完了粘贴到控制层的sql语句,变成变量)
7.3 去list页去把数字改成名称的
以前是sex_id 改成sex_name
7.4测试是否是中文男女
增删改查
增
步骤
1.进入添加页
2.添加保存
3.并且在控制器里,这两家件事是两个方法,分两件事去控制
开始:
1.打开添加页面
2.查看请求是不是走的控制器(这个是走的不是控制页,走的静态页)
3.找到menu.jsp 增加用户信息
4.把添加页的href属性改成绝对路径(用绝对路径让他请求的是控制器,也是跳转添加页)
5.在method做一个打印输出(servlet页)
进到控制器的下一步
1.增加分支并生成方法
红色分支,蓝色的是需要生成的方法
2.方法里的接 调 存 转
转
2.1先完成转向(添加方法转向到add.list)
2.2在add.list的body标签里随便添加内容测试
2.3把usermanage里的adduserinfor.html变成jsp的
方法:把adduserinfor.html里面的内容复制下来并粘贴到user/add.jsp
2.4整理 变成jsp的adduserinfor.html页面
方法:
(1.)先把没用的删了(跟查询的一样)
(2.)把样式用到路径改成绝对路径<%=request.getContexPath()%>
(3.)删脚本带script标签的
(4).空格大的话删除空格标签(查询里有)
调
2.5 看添加页面需不需要准备数据,需要准备?怎么准备
1.因为添加数据页面有下拉列表,得用动态的方法去处理,动态的数据哪来?得调dao去数据库去取
方法
(1).在控制器里调用Service
(2).并且生成方法到Service页面
(3).在新生成的方法里(在模型层) 写Sql语句,查数据库里的值并返回
(4).遇到异常就抛出去
存
1.存作用域
2.测试
去user_add页的body田间${list_sex}
2.6改造添加页的性别的下拉列表
性别
1.把标签库引入当前页面
2.用JSTL标签来遍历值
部门(和性别类似)
1.去控制器调用模型,在模型里生成方法
2.生成的方法,有异常抛出
3.存作用域
4.JSTL
角色:
1.改标签的格式,这样多出来的单选才能好看的出来
2.调,存,和上面一样,就名字不同
3.留一行foreach
重点内容
内容准备好了,点击提交,但是不能提交空值,那么怎么样才能不让提交空值呢?
星号=必填号
校验:
写标签,直接转的话是默认,不能校验,如果没校验不能执行
1.先把提交按钮改为普通按钮(button)
2.实现普通按钮的提交事件
2.1 οnclick="add()"方法
2.2 实现add()方法
2.3Script里怎么写
2.3.1根据id找到form表单
2.3.2
几种校验方法:
1.账号的非空校验
//1.抓取账号的文本框
//2.判断内容==null
//3.空的提示
//4.非空直接走
1.1设置账号文本框的id,
1.2根据id来抓取
1.3写语句判断是否为空,是空提示
2.长度校验
1.去密码设置id
2.
3.格式校验
3.1去email设置id
3.2