java web 社区_我的第一个javaweb----模仿社区网站(二)

news/2024/5/13 16:20:57/文章来源:https://blog.csdn.net/weixin_33603656/article/details/114203933

项目分层

在写后台之前我给分了四层,每一层负责不同的功能,如图

2b5a703ba410b8099cb517363cdc76b5.png

. 前端页面层:也就是浏览器展示给人看的,直接与人交互的界面

. servlet层:受理前端页面发来的数据,由它接受前端发来的请求(request)做出不同的处理,然后给出不同的响应(reponse)返回给前台,然后将需要查询的请求交给Dao层

. Dao层:它的主要功能用于和数据库交互,执行增删改查的功能

. 数据库层:很明显就是存储数据的

建立各层

首先在eclipse上建立一个动态web project,然后建立不同的层(就是package包)

a12f7e76231b8c269a86190893f774fd.png

工具包

一个重要的包就是连接jdbc的工具包,我的工具类叫DBUtils

package com.utilDB;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Properties;

public class DBUtils {

private static DBUtils db;

String driver;

String url;

String username;

String password;

//让这里的构造器为私有的,就是不让外界能直接new这个类,因为连接数据库本身就是一个比较慢的过程,只需要加载连接一次就可以了

private DBUtils() {

Properties p=new Properties();

try {

//这里的连接数据库信息都放在一个properties文件中,方便我们修改

p.load(this.getClass().getClassLoader().getResourceAsStream("db.properties"));

driver=p.getProperty("driver");

url=p.getProperty("url");

username=p.getProperty("username");

password=p.getProperty("password");

System.out.println(password);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//这里就是单例模式(懒汉模式),外界只能通过这个公有的方法来访问这个类,注意:是静态方法

public static DBUtils getIntstance() {

//这类永远只new一次

if(db==null) {

return new DBUtils();

}else {

return db;

}

}

//返回一个jdbc连接

public Connection getConnection() throws SQLException, ClassNotFoundException {

Class.forName(driver);

Connection conn=DriverManager.getConnection(url,username,password);

return conn;

}

//关闭对应连接

public void close(Connection conn) {

if(conn!=null) {

try {

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public void close(PreparedStatement ps) {

if(ps!=null) {

try {

ps.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public void close(ResultSet rs) {

if(rs!=null) {

try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

这是properties文件内容,其中#号部分是连接oracle数据库的信息,其他是连接mysql的信息

# jdbcéç½®æ件ï¼é置驱å¨,url,username,password,éç¨key = valueçå½¢å¼é置信æ¯

# driver = oracle.jdbc.driver.OracleDriver

# url = jdbc:oracle:thin:@localhost:1521:neuedu

# username = scott

# password = tiger

driver = com.mysql.jdbc.Driver

url = jdbc:mysql://localhost:3306/javaweb?useUnicode=true&characterEncoding=UTF-8

username = root

password = ******

还有一个就是给我们密码加密的工具类,叫MD5,百度很多写法,这里就随便复制一个

package com.utilDB;

import java.security.MessageDigest;

public class MD5 {

public static String MD5(String s) {

try {

MessageDigest md = MessageDigest.getInstance("MD5");

byte[] bytes = md.digest(s.getBytes("utf-8"));

return toHex(bytes);

}

catch (Exception e) {

throw new RuntimeException(e);

}

}

private static String toHex(byte[] bytes) {

final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();

StringBuilder ret = new StringBuilder(bytes.length * 2);

for (int i=0; i

ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);

ret.append(HEX_DIGITS[bytes[i] & 0x0f]);

}

return ret.toString();

}

}

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

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

相关文章

老榕智能建站软件_教你把网站建设得更好上线了智能建站系统

对于不懂技术、没有太多资金的个人和中小企业来说,要想生成自己的网站,就需要用到智能建站系统。智能建站比较简单,小白也能很快上手,不过这并不意味着你就可以随随便便搭建了。实际上,若想顺利建设出一个有用的网站&a…

vba获取正在运行网站的源码_VBA教程连载——第三节:如何运行宏

宏的运行方式有以下几种:第一种,自我录制运行打开开发工具-自己去录制一个宏,然后给它命名,录制完成后运行。至于具体怎么录制,我们下节课再细谈。注意:内置宏的表格,一般是没法直接保存的&…

html seo 优化,SEO优化中常见的四种html标签作用

对于SEOer来说,在HTML代码中,使用一些标签,更利于搜索引擎蜘蛛的读取,适当布局一些优化标签,可能会有意想不到的结果。下面就列举几个标签的妙用。1.标题标签。在网页html代码中 h1 标签是定义最大的标题。在整个页面中…

Nginx学习四:静态网站部署

文章目录第一步:通过Xftp将ace-master到linux服务器/opt/static目录下,为了演示方便,将名字改为ace第二步:修改nginx.conf配置文件在server中第三步:重启nginx服务器第四步:成功访问测试:通过ht…

php网站怎么做集群,如何构建一个网站集群 - 简庆旺个人博客|PHP教程|PHP学习|Python学习|Python教程|Seo学习|Seo教程...

网站业务大了,可能就需要一个集群,来保障业务的稳定性,我根据自己的学习工作经验,做了下总结。一:DNS负载均衡dns轮询,自动把流量分散到不同的服务器,避免单个服务器挂了。比如用的dnspod&#…

提高网站转化率——页面停留时间与网站停留时间

一、页面停留时间与网站停留时间是如何计算出来的? 假设用户访问了网站的主页(Home)。分析工具将这个访问者标记为一个Visit,接着这个访问者又浏览了另外两个页面(Page2和Page3),然后他离开了你…

4种黑帽SEO手法

1、斗篷法(Cloaking) 为什么叫斗篷法呢?可能是因为只能看到斗篷,而不能看到真面目的意思吧! 斗篷法指站长将一个网页用两个不同版本的页面,一个版本给搜索引擎看,一个版本给用户浏览。而搜索引…

数据采集与网站统计实现全过程

做网站统计首先要有数据,数据从何而来?这需要网站要记录客户所访问的轨迹,记录用户访问每个页面的流向,给网站加过百度统计与cnzz的站长们估计都清楚,要想对某个页面进行统计,就要在该页面上加上统计代码&a…

php网站优化简书,记一次PHP优化案例

Lnmp网站服务器架构,其实就是Linuxnginxmysqlphp架构体系eg:后台访问很慢,而且有时候出现502错误。一、案例分析。我们可以想到,既然是访问缓慢,有时候直接访问不了,以前是没问题的,到现在就突然出现了问题…

网站漏洞扫描工具_网站目录扫描工具

目录御剑dirbusterWebdirscan网站后台扫描工具都是利用目录字典进行爆破扫描,字典越多,扫描到的结果也越多。常用的网站后台扫描工具御剑、dirbuster和Webdirscan,不管哪个工具,要想扫描到更多的东西,都必须要有一个强…

匀速建站 华为云_紫虎5G云网站:5G回转,不止是快捷建站,新兴的SEO模式也在崛起...

最近,5G时代的推动正在如火如荼进行中,今天一大早就有爆料说,继去年年底推出面向企业的5G商用网络后,韩国三大电信运营商4月5日起正式开始为大众办理5G手机入网手续,韩国由此成为全球率先对普通用户开通5G商用网络的国…

python 网页设计_GitHub - leiphp/Django-myblog: Django入门与实践--Python制作个人博客网站,一个Python的高级Web框架,功能非常强大。...

Django-myblog Django入门与实践--Python制作个人博客网站,一个Python的高级Web框架,功能非常强大,下面是项目预览,随便找了一套前端模板,目前只做了主页和文章页的界面。 项目预览开发环境 1.Python 2.Django 3.编辑器…

网站打不开显示access denied_果汁排行榜-一个宝藏网站

果汁排行榜一个宝藏网站,把互联网上的各大热搜榜,排行榜汇聚在了一网站。可以查阅搜索实时热点,影视,音乐,摄影,财富,游戏等各领域热门排行榜单。果汁排行榜 [http://guozhivip.com/rank/]

html站点根目录怎么改,通过重定向把子目录设置为网站根目录

摘要:如果想在一个项目内对于不同的文件夹使用不同的域名来访问,我们需要把这些文件夹单独设置成根目录并绑定域名,但对于虚拟服务器用户来说,这并不容易实现,因为一般的虚拟服务器是没有这样的功能的,但我…

前端性能优化(七)-页面性能优化之优化清单——编码、解码形成DOM树的过程 优化关键渲染路径 JS性能在线测试网站 性能优化-参考资料

前端性能优化(七)-页面性能优化之优化清单——编码、解码形成DOM树的过程 & 优化关键渲染路径 & JS性能在线测试网站 & 性能优化-参考资料 编码、解码形成DOM树的过程 浏览器从网络或硬盘中获得HTML字节数据后会经过一个流程将字节解析为D…

怎样对java网站进行简单修改_javaweb简单的增删改查之“加”

我相信对每一个初学者来说能有一个好的教程真的帮助非常大,虽然我也只是一个初学者,我相信我所学到的转化为自己的语言对大家会有帮助1.连接数据库public class Databass {public static String db_url "jdbc:mysql://localhost:3306/blog?charac…

PHP Web应用开发 -用PHP实现简单的个人博客网站

文章目录题目一、项目简介二、需求分析三.总体设计四. 详细设计五、运行测试六、 总结题目 题目:用PHP实现一个贴吧的网站 一、项目简介 能够实现用户注册登录发帖会贴的功能。 二、需求分析 (1)统一友好的操作界面。具有良好的用户体验…

JavaWeb-网站在线用户信息、网站访问量以及管理踢出用户实例

转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 这个稍微比上个版本做得完善了一点,用了JavaBean来封装用户信息,添加了一个管理踢用户的功能。 上一个的用户访问量是通过监听request来统计的&#xff…

网络基础(三)02-网络的基础概念——DNS服务器之hosts文件配置 网站访问流程之三次握手 BS架构-浏览器访问、CS架构-安装软件客户端 静态网站和动态网站-数据是否动态

网络基础(三)02-网络的基础概念——DNS服务器之hosts文件配置 & 网站访问流程之三次握手 & B/S架构-浏览器访问、C/S架构-安装软件客户端 & 静态网站和动态网站-数据是否动态 4.5 DNS DNS: Domain Name System 域名系统。在DNS服务器中保存…

JavaWeb-Servlet技术的监听器-解析与实例-网站在线用户信息与网页点击量

转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 在Web项目中,我们对下面这几个监听器必须熟练的使用,它们的作用真的很大。熟练的使用后,可以使我们少绕弯路,少写很多代码、 事件…