写了近一天的博客没有了!!!!! 我怎么不剁了我这双手!!!!!! 本系列博客为Spring In Action 这本书的学习笔记 Spring简介 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 这是网上给出的Spring框架的概念, 可能初次接触到Spring的小伙伴跟我刚开始一样, 看的是云里雾里, 不过没关系, 我们先来大概分析一下Spring的框架模块吧. Spring框架由以下六部分组成(也有人将其分为七部分, 由于本文是基于Spring In Action所写, 所以与文中作者所述保持一致) 我们来逐一分析Spring的这六个模块. 1. Core Spring container(Spring核心容器) 容器是Spring框架最核心的部分, 它负责Spring应用中Bean的创建/配置和管理. 而在Sprin 继续阅读 >>


祝一迪 17/08/15 17:09:16
OSI七层模型是ISO(国际标准化组织)制定的一个关于通信协议设计的参考模型. 它将通信协议中必要的功能分为了七层, 上下层进行交互时所遵循的约定叫”接口”, 同层交互时所遵循的约定叫”协议”. 虽然OSI模型并没有得到普及, 实际应用意义也不是很大, 但是对理解协议内部运作有很大的帮助. 本文将以一个”对话”的例子来解释分析一下OSI七层模型各层的功能和作用. OSI七层模型概述 我们先以两张图来大致了解一下OSI各层的作用和对数据的处理, 看看它们都干了哪些事. 发送端从第7层至第1层传输数据, 接收端从第1层至第7层接收数据. 对发送端而言, 在每个分层处理由上一层传过来的数据的时候都会附上当层协议所必须的首部信息, 然后传给下一层; 而对接收端而言, 在每个分层上将会进行首部信息和内容的分离, 然后传给上一层, 最终将数据恢复原样. 假设有用户A要发送一封内容为”早上好”的邮件给用户B, 那么这封邮件的发送过程对应OSI七层模型又是什么样的呢, 我们来逐层分析一下. 继续阅读 >>


祝一迪 17/08/14 11:41:24
这几天就开始学习Spring框架了, 工欲善其事, 必先利其器, 所以就从搭建环境开始吧. 因为是刚开始学习, 所以对有些配置文件了解的不是很清楚, 这期间也参考了很多博客, 暂且将搭建步骤记录下来, 以免忘记. 创建Maven项目 首先是new一个Project, 选择创建Maven项目: Project创建好之后, 进行IDEA的主页. 在右下角有Maven projects need to be imported, 点击第二个Enable Auto-Import将Maven需要的包都导入工程, 配置好Maven环境. 在配置好Maven环境之后, 先不要着急在pom.xml中导入常用包, 因为网上给出的大多数pom.xml文件的dependecy标签集中都含有Spring MVC框架的包, 但这往往并不是Spring的核心包, 如果你直接导入进pom.xml文件之后, Maven就会开始自动下载, 这会导致你在之后添加Spring MVC框架失败, 由于有与S 继续阅读 >>


