运用Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat技术。实现用户信息的增删改查操作。
熟悉JavaWeb的相关技术在开发中的编写过程。
编写的基本过程:
需求:用户信息的增删改查操作
设计: 1. 技术选型:Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtils+tomcat 2. 数据库设计: create database 数据库名; – 创建数据库 use 数据库名; – 使用数据库 create table 表名( – 创建表 id int primary key auto_increment,–id,主键,自增长 name varchar(20) not null,–姓名,字符,非空 gender varchar(5),–性别,字符 age int,–年龄,整型 address varchar(32),–籍贯(地址),字符 qq varchar(20),–QQ号,字符 email varchar(50)–邮箱,字符 );
开发: 1. 环境搭建: 1. 1. 创建数据库环境。 1. 2. 创建项目,导入需要的jar包 2. 编码
测试
部署运维
2.导入相关jar
需要注意: 在项目下的web文件下需要创建WEB-INF目录,在添加lib目录,所有的jar包都应该放在该目录下。否则在使用相关jar包功能时会出现“500”(服务器端错误)的错误。
2.1相关jar包
3.在项目的src目录下创建包
3.1注意包命名(域名倒置规则)。例:com.公司名.项目名
例: 4.包创建好之后,根据数据库表创建对应的entity/domain(实体类对象),并实现属性的get和set方法。
5.编写对应页面的.jsp文件
.html和.jsp页面转化:直接将.html整个复制到.jsp中(注意:.jsp中只留第一行 <%@ page contentType=“text/html;charset=UTF-8” language=“java” %>)。
注意:在.jsp文件中需要动态获取虚拟路径(作用:方便之后的代码修改和维护)。 例如该项目中:
<a //利用EL表达式动态获取虚拟路径 //${pageContext.request.contextPath} href="${pageContext.request.contextPath}/findUserByPageServlet" style="text-decoration:none;font-size:33px">查询所有用户信息 </a> 6.根据上面需要跳转到的servlet,在(域名倒置.web包)下创建对应的servlet。7.根据三层架构分析servlet(界面层)需要调用到service(业务逻辑层)来实现。
实现:1.需要创建对应的IxxxService接口和xxxserviceImpl实现类。 2.分析需要Service层实现的具体功能(分析返回值类型)。例如我们完成查询到所有数据(返回List<User>),就在IxxxService接口里面声明public List<User> findAll();,在xxxserviceImpl中实现它的功能。(面向接口编程)。
8.根据三层架构分析service(业务逻辑层)的具体功能实现需要调用到数据库的数据,即需要调用dao(数据访问层)来实现。
8.1使用Druid(德鲁伊)数据库连接池. 8.1.1导入配置文件(druid.properties) 8.1.2将JDBCUtils.java导入到util包中。
/** * JDBC工具类 使用Durid连接池 */ public class JDBCUtils { private static DataSource ds ; static { try { //1.加载配置文件 Properties pro = new Properties(); //使用ClassLoader加载配置文件,获取字节输入流 InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"); pro.load(is); //2.初始化连接池对象 ds = DruidDataSourceFactory.createDataSource(pro); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } /** * 获取连接池对象 */ public static DataSource getDataSource(){ return ds; } /** * 获取连接Connection对象 */ public static Connection getConnection() throws SQLException { return ds.getConnection(); } }8.1.3在对应的dao层实现类中去获取数据库链接对象 例: 8.2操作数据库(获取数据库中的值并返回给service(业务逻辑层)) 9.在list.jsp界面上显示出servlet(显示层)获取到的数据,通过request转发到jsp界面上。 10.list.jsp界面获取并显示值(用EL表达式和JSTL标签)
11.最终完成结果:
注:页面用到BootStrap的布局。
web项目实现查询过程:
充分利用到三层架构来实现查询----->显示的过程。图解如下:
