文章目录

  • 设计需求
  • 设计思路
  • 代码部分
  • 目录结构
  • 页面截图

设计需求

完成添加客户信息的操作

设计思路

  1. 在页面点击保存,数据提交到服务器
  2. 创建CustomerServlet,在CustomerServlet的doPost()方法里面
    1) 获得请求参数(封装成一个对象)
    2)调用业务,进行保存
    3)响应
  3. 创建CustomerService,创建一个方法
  4. 创建CustomerDao,使用DBUtils操作数据库(保存)

代码部分

pom.xml

<?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>com.byc</groupId><artifactId>customer</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>customer Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/junit/junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java--><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba/druid --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.23</version></dependency><!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils --><dependency><groupId>commons-dbutils</groupId><artifactId>commons-dbutils</artifactId><version>1.6</version></dependency><!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils --><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version></dependency><!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/javax.servlet/jstl --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--加入lombok依赖--><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version><scope>provided</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><configuration><!-- 指定端⼝ --><port>8080</port><!-- 请求路径 --><path>/</path></configuration></plugin>
</plugins></build>
</project>

创建数据库

CREATE TABLE `cst_customer` (
`cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
`cust_name` varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
`cust_source` varchar(32) DEFAULT NULL COMMENT '客户信息来源',
`cust_industry` varchar(32) DEFAULT NULL COMMENT '客户所属⾏业',
`cust_level` varchar(32) DEFAULT NULL COMMENT '客户级别',
`cust_phone` varchar(64) DEFAULT NULL COMMENT '固定电话',
`cust_mobile` varchar(16) DEFAULT NULL COMMENT '移动电话',
PRIMARY KEY (`cust_id`)
)


在IDEA中安装Lombok插件

Customer.java

package com.byc.pojo;import lombok.Data;@Data
public class Customer  {private Long cust_id;private String cust_name;private String cust_source;private String cust_industry;private String cust_level;private String cust_phone;private String cust_mobile;
}

index.jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="/register"method="post">客户名称:<input type="text" name="cust_name"/><br/>客户来源:<input type="text" name="cust_source"/><br/>客户行业:<input type="text" name="cust_industry"/><br/>客户级别:<input type="text" name="cust_level"/><br/>客户手机:<input type="text" name="cust_phone"/><br/>客户电话:<input type="text" name="cust_mobile"/><br/><input type="submit" value="保存"/><br/>
</form>
</body>
</html>

resourses

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
username=root
password=root

用户注册

package com.byc;import com.byc.pojo.Customer;
import com.byc.service.CustomerService;
import org.apache.commons.beanutils.BeanUtils;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Map;@WebServlet("/register")
public class RegisterCustomerServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.处理中文request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//2.获取浏览器发来的数据Map<String, String[]> map = request.getParameterMap();//3.封装数据到客户Bean中Customer customer = new Customer();try {BeanUtils.populate(customer,map);}catch (Exception e){e.printStackTrace();}//4.调用service层方法,保存客户CustomerService service = new CustomerService();try {service.save(customer);} catch (SQLException e) {e.printStackTrace();}//5.响应结果返回给页面response.getWriter().print("保存成功!!!");}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}

DruidUtils.java

package com.byc.util;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;/*** 阿⾥巴巴的连接池 Druid ⼯具类*/
public class DruidUtils {/*1. 加载 druid.properties 配置⽂件2. 创建 Druid 连接池对象3. 提供 获得 连接池对象的⽅法4. 提供 从连接池中 获取连接对象Connection的 ⽅法*/public static DataSource ds = null;static {try {//1. 加载 druid.properties 配置⽂件InputStream is =DruidUtils.class.getClassLoader().getResourceAsStream("db.properties");Properties prop = new Properties();prop.load(is);
//2. 创建 Druid 连接池对象ds = DruidDataSourceFactory.createDataSource(prop);} catch (Exception e) {e.printStackTrace();}}/*3. 提供 获得 连接池对象的⽅法*/public static DataSource getDataSource() {return ds;}/*4. 提供 从连接池中 获取连接对象Connection的 ⽅法*/public static Connection getConnetion() throws SQLException {Connection conn = ds.getConnection();return conn;}
}

CustomerService.java

package com.byc.service;import com.byc.dao.CustomerDao;
import com.byc.pojo.Customer;import java.sql.SQLException;public class CustomerService {/*** 保存客户* @param c*/public void save(Customer c) throws SQLException {//调用dao层的方法,保存客户CustomerDao customerDao = new CustomerDao();customerDao.save(c);}
}

CustomerDao.java

package com.byc.dao;import com.byc.pojo.Customer;
import com.byc.util.DruidUtils;
import org.apache.commons.dbutils.QueryRunner;import java.sql.SQLException;public class CustomerDao {private QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());/*** 保存客户* @param c*/public void save(Customer c) throws SQLException {String sql = "insert into cst_customer values(?,?,?,?,?,?,?)";Object[] params = {c.getCust_id(), c.getCust_name(),c.getCust_source(),c.getCust_industry(),c.getCust_level(), c.getCust_phone(), c.getCust_mobile()};queryRunner.update(sql,params);}
}

目录结构

页面截图




常见错误解决办法

使用Maven搭建一个Web项目相关推荐

  1. idea用maven搭建的web项目没有src目录只有pom解决方案(最暴力,最简单版本)

    用maven搭建的web项目出现的bug解决方法 解决方法: 建议先去看第二种解决方法 一.创建maven 项目 上一步完成以后就可以一直下一步了,中间可以设置一下 maven项目存储位置和名称,本次 ...

  2. idea maven创建java项目_新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目(图文教程)...

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  3. 新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  4. maven创建一个web项目(springmvc项目)

    创建一个简单的web项目!

  5. IntelliJ IDEA搭建一个web项目含配置tomcat

    首先创建一个普通的maven项目,然后配置tomcat服务器 配置完之后点击启动按钮就可以了!!服务器就启动了,浏览器会跳出这样的一个页面,因为此时服务器指定路径下下并没有资源,所以显示404未找到! ...

  6. 阿里云搭建一个web项目(网站)介绍(Apache+php+MySQL)

    1.从阿里云购买一个ecs服务器 进入阿里云官方平台https://home.console.aliyun.com,选择左侧导航云服务器ECS 选择导航中的实例: 点击右上角的创建实例按钮: 购买界面 ...

  7. SSM整合(搭建一个Web脚手架)

    文章目录 引入Maven依赖 Mybatis配置 Spring SpringMVC 集成三个配置文件 配置WEB Controller例子 SSM基础在这里了 MyBatis笔记(从零到一) Spri ...

  8. 用Maven创建第一个web项目Struts2项目

    一.创建一个web项目 参考前面文章,项目名:maven-struts-demo. 二.配置pom.xml文件添加struts2依赖 <project xmlns="http://ma ...

  9. Maven-EclipseEE使用Maven构建Java web项目从0到1

    Maven是什么 安装Maven 解压apache-maven-350-binzip 新建变量M2_HOME配置Maven主目录 在 Path 变量中添加 Maven的bin目录 命令窗口mvn -v ...

最新文章

  1. 2013——M笔试南京——程序
  2. [当人工智能遇上安全] 6.基于机器学习的入侵检测和攻击识别——以KDD CUP99数据集为例
  3. 【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页
  4. 微信小程序数据拼接_微信小程序使用原生WebSokcet实现断线重连及数据拼接
  5. Bi-LSTM+CRF模型实现命名实体识别
  6. 转:LoadRunner检查点使用小结
  7. 计算机公式大小写,Excel表格金额大小写转换公式设置
  8. 数学分析教程(科大)——1.9笔记+习题
  9. UI常见面试题-整体素养篇
  10. 个人官网第8次升级(新功能、用户体验、修复bug、系统优化)
  11. 文创礼品受追捧 华丽跨界火出圈
  12. matlab2014b与carsim8.02联合仿真可能遇到的问题
  13. 【Wordpress主题】Sakuraio主题的使用与优化
  14. 2021-10-11
  15. PHP之ctype扩展
  16. PyTorch常用的张量创建、变形及运算总结(速查表)
  17. 【图像识别】基于计算机视觉实现红绿灯识别含Matlab代码
  18. 小西的快乐乘法表(想不到怎么做到同时输入两个数,并同时输出两张乘法表,求助)
  19. 2.3 中国剩余定理
  20. 一文搞懂Nginx限流(简单实现)

热门文章

  1. vue中mixins的理解
  2. js中的事件循环和宏任务和微任务的理解
  3. sharepoint页面嵌入_在SharePoint 2010页面中嵌入SWF文件
  4. 录制视频显示的视频角度和拍摄角度保持一致
  5. 编写程序判断一个 vector<int> 容器所包含的元素是否9.20: 与一个 list<int> 容器的完全相同。
  6. 计算机课讲什么学生爱学,学生党“最喜欢”的4门课程,尤其是最后1门,学渣:我们的最爱...
  7. .net html转为pdf,.NET使用DinkToPdf将HTML转成PDF的示例代码
  8. MKNetWorkKit使用方法
  9. 腾讯,你妈喊你抄完作业回家吃饭
  10. MySQL远程工具链接报错—1130