祝一迪 17/08/10 15:25:35
做完了第一版的图书管理系统, 决定这段时间静下心好好看一看书, 一边复习Java基础和Servlet&JSP, 再一边学一学框架, 写读书笔记将学习到的知识点记录下来. 反射是什么? 反射,一种计算机处理方式。是程序可以访问、检测和修改它本身状态或行为的一种能力。 这是百度里给出的概念, 可能大多数人跟我刚开始一样, 不是很理解这句话. 那么我们先从Java文件编译链接后生的可执行文件说起吧. 首先, 大家都明白, 一个.java文件经过编译链接会生成.class文件, 准确的来说, 应该是一个类经过编译会生成一个.class文件. 如果一个类里面除了主类还有其他类, 不管是内部类还是外部类, 每个类都会各自生成一个.class文件. 可能有人通过查看IDEA下classes目录会发现, 一个类经过编译链接后, 其内部类并不会生成独立的.class文件,但是实质上是会生成的, 只是IDEA下并没有显示出有这个.class文件而已, 我们在终端下来测试对比一下. 先来看一段Java代码: public class test { 继续阅读 >>


祝一迪 17/08/03 23:44:44
为什么突然想要分析一下GET和POST方法的区别呢,是因为最近在写小组的图书管理系统。这个项目的第一版已经基本写完了,但是仍有一些小bug让我想不明白。比如其中的一个bug: 用户在图书详情页对该图书进行评价,评价成功之后刷新页面,将会在刷新的那一刻再次提交评论内容,刷新多次则会提交多次。 今天不经意间终于搞明白了这个bug,问题就出在这GET和POST上! bug复现 先来看一下评论部分的JSP页面代码: <div> <form action="/addComments.do?bookid=<%=bookid%>" method="post"> <div> <center> <textarea cols="50" rows="5" style="width:300px;" name="detail" placeholder="想说点什么?"></textarea> 继续阅读 >>


祝一迪 17/08/02 16:07:28
这几天开始和社会董还有小孟愿开始写小组的图书管理系统,将在此期间遇到的一些问题和学到的一些知识总结在博客里。 这篇博客要总结的就是在WEB项目中用到的很重要的一种数据库设计模式DAO。 DAO是什么 DAO是WEB项目里面的数据层,主要负责为其他各层(MVC(Model View Controller))提供数据。DAO层里封装了对数据库的各种操作的代码。 为什么要使用DAO 我们在写WEB项目时,经常会有这样的需求:需要从数据库拿到数据,然后再展示再前端页面上,这也就说明我们需要在JSP页面中使用JDBC连接数据库进行各种操作。且不说在JSP页面上操作数据库有多繁复,单是大段大段的JAVA代码就已经使得JSP页面变得很复杂了。JSP页面应该专注于数据的展示结果,而非数据的取得过程。所以我们使用DAO设计模式,提供一组通用的数据库操作方法,简化代码,增强程序的可移植性。 DAO层的组成 DAO层主要由五个部分组成:DBUtil(数据库连接类),VO(valueObject值对象),IDAO(DAO接口),DAOImpl(DAO实现类) 继续阅读 >>


祝一迪 17/07/25 15:44:03
什么是标准标签? 标准标签有什么作用? 简明扼要的来说, 标准标签就是一些以”jsp:”作为前置的标签, 主要作用是为了减少JSP中的Java代码. 1. <jsp:include> <jsp:forward>标签 <jsp:include> 在前面曾经提到过include指示元素, 可以在JSP转译的时候将其他的JSP页面包括合并进来一起转译, 但是这样include进来的JSP页面是静态的, 我们无法给包括进来的JSP页面传递参数或对它进行动态调整, 只是将多个JSP页面合并成一个JSP页面再进行转译, 结果也只会生成一个Servlet. 但是使用标准标签<jsp:include>可以在运行时动态地将其他的JSP页面包括进来, 并传递参数等. 被包含的JSP页面也会自己独立生成一个Servlet类. <jsp:include>在使用过程中实质上发生了什么呢? 前面在Servlet里面提到过请求的包含(include())与转发(forward()), 其实, 在JSP转 继续阅读 >>


祝一迪 17/06/20 11:11:22
前面总结完了Servlet相关的基础知识, 现在来学习总结一下JSP. 1. JSP简介 JSP全称Java Server Pages, 是一种动态网页开发技术. JSP与Servlet是一体两面的, 因为JSP网页最终会被容器转译为Servlet源代码, 然后自动编译为.class文件, 再载入.class文件, 最后生成Servlet对象. 下面我们以一个Hello World的例子, 来分析以下JSP和Servlet的关系, 以及JSP的生命周期. 例: 用JSP输出Hello Word, 并分析转译的Servlet代码. JSP代码如下: <html> <head> <title>Hello JSP</title> </head> <boay> <h1>Hello World!</h1> </body> </html> 这就是最简单地JSP的一 继续阅读 >>


祝一迪 17/06/12 22:55:19
过滤器是什么? 抽象点来说, 就是介于Servlet之间的独立的元件, 可以随时加入到应用程序之中, 也可以随时移除. 具体点来说, 比如针对某些特定的页面, 只有特定的用户才能浏览, 这个时候我们就希望能把所有登录的用户进行过滤, 只给一些用户访问的权限, 这就可以在Servlet之前实现一个用户验证的过滤器. 过滤器通常搭配封装器来使用. 关于封装器可分为请求封装器和响应封装器, 具体概念及用法将在下面介绍. 1. 实现与设置过滤器 在Servlet中要实现过滤器, 必须要实现Filter接口, 并使用@WebFilter标注或在web.xml中定义过滤器, 让容器知道应该加载哪些过滤器类. Filter接口有三个需要实现的方法:init(), doFilter(), destroy(), Filter接口的代码如下: public interface Filter{ public void init(FilterConfig filterConfig) throws ServletException; //Filt 继续阅读 >>


祝一迪 17/06/07 21:29:11
今天康康问了我一个问题, 问我在Java中有没有像C里面stdio.h, C++里面iostream这样的标准类库, 当然是有的, Java里面的标准类都被封装在一个个包里面, 今天就来简要概括一下Java里面常用的包. 问: Java里面有没有不用improt导入就能使用的包? 还真有一个包, 不用导入就能使用里面的类和方法. 比如在main()函数里面只写一句System.out.println(“hello world!”);就不用导入任何包吧, System类就属于这个java.lang包. 那么这个包还有哪些东西呢? 那就从java.lang包开始了解吧! java.lang包 java.lang是唯一一个不需要自己手动improt导入的包, 它由JVM默认寻找并导入. java.lang提供利用 Java 编程语言进行程序设计的基础类。最重要的类是 Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类). java.lang是Java里面最常用的包, 它主要包含以下内容. 1. 基本数据类型的 继续阅读 >>


祝一迪 17/06/06 20:52:20