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

news/2024/5/13 2:46:19/文章来源:https://blog.csdn.net/Jarvenman/article/details/72886732

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

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

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

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

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

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

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

/*
Navicat MySQL Data TransferSource Server         : Test
Source Server Version : 50717
Source Host           : localhost:3306
Source Database       : db_partyTarget Server Type    : MYSQL
Target Server Version : 50717
File Encoding         : 65001Date: 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层,这里我们就不那么麻烦了,如果对这方面有兴趣的可以自己去了解一下

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_899160.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

好了&#xff0c;废话不多说&#xff0c;我们接着上次的项目继续开发 我们现在先暂时开发用户登录注册界面&#xff0c;上次我们已经完成了项目的初期准备&#xff0c;完成了建表、User实体类和UserDao的书写&#xff0c;下面我们开始套页 这里的前台页面是由一名前端程序员写…

影响网站打开速度的9大因素

再好的网站&#xff0c;如果打开速度慢&#xff0c;10个人会有9个人选择离开&#xff0c;我归纳了大约9大影响网站打开速度的因素&#xff0c;但网站页面显示的速度取决于众多的因素&#xff0c;包括服务器性能、网络传输质量、网站的带宽、DNS解析、网页内容包括涉及到的JS代码…

提高网站打开速度的7大秘籍

很多站长使用虚拟主机来做网站&#xff0c;网页内容一旦很多&#xff0c;网站打开速度就会特别慢&#xff0c;如果说服务器、带宽、CDN这类硬指标我们没有经济实力去做&#xff0c;不妨通过网页代码优化的方式来提高速度&#xff0c;卢松松总结了一些可行性的方法。 1: 缩小Jav…

12个在线网站测速工具——web性能

网站的访问速度对于一个网站非常重要&#xff0c;没有一个人会喜欢速度慢的网站。下面是12款在线测试网站的访问速度和性能的工具&#xff0c;在优化网站的时候很有用。 Pingdom 测试网站每个元素的加载速度&#xff0c;比如html、图片、JS文件等等。 GTmetrix GTmetrix集合…

谷歌搜索将衡量网站速度

据国外媒体报道&#xff0c;Google搜索结果排名将考量网页加载速度因素&#xff0c;网页加载速度慢的网站的Google搜索结果排名很可能会下滑。 Google的两位首席搜索工程师阿米特‧辛格哈尔&#xff08;Amit Singhal&#xff09;和马特•卡茨&#xff08;Matt Cutts&#xff09…

怎样让网站的文章(内页)快速收录和发外链的方法

做网站的站长们都知道&#xff0c;网站的文章的收录数量往往决定着网站的权重和网站的排名&#xff0c;所以一些站长对于网站的索引量看的极其重要。而最让人头疼的是&#xff0c;有时候当你费尽心思的写出一篇高质量的原创文章发表到网站以后&#xff0c;却迟迟不被收录&#…

windows server服务器上部署java+tomcat网站域名配置

windows server服务器上部署javatomcat网站域名配置 如果只是部署java项目的话&#xff0c;可以把IIS删除&#xff0c;然后在服务器上安装jdk tomcat 配置好环境变量&#xff0c;就和你在自己计算机上开发一样&#xff0c;把你的项目war包拷到tomcat下的webapps里&#xff08;…

python使用selenium爬取网站流程 适用于抓取使用了js等异步加载技术的网站

Python使用urllib.open再配合BeautifulSoup解析是最快的网页抓取方式&#xff0c;但部分网站做了反爬&#xff0c;用这种抓取方法会出错&#xff0c;就是浏览器里看网页内容是有的&#xff0c;但Python里抓出来的是空架子无数据。这种时候可以F12观察网站是否有直接的数据接口返…

应用程序和网站中创建几乎任何类型的工业条码控件BarcodeX.NET

BarcodeX.NET条形码控件是一种.NET WinForms组件和ASP.NET服务器控件&#xff0c;它可以在您的应用程序和网站中创建几乎任何类型的工业条形码。 具体功能&#xff1a; 100% C#托管代码适用于.NET框架2.0&#xff0c;3.0和3.5支持的条码包括&#xff1a;DataMatrix, PDF-417, …

轻量级设计,让网站灵敏轻便的6个技巧

在网站或软件的策划和设计过程中&#xff0c;我们经常听到这样的讨论&#xff1a;“这个功能设计得太重了”又或“我们希望能够处理得轻一些”。似乎轻设计是时下炙手可热的话题&#xff0c;也是方兴未艾的Web2.0大浪下设计师们的最爱&#xff08;看看那些在全世界遍地开花的SN…

做网站用UTF-8还是GB2312?

经常我们打开外国网站的时候出现乱码&#xff0c;又或者打开很多非英语的外国网站的时候&#xff0c;显示的都是口口口口口的字符&#xff0c; WordPress程序是用的UTF-8&#xff0c;很多cms用的是GB2312。 ● 为什么有这么多编码&#xff1f; ● UTF-8和GB2312有什么区别&…

如何查询几年的网站历史排名变化

在做网站之前&#xff0c; 我们要有一个明确的市场群体的定位&#xff0c;了解用户群体和竞争者。首先要查询竞争者网站排名的变化情况&#xff0c; 最好是几年的排名变化情况&#xff0c; 时间越长越能看出该类型的网站在市场的占有率和需求的稳定性。 那么如何知道 同类竞争者…

查询 alexa.com 历史排名网站

alexa.com 目前提供全球的网站排名, 流量情况. 可以查看情况. 为了更加直观的展现排名变化曲线, 可以使用 http://ddline.cn/cn/url/bilibili.com https://www.alexa.com/siteinfo/bilibili.com 查看, 可以作为了解网站受欢迎程度的参考.

新建 SharePoint 网站集

进入管理中心&#xff0c;主菜单选择“服务设置”选项卡&#xff0c;此菜单选择SharePoint Online 点击网站集的“新建”按钮&#xff0c;看到新建ShartPoint Online网站集对话框 填写一些信息 然后点击“创建” 创建完成将得到以后界面提示 然后将在网站集列表中看到网站集列…

提升你网站水平的 jQuery 插件推荐

jQuery是一个优秀JavaScript库&#xff0c;它简化了HTML文档遍历&#xff0c;事件处理&#xff0c;动画和Ajax交互。 jQuery的确改变了很多人写JavaScript的方式。如今&#xff0c;有很多现成的jQuery插件可供选择&#xff0c;帮助你在网站中加入惊人的功能和效果。看看这些非常…

利用python爬取网站图片并制作蒙太奇风格图片

目标网站是http://www.netbian.com。 python版本为3.7&#xff0c;使用的库有requests、pyquery、pyquery,如果有缺少可以使用pip install 缺少的库来安装。 import requests from pyquery import PyQuery import time首先打开网站来分析&#xff1a;打开目标网站&#xff0c;…

多搜- 多个网站一起搜(舆情监控版)

多搜-多个网站一起搜(舆情监控版) &#xff08;2011.10 v1.3&#xff09; 多搜&#xff0c;顾名思义就是对多个网站同时进行搜索&#xff0c;这样你就不用在不同网站间转换。多搜目前集成了百度,谷歌,雅虎,必应,搜搜,搜狗,有道,即刻,盘古等九大搜索引擎和百度贴吧,天涯,猫扑…

自建一个网站要多少钱

首先看你要做的网站的功能性&#xff0c;不同的要求价格也不同&#xff0c;那么具体建一个网站多少钱&#xff1f;小编针对这个问题为大家详细分析下&#xff1a;服务器&#xff1a;网络卡不卡就要看服务器的配置高不高了&#xff0c;一般的网站可以用个虚拟主机&#xff0c;最…