Java教程

javaWeb项目>__<《和我一起做项目》(超级详细——上集)

本文主要是介绍javaWeb项目>__<《和我一起做项目》(超级详细——上集),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

0 概述

	做一个jiavaweb 的练手项目,做完可以把javaweb的知识点在项目中应用,还能锻炼功能实现的逻辑思路,下面看一下效果图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

	项目分上下两集,上集主要是完成学生管理这边的功能,后面的下集主要完成定义权限的功能

1 准备工作

材料准备

链接:https://pan.baidu.com/s/1il4X8OlVtkB1mzaAH4Fz_Q
提取码:kpt7

 这边呢,我把完成项目所有需要(前端)+(后端)代码以及数据库都放在网盘里面,放在github里面可能网络不好什么的比较麻烦
 下图 前端里面有 html 和 jsp ,我们javaweb里面用jsp
 	 lib是一些要用到的依赖包,mysql依赖要根据自己的版本来,
 	 连接池用德鲁伊,数据库的SQL文件都备好了

在这里插入图片描述

技能栈和工具栈

1.数据库
2.JDBC
3.html
4.servlet
5.JSP+EL+JSTL
6.AJAX
7.多表操作

需要的工具
1.idea
2.Navicat
3.Tomcat
4.mysql

数据库数据准备

你可以直接运行我给的SQL文件在Navicat里面运行,然后添加自己额外想添加的数据
这边分析一下,登录身份一张表,学生两张表

在这里插入图片描述

在这里插入图片描述

idea创建项目后类准备

src 建立5个包
web 把上面材料准备里面的jsp 文件夹里面的东西放在web里面
	把lib里面的放在WEB_INF 里面比较好

在这里插入图片描述

这边得根据数据流来编写类,一层一层下去

在这里插入图片描述

类里面的内容具体看源代码备份hjg01,注意里面 int --> Ingiter 会比较好

在这里插入图片描述

lib 包依赖导入

在这里插入图片描述

Tomcat 设置

在这里插入图片描述

2 登录退出功能(代码hjg01)

【登录】

先修改login.jsp

添加 <form>和“/login”

在这里插入图片描述

修改里面的两个input 用于接收前端页面输入的 用户名和密码

在这里插入图片描述

接着添加 两个web层类 LoginSerlet 登入Logout退出

在这里插入图片描述

LoginSerlet 通过@WebServlet(urlPatterns = "/login")链接 login.jsp

在这里插入图片描述

LoginSerlet 重写 service ,承接3个任务

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //1.  接收参数
    //2.  调取servlet 业务层
    //3.  跳转页面
}

接收前端两个参数

//1.     接收参数
String username = req.getParameter("username");
String password = req.getParameter("password");

业务层中转

//2.  调取servlet 业务层
UsersService usersService = new UsersServiceImpl();
Users users = usersService.login(username, password);

这边就需要 一层一层下去编写 web service dao

先是抽象类 添加 login 方法

在这里插入图片描述

实现类实现方法-- 尴尬的是service业务层要从dao 层拿数据,

在这里插入图片描述

所以还得添加dao 抽象类,dao 实现类实现方法,从而编写德鲁伊链接数据库

在这里插入图片描述

这边注意DBUtils 的resultSet 用protected修饰

在这里插入图片描述

回来web层编写跳转页面

数据库查无此人则以弹窗提醒

在这里插入图片描述

用户验证成功的话,设置一个u1进行全局访问

在这里插入图片描述

结果给前端

在这里插入图片描述

在这里插入图片描述

启动Tomcat运行项目

输入数据库没有用户测试,弹窗提醒
在这里插入图片描述

在这里插入图片描述

登录成功进入下一次页面,保存数据并前端展示
在这里插入图片描述

在这里如果我们点击退出按钮是没有反应会报错的,下来我们做退出功能

【退出】

和登录类似,我们先修改前端

在这里插入图片描述

编写 web层的logout类

这里我们采用的前端是有框架的,箭头所指的top直接退出到最外层

在这里插入图片描述

3 学员列表展示(代码hjg02)

<1> 修改 list.jsp

在这里插入图片描述

<2> 添加web类 GetStudentServlet

在这里插入图片描述

<3> service层 和 dao层 添加对应的提取学生信息的方法

在这里插入图片描述

在这里插入图片描述

<4> 编写servlet层代码

