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

项目分层

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

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();

}

}

目 录 摘 要 I ABSTRACT II 第一章 绪论 1 1.1 选题的背景 1 1.2 国内外状况 2 1.3 问题的提出 3 1.4 主要研究内容 3 1.5 论文的组织结构 3 第章 相关理论及技术介绍 5 2.1 开发平台 5 2.1.1 MyEclipse 5 2.1.2 NetBeans 5 2.2 相关技术 5 2.2.1 XML 5 2.2.2 Dom4j 6 2.2.3 SOAP 6 2.2.4 WebService 7 2.2.5 WSDL 7 2.2.6 Velocity 8 2.2.7 Swing 8 2.2.8 Java反射 9 2.3 本章小结 9 第三章 服务开发平台的总体框架 10 3.1 前台可视化IDE的设计 11 3.2 后台的总体设计 12 3.2.1 后台RuntimeContainer容器管理模块设计概述 13 3.2.2 后台UDDI注册中心模块设计概述 14 3.2.3 后台SP Agent Builder代码生成模块设计概述 16 3.3 本章小结 20 第四章 服务生成工具SP Agent Builder的设计与实现 21 4.1 三层XML schema设计与解析模块的设计与实现 21 4.1.1 功能层XML schema的设计 21 4.1.2 表示层XML schema 的设计 24 4.1.3 传输层XML schema 的设计 24 4.1.4 三层XML文件解析的设计与实现 26 4.2 数据转换模块的设计与实现 28 4.2.1 目标数据格式介绍 28 4.2.2 对象与目标数据格式之间的转换 31 4.3 传输代理模块的设计与实现 35 4.3.1 网络传输协议 36 4.3.2 传输代理的运作流程 38 4.4 代码生成器模块的设计与实现 39 4.4.1 模板的设计 39 4.4.2 代码生成的运作流程 40 4.5 可视化编辑器模块的设计与实现 41 4.5.1 可视化编辑器的设计 41 4.5.2 可视化编辑器的运作流程 42 4.5 本章小结 42 第五章 系统实现 44 4.1 创建服务 44 4.2 编辑服务 48 4.3 删除服务 50 4.4 本章小结 51 第六章 结论 52 致 谢 53 参考文献 54 毕业设计小结 56 附录A XML数据类型和Java数据类型之间的映射规则 57 附录B 功能层XML schema的设计 58 附录C 表示层XML schema的设计 60 附录D 传输层XML schema的设计 61 附录E TXT文本的格式介绍 63
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值