源码地址:XiyouLinux Group 图书借阅平台 项目地址中包含了一份README,因此对于项目的介绍省去部分内容。这篇博客,主要讲述项目中各个模块的实现细节。 项目概述及成果 首先将本项目使用到技术罗列出来: 使用Spring + Spring MVC进行后台开发 使用Bootstrap和jQuery框架进行前端开发 使用自定义注解与自定义的JdbcRowMapper简化JdbcTemplate对数据库的操作 使用腾讯云的对象存储服务进行图书照片的远程存储 使用MD5加密算法对用户密码在后台进行加密存储 使用过滤器进行一个会话中的身份校验 手动从Spring容器中获取bean 数据库设计中的诸多细节… … 由于前端开发是由团队中的其他人在负责,在加上博主对前端这块并不了解,因此本篇博客并不讨论有关第二点技术实现上的细节。 本项目如README中所述,在后期还有许多需要进行优化的地方。如果你对本项目感兴趣,不妨在GitHub中将 继续阅读 >>


董恒毅 18/03/13 00:22:30
Maven是什么? Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。 在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。 Maven提供了开发人员的方式来管理: Builds Documentation Reporting Dependencies SCMs Releases Distribution mailing list 概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。 安装Maven 1. 下载 下载链接 建立一个Maven文件夹,把下载的文件解压到该文件夹,并在Maven中建立一个Lo 继续阅读 >>


李猛 18/03/06 17:46:48
Web应用程序基础知识 Web应用程序是由客户端与服务器端两部分组成。客户端基本是浏览器,服务器端是HTTP服务器,浏览器会请求服务器上放置的文件或资源。 关于HTML HTML是以标签的方式来定义文件结构,标签通常成对。 当浏览器从服务器取得这份HTML文件之后,就可以按照其中的结构等信息进行画面的绘制。 URL、URN、URI Uniform Resource Locator/Name/Identifier URL的主要目的是以文字方式来说明因特网上的资源如何取得。 主要格式为: <协议>:<特定协议部分> 协议指定了以哪种方式取得资源: ftp 文件传输协议 http 超文本传输协议 mailto 电子邮件 file 特定主机文件名 特定协议部分的格式: //<用户>:<密码>@<主机>:<端口号>/<路径> 关于HTTP HTTP是基于请求/响应的通信协议,架 继续阅读 >>


贺含悦 17/12/18 20:38:10
Web应用程序基础知识 Web应用程序是由客户端与服务器端两部分组成。客户端基本是浏览器,服务器端是HTTP服务器,浏览器会请求服务器上放置的文件或资源。 关于HTML HTML是以标签的方式来定义文件结构,标签通常成对。 当浏览器从服务器取得这份HTML文件之后,就可以按照其中的结构等信息进行画面的绘制。 URL、URN、URI Uniform Resource Locator/Name/Identifier URL的主要目的是以文字方式来说明因特网上的资源如何取得。 主要格式为: <协议>:<特定协议部分> 协议指定了以哪种方式取得资源: ftp 文件传输协议 http 超文本传输协议 mailto 电子邮件 file 特定主机文件名 特定协议部分的格式: //<用户>:<密码>@<主机>:<端口号>/<路径> 关于HTTP HTTP是基于请求/响应的通信协议,架 继续阅读 >>