在这里插入图片描述

<5>修改前端展示代码用于展示

注意::性别 男女得从 0 1 转化为 字符 

在这里插入图片描述

<6> 运行查看结果

在这里插入图片描述

4 模糊查询实现(代码hjg03)

<1>修改list.jsp 页面,接收数据,展示已经保存的数据

在这里插入图片描述

<2>方法添加参数

在这里插入图片描述

在这里插入图片描述

<3>对应的修改 service层 和 dao层 添加对应的提取学生信息的方法

在这里插入图片描述

在这里插入图片描述

<4>运行出结果(都是女)

在这里插入图片描述

思考

模糊查除了上面的模糊还可以设置成 3个条件,2 个条件,1 个条件,主要也是调整SQL语句,这边可以自己扩展

5 设置分页功能(代码hjg04)

<1>显示最后编写好的的list.jsp,里面添加的东西后面会一个一个用到

在这里插入图片描述

<2> 添加参数

在这里插入图片描述

<3>对应的修改 service层 和 dao层 添加对应的提取学生信息的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<4> 存储分页数据,添加上一页下一页

在这里插入图片描述

这边注意解决页数越界的限定条件方法,下一步需要用到总页数,所以我们还得编写取出总页数的代码

在这里插入图片描述

<5> 获得总页数

在这里插入图片描述

<6> 对应的修改 service层 和 dao层 添加对应的提取学生信息的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

不要忘记存储值给前端

在这里插入图片描述

也不要忘记在分页按钮里面添加模糊查参数

在这里插入图片描述

<7>运行结果

在这里插入图片描述
在这里插入图片描述

6 新增学生(代码hjg05)

<1>修改 list 添加类和方法

在这里插入图片描述
在这里插入图片描述

<2>对应的修改 service层 和 dao层 添加对应的查询年级列表的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<3>修改add.jsp 展示数据

这时候如果在数据库里面更改年级数据,浏览器里面刷新后可以马上看到结果

在这里插入图片描述

<4>修改add.jsp

在这里插入图片描述

一个个修改对应的属性命,这里只是一部分

在这里插入图片描述

<5>添加对应 add 的 servlet 类

在这里插入图片描述

<6>对应的 service层 和 dao层 添加对应的insertStu调取的方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

<7>运行结果

在这里插入图片描述

7 主键查询(代码hjg06)

在要进行修改更新和删除数据之前我们的先完成从数据库那特定某个人的数据的主键查询功能

在这里插入图片描述

<1> 修改 list

在这里插入图片描述

<2>添加 FindByIdServlet 类

在这里插入图片描述

<3> 对应的 service层 和 dao层 添加对应的《主键查询》的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<4> 编写 servlet 协调 edit.jsp

edit.jsp 里面先调节每个属性的储存值,接收来自后端的数据并展示,这边只是部分

在这里插入图片描述

下来的注意班级的获取

在这里插入图片描述

<5>效果展示

在这里插入图片描述

8 修改更新数据代码(hjg07)

<1>修改前端edit

在这里插入图片描述

<2> 创建类 编写代码

在这里插入图片描述

<3> 对应的 service层 和 dao层 添加对应的《修改学生》的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<4>运行看结果(点击修改)

在这里插入图片描述

9 删除学生数据(假删除)(hjg08)

<1>枚举值保存学生状态(在读,休学。。。)

前面在添加操作这边不知道你有没有发现这个枚举操作,这个在删除中也要用到

在这里插入图片描述
在这里插入图片描述

删除

<2>修改list

在这里插入图片描述

<3> 对应的 service层 和 dao层 添加对应的《删除学生》的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<4>查询的时候转态state进行限定

在这里插入图片描述

<5> 运行查看

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

10 使用filter处理乱码 (hjg09)

在新增 和 修改 里面 容易出现乱码,我们每次都得添加         req.setCharacterEncoding("utf-8");  

有点儿麻烦,我们可以使用过滤器,新建包 新建类 修改配置文件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

11 多请求走同一个servlet

后端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

前端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

记得运行看看

12 分页工具类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13 还可以完善的地方

<1>新增-学号不能重复(用AJAX 解决)

<2>学生管理在没有登录的时候也可以进入(得加一下限制)前面没加是为了快速跑功能

<3>出bug 要有耐心

这篇关于javaWeb项目>__<《和我一起做项目》(超级详细——上集)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!