欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

使用Maven搭建一个Web项目

发布时间:2023/12/15 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用Maven搭建一个Web项目 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

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

设计需求

完成添加客户信息的操作

设计思路

  • 在页面点击保存,数据提交到服务器
  • 创建CustomerServlet,在CustomerServlet的doPost()方法里面
    1) 获得请求参数(封装成一个对象)
    2)调用业务,进行保存
    3)响应
  • 创建CustomerService,创建一个方法
  • 创建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项目的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。