目录

一、基本目录结构

1、创建webapp的maven项目

2、配置web.xml项目

3、创建目录结构:

4、添加数据库配置文件

二、数据库模块配置:

1、连接数据库

2、 写入每个表对应的实体类

3、编写数据库操作的基类

三、添加编码过滤器


一、基本目录结构

1、创建webapp的maven项目

配置pom.xml的一些常用web依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.wxl</groupId><artifactId>smbms</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency><dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.apache.taglibs</groupId><artifactId>taglibs-standard-impl</artifactId><version>1.2.5</version></dependency></properties>
</project>

2、配置web.xml项目

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0" metadata-complete="true"><!--字符编码过滤器--><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>com.wxl.filter.CharacterEncodingFilter</filter-class></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

3、创建目录结构:

4、添加数据库配置文件

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8
username=root
password=root

二、数据库模块配置:

1、连接数据库

2、 写入每个表对应的实体类

3、编写数据库操作的基类

package com.wxl.dao;import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;//操作数据库的公共类
public class BaseDao {private static String driver;private static String url;private static String username;private static String password;//静态代码块,类加载的时候就初始化了static {Properties properties = new Properties();//通过类加载器读取对应的资源InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("db.properties");try {properties.load(is);} catch (IOException e) {e.printStackTrace();}driver = properties.getProperty("driver");url = properties.getProperty("url");username = properties.getProperty("username");password = properties.getProperty("password");}//获取数据库的链接public static Connection getConnection() {Connection connection = null;try {Class.forName(driver);connection = DriverManager.getConnection(url, username, password);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();}return connection;}//编写查询公共类public static ResultSet execute(Connection connection, String sql, Object[] params, ResultSet resultSet, PreparedStatement preparedStatement) throws SQLException {//预编译的sql,在后面直接执行就可以了preparedStatement = connection.prepareStatement(sql);for (int i = 0; i < params.length; i++) {//setObject,占位符从1开始,但是我们的数组是从0开始!preparedStatement.setObject(i + 1, params[i]);}resultSet = preparedStatement.executeQuery();return resultSet;}//编写增删改公共方法public static int execute(Connection connection, String sql, Object[] params, PreparedStatement preparedStatement) throws SQLException {preparedStatement = connection.prepareStatement(sql);for (int i = 0; i < params.length; i++) {//setObject,占位符从1开始,但是我们的数组是从0开始!preparedStatement.setObject(i + 1, params[i]);}int updateRows = preparedStatement.executeUpdate();return updateRows;}//释放资源public static boolean closeResource(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet) {boolean flag = true;if (resultSet != null) {try {resultSet.close();resultSet = null;} catch (SQLException throwables) {throwables.printStackTrace();flag = false;}}if (preparedStatement != null) {try {preparedStatement.close();preparedStatement = null;} catch (SQLException throwables) {throwables.printStackTrace();flag = false;}}if (connection != null) {try {connection.close();connection = null;} catch (SQLException throwables) {throwables.printStackTrace();flag = false;}}return flag;}
}

三、添加编码过滤器

package com.wxl.filter;import javax.servlet.*;
import java.io.IOException;public class CharacterEncodingFilter implements Filter{public void init(FilterConfig filterConfig) throws ServletException {}public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {servletRequest.setCharacterEncoding("utf-8");servletResponse.setCharacterEncoding("utf-8");filterChain.doFilter(servletRequest,servletResponse);}public void destroy() {}
}

这里注意导包路径!

前面已经在web.xml里进行了注册。

一个干净,具有基础功能的框架制作完成。