贺含悦 17/12/18 20:38:10
socket.c文件 所有我自己的注释理解都是汉字,绝大部分前面都有zzy,是为了和原来作者的注释区分开 /* $Id: socket.c 1.1 1995/01/01 07:11:14 cthuang Exp $ * * This module has been modified by Radim Kolar for OS/2 emx */ /*********************************************************************** module: socket.c program: popclient SCCS ID: @(#)socket.c 1.5 4/1/94 programmer: Virginia Tech Computing Center compiler: DEC RISC C compiler (Ultrix 4.1) environment: 继续阅读 >>


朱紫钰 17/12/17 14:26:54
原文链接:聊一聊 cookie 作者:championhengyi 发表于 2017/12/04 17:45:03 原文链接 http://blog.csdn.net/championhengyi/article/details/78712027 阅读:104 继续阅读 >>


董恒毅 17/12/04 17:45:03
写在前面: 计划写一个Web 服务器,在小组的群博上没有找到相关的文章,自己打算从开始记录下这个过程,一是整理清楚我的构建过程,二是也能让后面的同学做一下参考。 CSAPP上网络编程那一章最后实现了一个小但是功能较齐全的Web 服务器,叫做TINY。因为只是知道HTTP协议的一些概念,还不太清楚一个Web服务器的工作流程和代码组织结构,而书上给出了 Tiny Server 的完整实现,代码非常短,只有几百行,所以自己模仿着手撸了一遍,并试着分析了代码,运行了一下,给自己一个直观的认识。源代码放在 这里,加注释的代码放在这里。接下来分析下这个Tiny Web服务器。 PS:WEB基础就不写了,自己了解下基本的概念,那么看起代码来就足够了。 CSAPP上面的例子用到的一些通用的函数都放在csapp.h头文件中,并在csapp.c中给出实现。我们看到的大写首字母开头的函数,是在原功能函数上面加上了错误处理,比如 pid_t Fork(void) { pid_t pid; 继续阅读 >>


杜肖孟 17/11/19 21:23:24
什么是缓存Cache? 为什么人们要使用它? 一个使用缓存Cache的站点会监听客户端向服务器端发出的请求,并保存服务器端的回应——比如HTML页面、图片等文件。接着,如果再次使用相同URL发送请求,他能够使用之前已经保存下来的反馈文件,而不是再次向服务器发出请求。 有两个主要的理由让人们使用缓存: 减少延迟 — 因为所发出的网页请求是指向更接近客户端的缓存而不再是源服务器端,因此请求所花费时间更短,这让网站看上去反应更快。 降低网络负荷 — 因为缓存文件可以重复使用,节省了不少的带宽.这也给用户省了不少流量. 缓存 Caches种类 浏览器缓存 Caches 浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires; Cache-control等)。 Expires策略(忽略) Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。 不过Expires是HTTP 1.0的东西,现在默认浏览器均默认使用 继续阅读 >>


董恒毅 17/11/01 11:46:48
 昨天刚更完IDEA下用Maven创建SpringMVC项目的博客,现在回想起刚开始用IDEA创建Web项目并且配置tomcat的时候,死活记不住操作流程,多练了几次才掌握了,所以现在就来贴出我的创建Web项目的详细流程,方便小伙伴们借鉴… 新建Web项目  首先,打开IDEA,新建一个Web项目,具体操作是 右击File -> new -> 点击Project ,跳出一个新框,勾选右边的Web Application选项,如下图: 点击next,填写你的项目名称 点击Finish,然后IDEA就开始创建Web项目了,下来要做的就是导入Web项目所需要的包啦! 导包 点击右上方的代表Project Settings的四方块,如下图: 然后进入Project Settings界面,导入web项目所需的jsp包和servlet包,点击Libraries,再点击绿色的加号,出现下图 点击java,去你自己的文件目录寻找jsp和servle 继续阅读 >>


董孟愿 17/08/18 09:57:04
beego框架算是golang比较成熟的一个框架了,最近看了下这个框架其中的一个在线聊天室的例子,觉得还是有很多可以学习借鉴的地方,所以就总结下。 这个例子的源码在这里,该例子配合bee工具可以很简单的进行运行。 首先看下这个项目的结构: 标准的beego框架,各个文件夹包含了不同的功能。 然后我们从main.go(这里是WebIM.go)看起: package main import ( "github.com/astaxie/beego" "github.com/beego/i18n" "github.com/beego/samples/WebIM/controllers" ) const ( APP_VER = "0.1.1.0227" ) func main() { beego.Info(beego.BConfig.AppName, APP_VER) // Register routers. beego.Rout 继续阅读 >>


朱新全 17/06/29 12:08:47