Java-Web项目的创建和一些说明

开发工具: IntelliJ IDEA 2021.1.1

开发环境:JDK 1.8

技术选型:servlet+jsp+mysql

帮助开发过程的技术:jstl JSP标签库 maven jar包管理 lombok简化代码

数据库创建

CREATE DATABASE shop CHARACTER SET utf8mb4;

CREATE TABLE client_TB(
clientId INT,clientName VARCHAR(20),birthday DATE,sex VARCHAR(2),
PRIMARY KEY (clientId) ,
CHECK (sex IN('男','女')));

CREATE TABLE product(
productId INT ,productName VARCHAR(20),price FLOAT,stock INT ,
PRIMARY KEY(productId)
);

CREATE TABLE order_TB(
orderId INT ,clientId INT,orderDate DATE,papyment FLOAT, stats VARCHAR(5),
PRIMARY KEY (orderId)
);

CREATE TABLE orderProduct(
orderId INT , productId INT,quantity INT,
PRIMARY KEY (orderId,productId)
);

物理外键:

是指在数据上使用FOREIGN KE 来约束数据

逻辑外键:

在Service层使用逻辑来到到外键的约束效果

本次项目使用的逻辑外键:因为物理外键在实际工作中分布式数据库或者分库分表时候十分不方便,会很麻烦,所以使用逻辑外键,易于维护数据库中的数据

1:创建Maven项目 File→ New Project → 选择Maven项目 →勾选javawebapp骨架

在这里插入图片描述

2:导入向pom.xml文件导入这次项目需要的技术的坐标

<dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>



    </dependencies>

3: 使用IDEA自带的Tomcat进行测试刚刚创建的项目

TIPS:在每一次的开发过程,时刻记得进行回头测试一下

IDEA右上角Add Configuration→弹窗左上角+→选择Tomcat Service→Local

在这里插入图片描述

在这里插入图片描述

打包好的项目是需要进行在服务器上运行的,所以之后的工程运行都会被自动打包到本地下载的Tomcat服务器上运行
在这里插入图片描述

进行关键的配置与说明:

Server

Configure…:选择本地下载的Tomcat路径

  • 最好是下载/选择8版本的

    1. 由于技术的更新 Tomcat在9版本以后不是javax.servlet-api而是jakarta.servlet-api之后的使用会带来路径的很大麻烦,有些需要用到servlet技术但是没有更新到最新jakarta.servlet,然后你的工程就会很多爆红!

    2. 8.0.x版本多人用而且稳定:不求最新只求最稳

URL:启动工程时候在浏览器上输入的对应URL就会看到你的工程

http://localhost:80/此处可以修改成你喜欢的名字/

JRE: 使用对应的环境变量下的JRE因为Tomcat的本地文件会调用你电脑上的JRE环境变量

HTTP port:服务器运行时占用的端口

  • 关于端口有时候被占用的情况

  • 1:通过windows命令行netstat -ano|findstr 端口号

  • 2: 返回第一行找到PID

  • 3:通过命令或者任务管理器结束PID进程

配置完成→运行→在浏览器输入URL→默认弹出的是webapp目录下的index.jsp

4:逻辑架构的包的创建

在这里插入图片描述

Deployment

+号:添加新打包的工程

+号→Artifact… :打包工程名字选择

-号:移除已经添加的打包工程

1: cn.edu.bnuz.oreder_system这是一个域名反过来写,放置启动时与真正的url进行冲突

2: controller层:页面跳转的控制层本次项目存放servlet文件的包

3: dao层:DAO(Date Access Object) JDBC与数据库交互

4: service层:数据的逻辑处理

5: utils包: 一些工具类的实现:例如JdbcUtil.class : 简化jdbc的连接与释放

6: entity包: 存放本次项目的Client、Product、Order对象

7: resources包:配置文件的存放:例如本次数据库连接的配置文件

8: webapp:前端页面的存放

9: WEB-INF:web.xml存放(不可改)

10: target : 项目打包后的存放

数据data在java-web项目的过程:

data→view→controller→service→dao→ DataBase→file

jsp1→servlet: 此处有jsp1.jsp 而且在web.xml上设置某个xxxServlet映射路径为/servlet

demo_web/jsp1.jsp → demo_web/servlet

jsp页面跳转:

不传值:

<%--使用了el表达式--%>
${pageContext.request.contextPath}/servlet


传值(?之后的所有值之间不能有空格):

<%--使用了el表达式--%>
${pageContext.request.contextPath}/servlet?key1=value1[&key2=value2.....]

jsp1→servlet从jsp1获取值→jsp2:

servlet获取值

request.getParameter("参数名");  根据参数名获取参数值(注意,只能获取一个值的参数)

request.getxxxx还有很多需要进一步学习!!!

servlet传递值

type value=xxx;
type2 value2=xxx;
request.setAttribure("key",value)
request.setAttribure("key2",value2)

servlet 页面跳转

//转发
request.getRequestDispatcher("xx.jsp").forward(request,response)
//重定向
respond.sendRedirect(req.getContextPath()+"/servlet");

request.getRequestDispatcher()和response.sendRedirect()区别
google!!!

github源码
https://github.com/zslkdjaw/study_notes/tree/servlet-jsp-mysql-orderSystem

基于数据库的订单系统设计模式应用开发

代码实现

总结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值