MVC

SpringMVC

August 2, 2017
Java, Spring, Web, MVC

本文是我的学习过程,但是我认为学习过程中并不适合写给别人看。所以本文只是一个临时的笔记,待以后进行深入整合。 SpringMVC与Spring的关系是什么? SpringMVC是依托Spring框架开发的一个Web MVC框架,天生与Spring集成,也就是使用了Spring的依赖注入和切面编程。 上一篇中讲解了Web.xml,这是Java Web的基础,也就是Servlet容器的工作方式,那个也作为本文的基础。 SpringMVC整体可以看成是一个Servlet,事实上它就是一个Servlet。我们配置web.xml来启动这个Servlet,然后这个Servlet来负责处理每个请求。每个处理请求的类都是我们遵照SpringMVC的格式来写的类,由SpringMVC这个框架来调用完成整个请求的处理。 与原本粗放的原生Java Web的开发模式相比,做了一个聚合。原本是每个请求你都写一个Servlet去处理,在web.xml中配置好一个请求与处理类的映射关系,由容器来完成调用。然后SpringMVC是分担了容器的压力,将容器的工作交给他来做,它利用Spring框架的依赖注入的特性,以及bean的工厂模式重新实现后端的实际处理流程。 有好处也有坏处,我也不太清楚这样做的具体目的是什么,可能会有性能上的提升,因为毕竟工厂模式等特性的加入会提升一些性能和开发便利。坏处感觉也挺明显,首当其冲就是学习栈又深了,还不是深了一个单位是好几个单位。加入了新的配置等,开发过程的脑力成本又增加了。 多说也没用,也是要以后逐步深入才能参透其中的奥妙。 maven 配置项目 # 命令行使用mvn构建项目很简单。 mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.0 -DgroupId=com.demo -DartifactId=demo -Dversion=1.0 生成的目录如下: . ├── pom.xml └── src └── main ├── resources └── webapp ├── index.jsp └── WEB-INF └── web.xml 配置一下项目所需依赖关系pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>demo</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>demo Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <jdk.version>1.8</jdk.version> <spring.version>4.3.9.RELEASE</spring.version> <jstl.version>1.2</jstl.version> <servletapi.version>3.1.0</servletapi.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org. ...

Husky - A Light Web MVC Framework

May 17, 2017
PHP
PHP, Web, MVC

这篇文章是对我自己编写的PHP MVC 框架:Husky 的详细说明, 算作是官方说明文档。 项目的GitHub地址 Husky是什么? # Husky 是一个使用PHP语言编写的Web MVC微框架,此项目最初是作者偶然看到的一篇博客中的教学项目。我对项目的代码进行了一些修改和整理,删除了一些不必要的内容,添加了部分设计,目前框架处于第一个版本(Husky-0.9),框架将会长期维护更新。目前只在Linux开发环境下测试可用。 如果你是一个初出茅庐的Web开发者,那么本框架就十分适合你来使用了。相比较很多成熟的PHP框架来说,Husky的体积小,逻辑简单,还没有加入很多集成的自动化功能。整个框架按照一个既定的数据格式实现了MVC开发的需求,更主要的是,在一定程度上说,这个框架还处于比较原始的状态, 这对新手深入了解框架的体系结构十分有利,你可以按照自己的想法对框架进行修改,甚至可能在此基础上改写出更出色的框架。 本框架的开发初衷是为作者所在的学生社团开发网站,多人合作模式下编写网站没有一个框架实在太乱了。但是衡量工作内容,于是决定自己开发一个微框架来辅助网站的开发,就有了这个项目。 你需要掌握什么? # 此框架需要一定的php网站开发经验才能熟练的使用。所以在使用之前,你需要具备以下的知识或能力: 配置apache2 的Rewrite功能 数据库SQL语句 php基本语法 面向对象编程的基本知识 简要了解http协议与请求url链接 清楚的了解软件 MVC 架构的组成 在进一步开发框架之前,你需要进一步具备以下的知识或能力: apache2 的更多配置选项 熟练掌握http协议 深入理解 MVC 框架结构 熟练使用php语言进行面向对象编程 熟练使用PDO数据库操作库 良好的编程习惯 Husky 做了什么? # Husky 实现了下面几个功能: 唯一的网站入口,url地址重定向 自动化加载MVC控制类,自动化解决类间依赖 过滤SQL注入攻击的安全问题, 使用PDO进行数据库操作 Controller、Model、View模块分离 定义数据参数等的格式 配置环境 # 框架需要软件环境: Linux apache2 php(>=5.4) mysql 开启apache2 rewrite 功能 # 默认的Ubuntu apache2是没有开启这个功能的,要先去看一下 /etc/apache2/mods-enabled/ 文件夹下是否存在rewrite.load 模块的链接,如果没有,要去看一下 /etc/apache2/mods-available/ 中是否存在对应的文件,如果有,则使用下面的命令建立一个链接到 ../mods-enabled/ 文件夹下: $ ln -s /etc/apache2/mods-available/rewrite. ...