无框架,简单maven webapp骨架跑一个项目 (快速回忆基本使用及其流程用)

0、先建数据库

mysql -uroot -proot
create database testdb1;
use testdb1

create table cst_customer(
	cust_id int primary key auto_increment,
	cust_name varchar(20),
	cust_source varchar(20),
	cust_industry varchar(20),
	cust_level varchar(20),
	cust_phone varchar(20),
	cust_mobile varchar(20)
);

desc cst_customer;
select * from cst_customer;

在这里插入图片描述

一、建立IDEA基本环境

1.1 新建module

在这里插入图片描述

1.2 选择maven->webapp骨架

在这里插入图片描述

1.3 改名称和包名

在这里插入图片描述

1.4 第一次要修改maven仓库配置

在这里插入图片描述

1.5 finish,项目建立完毕

在这里插入图片描述

二、新建包结构

2.1 main目录下右键新建java包和resource包

在这里插入图片描述
就这两个,直接建立
在这里插入图片描述
再在java里新建 cn.ahpu 等各种package
在这里插入图片描述
在这里插入图片描述

三、两个核心文件

3.1、 web.xml 修改如下

在这里插入图片描述
web.xml:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<!--<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>-->

<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/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
</web-app>

3.2、resource下新建 druid.properties

druid.properties 注意修改密码和数据库名

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/testdb1
username=root
password=root
initialSize=5
maxActive=10
maxWait=3000
maxIdle=6
minIdle=3

四、pom文件下各种依赖,仓库里,没有就写一个刷一下

4.1 编译版本1.7修改为1.8

在这里插入图片描述
修改为:
在这里插入图片描述

4.2 各种依赖

 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.26</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.9</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp.jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      <version>1.9.3</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>4.2.4.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.14.8</version>
    </dependency>

lombok失效需要设置里打一个对勾
在这里插入图片描述

五、先写前端,看能否执行

在这里插入图片描述

5.1 index.jsp

<html>
<body>
<h2>Hello World!</h2>
<% System.out.printf("index.jsp执行了 \n"+request.getContextPath()+"/form.jsp");
    response.sendRedirect(request.getContextPath()+"/form.jsp");
%>
</body>
</html>

5.2 form.jsp 引入jstl

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
     hello "${pageContext.request.contextPath}/SaveCustomer" 此行测试用
    <form action="${pageContext.request.contextPath}/SaveCustomer" method="post">
        客户名称:<input type="text" name="custName"/><br/>
        客户来源:<input type="text" name="custSource"/><br/>
        客户级别:<input type="text" name="custLevel"/><br/>
        客户行业:<input type="text" name="custIndustry"/><br/>
        客户地址:<input type="text" name="custAddress"/><br/>
        客户电话:<input type="text" name="custPhone"/><br/>
        <input type="submit" value="保存"/><br/>
    </form>
</body>
</html>

5.3 最终跳转页面

success.jsp

<%--
  Created by IntelliJ IDEA.
  User: hanzhuan
  Date: 2021/12/31
  Time: 1:25
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>save success!!!</h1>
</body>
</html>

六、部署项目,第一次测试运行

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

6.1 选jdk、tomcat,端口等

在这里插入图片描述

6.2 选择部署哪个项目

在这里插入图片描述
选短的那个
在这里插入图片描述

在这里插入图片描述

运行成功
在这里插入图片描述

七、庞大的后端代码

在这里插入图片描述

7.0 Customer.java

package cn.ahpu.domain;

import lombok.Data;

@Data
public class Customer {
    private Long custId;
    private String custName;
    private String custSource;
    private String custLevel;
    private String custIndustry;
    private String custAddress;
    private String custPhone;
}

7.1 JdbcUtils.java

package cn.ahpu.utils;


import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JdbcUtils {
    private static DataSource ds;

    static {
        InputStream is = JdbcUtils.class.getResourceAsStream("/druid.properties");
        Properties pp = new Properties();
        try {
            pp.load(is);
            ds = DruidDataSourceFactory.createDataSource(pp);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static DataSource getDataSource() {
        return ds;
    }
    // 5.定义关闭资源的方法
    public static void close(Connection conn, Statement stmt, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {}
        }

        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {}
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {}
        }
    }

    // 6.重载关闭方法
    public static void close(Connection conn, Statement stmt) {
        close(conn, stmt, null);
    }


}

7.2 CustomerDao.java

package cn.ahpu.dao;

import cn.ahpu.domain.Customer;

public interface CustomerDao {
    void save(Customer customer);
}

7.3 CustomerDaoImpl.java

package cn.ahpu.dao.impl;

import cn.ahpu.dao.CustomerDao;
import cn.ahpu.domain.Customer;
import cn.ahpu.utils.JdbcUtils;
import org.springframework.jdbc.core.JdbcTemplate;

public class CustomerDaoImpl implements CustomerDao {

    JdbcTemplate jdbcTemplate=new JdbcTemplate(JdbcUtils.getDataSource());

    @Override
    public void save(Customer customer) {
        String sql = "insert into cst_customer(cust_name,cust_source,cust_industry,cust_level,cust_phone)  " +
                "values(?,?,?,?,?)";
        jdbcTemplate.update(
                sql,
                customer.getCustName(),
                customer.getCustSource(),
                customer.getCustIndustry(),
                customer.getCustLevel(),
                customer.getCustPhone());
    }
}

7.4 CustomerService.java

package cn.ahpu.service;

import cn.ahpu.domain.Customer;

public interface CustomerService {
    public void save(Customer customer);
}

7.5 CustomerServiceImpl.java

package cn.ahpu.service.impl;

import cn.ahpu.dao.CustomerDao;
import cn.ahpu.dao.impl.CustomerDaoImpl;
import cn.ahpu.domain.Customer;
import cn.ahpu.service.CustomerService;

public class CustomerServiceImpl implements CustomerService {

    private CustomerDao customerDao = new CustomerDaoImpl();

    @Override
    public void save(Customer customer) {
        customerDao.save(customer);
    }
}

7.6 SaveCustomerServlet.java

package cn.ahpu.web;

import cn.ahpu.domain.Customer;
import cn.ahpu.service.CustomerService;
import cn.ahpu.service.impl.CustomerServiceImpl;

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;

@WebServlet("/SaveCustomer")
public class SaveCustomerServlet extends HttpServlet {
    private CustomerService customerService=new CustomerServiceImpl();

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println(" hello 执行了! hello!");

        //接收参数
        req.setCharacterEncoding("utf-8");
        String custName = req.getParameter("custName");
        String custSource = req.getParameter("custSource");
        String custLevel = req.getParameter("custLevel");
        String custIndustry = req.getParameter("custIndustry");
        String custPhone = req.getParameter("custPhone");

        //封装数据
        Customer customer = new Customer();
        customer.setCustName(custName);
        customer.setCustIndustry(custIndustry);
        customer.setCustPhone(custPhone);
        customer.setCustLevel(custLevel);
        customer.setCustSource(custSource);

        //调用业务
        customerService.save(customer);

        //重定向
        resp.sendRedirect(req.getContextPath()+"/success.jsp");

    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

八、 最终运行,添加数据到数据库

在这里插入图片描述
在这里插入图片描述
查询添加结果
在这里插入图片描述

完美回忆完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值