文章目录

  • 0、先建数据库
  • 一、建立IDEA基本环境
    • 1.1 新建module
    • 1.2 选择maven->webapp骨架
    • 1.3 改名称和包名
    • 1.4 第一次要修改maven仓库配置
    • 1.5 finish,项目建立完毕
  • 二、新建包结构
    • 2.1 main目录下右键新建java包和resource包
  • 三、两个核心文件
    • 3.1、 web.xml 修改如下
    • 3.2、resource下新建 druid.properties
  • 四、pom文件下各种依赖,仓库里,没有就写一个刷一下
    • 4.1 编译版本1.7修改为1.8
    • 4.2 各种依赖
  • 五、先写前端,看能否执行
    • 5.1 index.jsp
    • 5.2 form.jsp 引入jstl
    • 5.3 最终跳转页面
  • 六、部署项目,第一次测试运行
    • 6.1 选jdk、tomcat,端口等
    • 6.2 选择部署哪个项目
  • 七、庞大的后端代码
    • 7.0 Customer.java
    • 7.1 JdbcUtils.java
    • 7.2 CustomerDao.java
    • 7.3 CustomerDaoImpl.java
    • 7.4 CustomerService.java
    • 7.5 CustomerServiceImpl.java
    • 7.6 SaveCustomerServlet.java
  • 八、 最终运行,添加数据到数据库

0、先建数据库

mysql -uroot -proot
create database testdb1;
use testdb1create 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: hanzhuanDate: 2021/12/31Time: 1:25To 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());@Overridepublic 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();@Overridepublic 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();@Overrideprotected 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");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}

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



查询添加结果

完美回忆完毕

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

  1. 曾几何时的一个项目,回忆,编程真的需要学习

    现在,很多项目,都是几个人一起完成的,我呢,也没有独立完成过一个项目,呵呵. 对于项目,我一般都是做一些简单的工作,虽然这个工作很平凡,但是,我会学习. 如果自己不进步,不厉害的话,怎么给人家完成项目 ...

  2. Eric6最简单的应用(创建一个项目-窗体-编译-运行)

    1.创建项目 2.创建一个窗体 自动弹出Qt designer 工具,可视化窗体界面: 创建一个关闭按钮,关闭这个窗体: 保存后,选择ui文件,进行编译ui文件: 然后执行该脚本,即可: 以上是eri ...

  3. Mybatis框架简单使用

    Mybatis框架简单使用 环境搭建 新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等. ...

  4. 《maven实战》笔记(2)----一个简单maven项目的搭建,测试和打包

    参照<maven实战>在本地创建对应的基本项目helloworld,在本地完成后项目结构如下: 可以看到maven项目的骨架: src/main/java(javaz主代码) src/te ...

  5. [一个无框架的javaweb demo]番荒之冢 --番剧灯塔站

    文章目录 番荒之冢 --番剧灯塔站 理念 大致设计 权限分配 番剧信息 用户/管理员信息 邮箱正则匹配 URL正则匹配 留言信息 数据库设计 user animation comment favora ...

  6. Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发

    Spring JDBC     * Spring框架对JDBC的简单封装.提供了一个JDBCTemplate对象简化JDBC的开发     * 步骤:         1. 导入jar包        ...

  7. 【零基础】MT4量化入门一:跑一个简单的boll

    一.前言 今天开始研究MT4了,MT4是大大有名的外汇交易和量化软件,使用一种叫做MQL的语言来开发量化程序(跟C比较像).因为是外国人做的,用的也大部分是外国人,使用起来不是很顺手,跟极星各有优劣吧 ...

  8. batocera中文整合包_分享一个整合 SSM 框架的高并发和商品秒杀项目

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 ...

  9. idea springmvc_SSM三大框架使用Maven快速搭建整合(SpringMVC+Spring+Mybatis)

    本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...

最新文章

  1. 清华 词向量库_word2vec 构建中文词向量
  2. 湖南大学新生赛C,G,J题解
  3. Redis面试 - redis 的雪崩和穿透?
  4. 一个程序如何连接到外网_如何从头开始开发一个微信小程序
  5. 网络管理与维护作业2
  6. windows下php不支持mysql
  7. fabric安装及试用
  8. 安川mpe720编程手册_南宁安川机器人学校
  9. Java开发 明华usbkey_明华驱动官方版下载-明华usbkey数字证书驱动下载v3.0.2420.9 最新版-当易网...
  10. 关于瑞萨RH850中断的异常处理函数地址Exception Handler Address的理解
  11. python 会议室预约系统解决方案_智能会议预约系统解决方案
  12. Linux C recv函数阻塞问题
  13. 安卓ps模拟器_用电脑玩安卓游戏!逍遥模拟器免安装版PC软件
  14. 3GPP 5G 常用协议规范下载整理
  15. 批量Word转换成PDF,用这方法超简单
  16. 梯度下降算法的细节补充(凸函数, 导数, 偏导数,梯度, 方向导数以及负梯度下降最快背后的泰勒身影)
  17. Xutils上传图片(2)
  18. Android:InflateException: Binary XML file line #12: Error inflating class null
  19. 关于程序员成长的一点思考
  20. iOS10、11自定义左滑菜单项背景图片

热门文章

  1. Oracle数据表导入导出_数据迁移用
  2. 基于C#的socket聊天室(附源码)
  3. 计算机软件选修课选什么好,大学选修课有哪些 选什么好
  4. 读书笔记 - 《首先,打破一切常规》
  5. 详细:JAVA从入门到精通视频教程,后台学习历程
  6. 【C#学习】单个问号的作用
  7. 促进大数据发展,加强智慧城市建设-思迈特软件
  8. 持续集成与持续部署(六)02-CircleCI——CircleCI配置Node.js应用之.circleciconfig.yml配置文件 deploy.sh文件内容
  9. MTK6592平台 touchpanel驱动设备加载(三)
  10. Android 仿 iphone 自定义滚动选择器