JavaWeb 自制基础开发框架准备环境搭建相关推荐

  1. 最详细的JavaWeb开发基础之java环境搭建(Windows版)

    首先欢迎大家来学习JavaWeb,在这里会给你比较详细的教程,从最基本的开始,循序渐进的深入.会让初学者的你少踩很多坑(大实话),如果你已经掌握了JavaWeb开发的基础部分,请耐心等待后续的进阶阶段 ...

  2. 深度学习图像识别:基础知识与环境搭建

    深度学习图像识别:基础知识与环境搭建 1. 深度学习的基本原理 什么是人工智能? 通过学习掌握了某中技能的机器,我们认为它具备了人工智能 什么是深度学习? 深度学习的概念源于人工神经网络的研究: 含多 ...

  3. C语言零基础入门——1.基础知识与环境搭建。

    C语言零基础入门--1.基础知识与环境搭建. 好了.终于迎来了第一篇文章,这篇文章要做的事情非常简单,主要有三个事情 ​ 第一:C语言的介绍. ​ 第二:计算机的基础知识. ​ 第三:C语言的环境安装 ...

  4. JavaEE笔记(基础):1.1环境搭建与必要软件下载(IDE/JavaWeb)

    1.1环境搭建与必要软件下载(IDE/JavaWeb) # Java环境配置 最新版本JDK下载: http://www.oracle.com/technetwork/java/javase/down ...

  5. Maven基础:Maven环境搭建及基本使用(1)

    1. Maven环境搭建 1.1 Maven简介 1.2 Maven下载及环境设置 Maven下载地址:http://maven.apache.org/download.cgi 当前下载版本:apac ...

  6. android游戏开发框架libgdx环境搭建

    原文链接: android游戏开发框架libgdx的使用(一)--环境搭建 Libgdx是一款支持2D与3D游戏开发的游戏类库,兼容大多数微机平台(标准JavaSE实现,能运行在Mac.Linux.W ...

  7. Python数据分析高薪实战第一天 python基础与项目环境搭建

    开篇词 数据赋能未来,Python 势不可挡 你好,我是千帆. 互联网公司从红利下的爆发期,进入新的精细化发展阶段,亟须深入分析与挖掘业务与数据价值,从而找到新的增长点突破现有增长瓶颈.各行各业的数据 ...

  8. 【Java基础】Java环境搭建

    文章目录 一.前期准备 1. 基础知识 2. 软件 二.安装 1. JDK安装 2. 配置环境变量 三.总结 一.前期准备 1. 基础知识 JVM:Java Virtual Machine,也就是Ja ...

  9. 大数据基础(hadoop环境搭建及使用)

    大数据 大数据概念 大数据特点(4V) Volume(大量) Velocity(高速) Variety(多样) Value(低价值密度) Hadoop Hadoop是什么 Hadoop 三大发行版本 ...

  10. 分布式基础篇1——环境搭建(谷粒商城)

    一.项目简介 1.电商模式 2.项目前置知识 3.项目技术&特色 4.项目架构图 5.微服务划分图 二.分布式基础概念 1.微服务 2.集群&分布式&节点 3.远程调用 4.负 ...

最新文章

  1. java面向对象程序设计第三版耿祥义pdf_java基础知识干货——封装
  2. vue实现进入页面表单聚焦
  3. 特别浅的渐变蓝色在html里,javascript – 渐变色淡淡的3种颜色
  4. 【更新】北京、广东、吉林重名数量查询工具,给孩子起名重名查询
  5. 最完整的时间序列分析和预测(含实例及代码)
  6. java swing 怎么_JAVA SWING 怎么用?帮帮忙.
  7. HTTP协议(3)浏览器的使用之查看源码
  8. IntelliJ IDEA for Mac如何管理SDK/JDK,模块如何设置SDK/JDK?
  9. python对列表的删除,挺有意思的东西
  10. php csv linux,PHP处理CSV表格,用fgetcsv和fputcsv在数组和CSV间互转
  11. 浅析SQL SERVER执行计划中的各类怪相
  12. VS2010 Express中文版ISO下载地址
  13. gif怎么转换html,gif转视频的教程:怎么把gif转换成mp4、avi、wmv
  14. 国内商务工作邮箱对比哪个好?常用邮箱开通哪个最好?
  15. 雨听 | 英语学习笔记(十五)~作文范文:私家车主应该为环境污染纳税吗?
  16. 马铃薯凝集素(STL,PL)
  17. 李嘉璇:技术人如何深入人工智能
  18. 打包docker镜像推送到远程服务器并部署到k8s
  19. Plantuml类图用法
  20. python ---- 图像小波变换DWT

热门文章

  1. 名字生成器 - 再也不用担心给孩子起名了
  2. Java实现智能对话机器人自动聊天+语音秒回
  3. 逆向工程的使用(逆向工程的压缩包下载分享)
  4. 内网通修改积分文件_【页游逆向】4399小游戏积分系统分析及修改积分
  5. SGX技术与SGX攻击
  6. 汤家凤:历年真题怎么用?接力题典怎么配合?黄金十月拼命干,提高很多分数不是梦!...
  7. onvif 模拟摄像头_ONVIF协议测试工具(ONVIF Device Test Tool)
  8. Unity获得汉字拼音或首字母
  9. Silverlight 2.5D RPG游戏技巧与特效处理:(二)纸娃娃系统
  10. 计算机网络第七版谢希仁课后答案第四章(部分答案)