如何用初级的JavaWeb知识写一个较简单的网站(一)

本人JavaWeb初学者,这是学校一门课程的期末作业,之前已经写了不少了,但是由于一点误操作,导致项目有点崩盘,加上心态不是很好,所以把整个项目全部删除重做,这里记录一下我写整个项目的全过程。

环境是mysql + MyEclipes + Tomcat9.0
可视化工具是Navicat

先简单看一下大致需求,首页是下面这幅图片
这里写图片描述

这是某大学某学院的党建工作的网站,要求是实现栏目、文章和用户的增删改查。不是很难,要求的技术为jsp,servlet,过滤器等JavaWeb开发中较为简单的一些技术。

下面,开始工作,那么首先做的应该是设计数据库,数据库中应该包含三张表,t_user t_article 以及 t_column(这里由于所在工作室的命名规范,数据库命名一律为db_xxxxx,表的命名一律为t_xxxxx)

放在Navicat中如图
这里写图片描述

我们右键数据库,选择转储sql文件,这样就会得到这个数据库的建立语句,然后放到项目中,防止数据库丢失。

/*
Navicat MySQL Data Transfer

Source Server         : Test
Source Server Version : 50717
Source Host           : localhost:3306
Source Database       : db_party

Target Server Type    : MYSQL
Target Server Version : 50717
File Encoding         : 65001

Date: 2017-06-06 14:24:40
*/

CREATE DATABASE `db_party`;

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for t_article
-- ----------------------------
DROP TABLE IF EXISTS `t_article`;
CREATE TABLE `t_article` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `title` varchar(255) NOT NULL COMMENT '标题',
  `author` varchar(255) NOT NULL COMMENT '作者',
  `content` varchar(255) NOT NULL COMMENT '内容',
  `click_times` int(11) NOT NULL DEFAULT '0' COMMENT '点击次数',
  `publish_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间',
  `type` varchar(255) NOT NULL COMMENT '所属类型',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for t_column
-- ----------------------------
DROP TABLE IF EXISTS `t_column`;
CREATE TABLE `t_column` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `name` varchar(255) NOT NULL COMMENT '名字',
  `level` varchar(255) NOT NULL COMMENT '级别',
  `pid` int(11) NOT NULL COMMENT '父id,0为根节点',
  `isleaf` int(255) NOT NULL COMMENT '是否是叶子节点,1代表是,0代表不是',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `username` varchar(255) NOT NULL COMMENT '用户名',
  `password` varchar(255) NOT NULL COMMENT '密码',
  `sex` int(255) NOT NULL COMMENT '性别,1代表男,2代表女',
  `phone_num` varchar(255) NOT NULL COMMENT '电话',
  `email` varchar(255) NOT NULL COMMENT '电子邮件',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

建好了数据库,下面正式开始开发

打开MyEclipes,右键,new一个Web Project,填好Project Name,选好Java和JavaEE的版本
这里写图片描述

注意这里我选择的只是我电脑里的版本,真正的选择要随你电脑上的版本而定

注意这里有一个选项,是自动生成web.xml文件,一定要勾选,之后我们很多东西可能会在里面配置,当然现在的版本也可以通过注解的方式进行配置,不过勾选上,以防万一嘛

这里写图片描述

然后,在MyEclipes中配置tomcat并将项目配置到tomcat中去,配置过程我就不再说了,有不明白的可以自行百度

开启tomcat,测试一下看新new出来的项目能不能跑通

这里写图片描述

出现如图所示的画面就证明已经跑起来了,并且现在正在运行的就是你的默认欢迎页面index.jsp

下面开始我们的后台封装,我们先来建立与数据库的连接,我们来配置一个c3p0连接池,至于配置连接池的好处嘛,大家还是自行百度

首先,我们先把该导的jar包导入进去,将jar包拷到WebRoot/WEB-INF/lib下,然后右键,Build Path,add to Build Path

下面我们开始写c3p0的配置文件,我们在根目录里new一个新的文件夹resource,然后开始写配置文件。关于c3p0的配置文件网上也很多,这里我把我的代码上传,大家也可以不看,直接自己配

<?xml version="1.0" encoding="UTF-8"?>  
    <c3p0-config>  
        <default-config>  
            <!-- 数据库的url -->
            <property name="jdbcUrl">jdbc:mysql://localhost:3306/db_party</property>

            <!-- 数据库驱动 -->
            <property name="driverClass">com.mysql.jdbc.Driver</property>

            <!-- 用户名 -->  
            <property name="user">root</property>

            <!-- 密码 -->  
            <property name="password">mysql</property>

            <!-- 当连接池连接耗尽时,客户端调用getConnection()后等待获取新连接的时间,超时将抛出SQLException
            若设为0将无线等待,单位毫秒,默认0 -->
            <property name="checkoutTimeout">30000</property>

            <!-- 每多少秒检查所有连接池中的空闲连接,默认值0,不检查 -->  
            <property name="idleConnectionTestPeriod">300</property>

            <!-- 初始化连接池中的连接数 -->  
            <property name="initialPoolSize">100</property>

            <!-- 最大空闲时间,超过300s不用则连接被丢弃,若为0则永不丢弃 -->  
            <property name="maxIdleTime">300</property>  

            <!-- 连接池中保留的最大连接数 -->
            <property name="maxPoolSize">100</property>

            <!-- 连接池中保留的最小连接数 -->  
            <property name="minPoolSize">10</property>

            <!-- 用于控制数据源内加载的PreparedStatements数量 -->  
            <property name="maxStatements">200</property>  
        </default-config>  
    </c3p0-config>  

需要提到的是,由于这个文件夹是作为配置文件的文件夹,所以需要右键,Build Path,Use as source folder 可以看到,resource文件夹瞬间地位就上升了

然后我们开始写工具类,在src文件夹中new一个新的Class,注意把包名起好,尽量不要写裸体类,进来之后,把和数据库相关的操作都封装在这个类里面,写好之后,记得写一下测试类,如图,如果控制台能正常输出,则说明一切正常

这里写图片描述

封装好了数据库,我们开始写实体类,比如我们先来实现用户的登录注册功能,那我们就先来写一个User的实体类,同样把类打好包,一般实体类我们放在entites包里面

这里写图片描述

然后在类中写出该实体类的属性,一般来讲是要和数据库中的字段一一对应的,属性要设为private,并添加get和set方法。MyEclipes中添加get和set方法是快捷键是shift+alt+s

这里写图片描述

写好实体类之后,开始写User的Dao层,Dao层里面一般是和数据库打交道的一些方法,无非也就是增删改查的一些方法

我们在src下面再new一个UserDao的类,注意外面的包名写好

这里写图片描述

然后里面写好增删改查等方法,比如我们刚刚写好的insert方法

这里写图片描述

写好方法之后最好是再写一个测试类测试一下方法写没写错,当然要是对自己有足够的信心不写也没有大问题

这里写图片描述

然后,再将其他方法写好,UserDao就算是写好了,当然我们这里写的比较简单,如果更严谨一点的话要先写接口,再写实现类,如果再严谨一点的话还要再写一个service层,这里我们就不那么麻烦了,如果对这方面有兴趣的可以自己去了解一下

我们就先介绍到这里,后面的我们会在后续文章继续介绍

发布了31 篇原创文章 · 获赞 33 · 访问量 10万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览