无框架,简单maven webapp骨架跑一个项目 (快速回忆基本使用及其流程用)
文章目录
- 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骨架跑一个项目 (快速回忆基本使用及其流程用)相关推荐
- 曾几何时的一个项目,回忆,编程真的需要学习
现在,很多项目,都是几个人一起完成的,我呢,也没有独立完成过一个项目,呵呵. 对于项目,我一般都是做一些简单的工作,虽然这个工作很平凡,但是,我会学习. 如果自己不进步,不厉害的话,怎么给人家完成项目 ...
- Eric6最简单的应用(创建一个项目-窗体-编译-运行)
1.创建项目 2.创建一个窗体 自动弹出Qt designer 工具,可视化窗体界面: 创建一个关闭按钮,关闭这个窗体: 保存后,选择ui文件,进行编译ui文件: 然后执行该脚本,即可: 以上是eri ...
- Mybatis框架简单使用
Mybatis框架简单使用 环境搭建 新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等. ...
- 《maven实战》笔记(2)----一个简单maven项目的搭建,测试和打包
参照<maven实战>在本地创建对应的基本项目helloworld,在本地完成后项目结构如下: 可以看到maven项目的骨架: src/main/java(javaz主代码) src/te ...
- [一个无框架的javaweb demo]番荒之冢 --番剧灯塔站
文章目录 番荒之冢 --番剧灯塔站 理念 大致设计 权限分配 番剧信息 用户/管理员信息 邮箱正则匹配 URL正则匹配 留言信息 数据库设计 user animation comment favora ...
- Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发
Spring JDBC * Spring框架对JDBC的简单封装.提供了一个JDBCTemplate对象简化JDBC的开发 * 步骤: 1. 导入jar包 ...
- 【零基础】MT4量化入门一:跑一个简单的boll
一.前言 今天开始研究MT4了,MT4是大大有名的外汇交易和量化软件,使用一种叫做MQL的语言来开发量化程序(跟C比较像).因为是外国人做的,用的也大部分是外国人,使用起来不是很顺手,跟极星各有优劣吧 ...
- batocera中文整合包_分享一个整合 SSM 框架的高并发和商品秒杀项目
点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 ...
- idea springmvc_SSM三大框架使用Maven快速搭建整合(SpringMVC+Spring+Mybatis)
本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...
最新文章
- 清华 词向量库_word2vec 构建中文词向量
- 湖南大学新生赛C,G,J题解
- Redis面试 - redis 的雪崩和穿透?
- 一个程序如何连接到外网_如何从头开始开发一个微信小程序
- 网络管理与维护作业2
- windows下php不支持mysql
- fabric安装及试用
- 安川mpe720编程手册_南宁安川机器人学校
- Java开发 明华usbkey_明华驱动官方版下载-明华usbkey数字证书驱动下载v3.0.2420.9 最新版-当易网...
- 关于瑞萨RH850中断的异常处理函数地址Exception Handler Address的理解
- python 会议室预约系统解决方案_智能会议预约系统解决方案
- Linux C recv函数阻塞问题
- 安卓ps模拟器_用电脑玩安卓游戏!逍遥模拟器免安装版PC软件
- 3GPP 5G 常用协议规范下载整理
- 批量Word转换成PDF,用这方法超简单
- 梯度下降算法的细节补充(凸函数, 导数, 偏导数,梯度, 方向导数以及负梯度下降最快背后的泰勒身影)
- Xutils上传图片(2)
- Android:InflateException: Binary XML file line #12: Error inflating class null
- 关于程序员成长的一点思考
- iOS10、11自定义左滑菜单项背景图片
热门文章
- Oracle数据表导入导出_数据迁移用
- 基于C#的socket聊天室(附源码)
- 计算机软件选修课选什么好,大学选修课有哪些 选什么好
- 读书笔记 - 《首先,打破一切常规》
- 详细:JAVA从入门到精通视频教程,后台学习历程
- 【C#学习】单个问号的作用
- 促进大数据发展,加强智慧城市建设-思迈特软件
- 持续集成与持续部署(六)02-CircleCI——CircleCI配置Node.js应用之.circleciconfig.yml配置文件 deploy.sh文件内容
- MTK6592平台 touchpanel驱动设备加载(三)
- Android 仿 iphone 自定义滚动选择器