一、Servlet
JSP运行原理
Servlet的使用
建立类
建类时最好以XxxServlet结尾类名,继承HTTPServlet,重写doGet和doPost两个方法(包名一定不能大写)
配置Servlet
在web.xml中进行配置,配置在服务器的部分,网址需要加/,在浏览器/客户端的部分则不需要
访问测试
无报错且控制台输出信息,连接成功
传递参数
访问
servlet
点击跳转之后即可在控制台拿到前端输入的信息
获得内置对象
使用jsp内置对象即可在页面上输出信息
二、过滤器
过滤器是一个特殊的Servlet,用于过滤请求,在Spirng MVC对应的是拦截器
案例--字符编码过滤
建类,实现Filter接口,重写doFilter方法
在web.xml中进行配置
小结
在进行同一操作时,就可以选择使用过滤器来完成
三、MVC
概念
MVC是经典的分层开发架构
常见的Struts,SpringMVC,SpringBoot等都是使用的MVC架构
其实学习Servlet就是为了实现最基本的MVC架构
M
Model,模型
公共类,工具类,实体类等,就是模型
比如:MyBatis类,dao类,po类
V
View,视图
用于收集用户数据,和向用户展示数据的技术
比如:html,js,vue,app客户端,jsp
C
Controller,控制器
得到用户数据,处理数据,进行调度,跳转等,处理业务逻辑
比如:Servlet,Controller,Action
原则
让所有的童虎请求,都经过C(Controller)层(不经过就无法控制)
四、MVC架构表单CRUD
Create,生成,添加
Read,读取,查询
Update,更新,修改
Delete,删除
因为是一个小demo的形式,主要实现功能方面,在其他方面可能会有一点不规范。
数据表
实体类
在po包下新建Course类,先将表的字段设计成对应的实体类。
在导入时,一张表对应一个类,表中的一行数据对应一个对象
自动生成get、set方法
DAO
DataBase Access Object,数据库访问对象
具体方法内容的编写跟前两篇文章内容相同,或者也可见源码
Servlet
页面
先运行一下
接下来我们进行方法的编写
添加课程
courseAdd.jsp
在CourseServlet.java中添加add方法的处理
再随便添加几条数据以供测试
修改课程
添加修改方法
在CourseServlet.java中添加toupd方法跳转至courseUpd.jsp页面
courseUpd.jsp
编写upd方法,这里有一点要注意的是,跳转的页面value的值是已经根据要修改id的课程得到了,才可以修改
运行
删除课程
在删除信息之前要有一个提示信息,防止用户误触,这里选择使用js的方式
编写del方法,同时重新提交展示方法
搜索课程
在CourseDao.java中添加关键字查询方法,这里要注意数据库的语句和预执行数据库语句时传参的方法
在jsp页面中添加搜索方法
在CourseServlet.jsp中添加search方法
运行
分页查询
任何一个app/网站都离不开分页,牵扯到服务器客户端的运行效率问题
分页原理
有4个要素:
页码,第几页,pageNum【自定义,已知】
页大小,每页显示几行数据,pageSize【自定义,已知】
总行数,totalRows,【计算求出,select count(*)】
总页数,totalPage【计算求出】
totalRows/pageSize+(totalRows%pageSize==0?0:1)
某页的行数范围
(pageNum-1)*pageSize~(pageNum)*pageSize
在CourseDao.java中添加分页查询的方法
先得到所有数据的行数
再编写将数据库的内容进行分页查询的方法
编写页面的角标部分,这里有个逻辑就是,当页号为第一页的时候,上一页的角标应该是无响应的,当页号为最后一页的时候下一页的角标应该是无响应的,因为数据有点少,还想做出来分页的效果,所以就用5行为一页进行分页
同时在跳转时传入页面号1
运行
写在最后:
今天最后一部分用
MVC架构的思想来处理单表的CRUD,基本已经囊括了在项目中可能用到的所有的方法,除了前端不美观之外,一个程序所拥有的,这个小项目也基本都拥有了。这篇博客从开始到结束也花了好久的时间,也为以后我自己回看留下一点痕迹。
网盘链接:链接: pan.baidu.com/s/1a7f7GOCf… 提取码: