- Servlet容器的作用、HttpServlet的工作机制流程图
烟雨国度
servlet流程图hive
HttpServletRequest解析过程是否GETPOST其他方法Servlet生命周期init-初始化Servletservice-处理请求destroy-销毁ServletgetMethod返回HTTP方法getRequestURI返回请求URIgetQueryString返回查询字符串getParameter返回特定参数值客户端发送HTTP请求服务器接收请求Web容器创建ServletR
- docker_快速部署flask架构下的web容器
打败404
dockerflask架构
保证你的机器上安装了docker并正常启动可参考阿里镜像站dockerflask项目结构如下:my-flask-app/├──Dockerfile├──app.py├──requirements.txt└──config/└──settings.pymy-flask-app/这是你的项目根目录,包含了所有与Flask应用相关的文件和配置。Dockerfile这个文件包含了构建Docker镜像所需的
- Springboot下自定义监听器的使用
bugdaybyday
SpringCloud
Servlet和Springboot的关系springboot三大特性:组件自动装配:webMVC、webFlux、JDBC等(@EnableAutoConfiguration,@Configuration)嵌入式Web容器:Tomcat、Jetty以及undertow(简单说下我的理解,Spring的核心功能是IOC和DI。那么web部分,在springboot中肯定是做嵌入式的集成。Sprin
- 利用spring-boot-thin-launcher插件分离jar包的依赖和配置
飞空之羽
技术文章springbootmaven
SpringBoot项目可以通过spring-boot-maven-plugin插件打包生成一个可执行的jar包,这样可以脱离web容器(例如tomcat)直接运行。但默认情况下spring-boot-maven-plugin打出来的包是一个fatjar,即将所有的依赖全部打进了jar包当中,这样的jar包体积很大,每次更新系统的时候都需要完整替换整个jar包(本地还好,如果是云服务器,网速慢了每
- 现在程序员这么多,我学习java这块应该学到什么程度才能不被淘汰呢?
渡你眉间山河
一、夯实基础JavaSE这是基础,一定要好好学习!Java语法,面向对象(包括类、对象、方法、继承、封装、抽象、多态、消息解析等),常见API,数据结构,集合框架,设计模式(包括创建型、结构型、行为型),多线程和并发,I/O流,Stream,网络编程。JavaEEJavaEE是在JavaSE的基础上构建的,JavaEE容器,Web容器,常用框架(包括Struts2、Hibernate、Mybati
- Spring Boot 八股文
szc1767
八股文springbootjavaspring
目录重点SpringBoot中的核心注解介绍下SpringBoot的自动装配原理基础介绍下SpringBootSpringBoot有哪些优点Springboot常用注解SpringBoot中的监视器是什么?谈谈你对spring中starter的理解介绍几个常用的starterSpringBoot项目需要单独的Web容器吗Springboot项目启动方式Springboot如何解决跨域问题Sprin
- Tomcat的作用(自用)
w_3123454
大师我悟了tomcatjava容器
本文为个人笔记,记录自己对Tomcat的一些疑问,及搜索到的一些答案。不一定准确,仅供自用。。几个重要概念:容器,web容器,http服务,项目部署到Tomcatservlet是一种规范,Tomcat是运行servlet的一种容器文章目录1.[Tomcat是一个应用服务器](https://www.cnblogs.com/toSeeMyDream/p/6379330.html)2.Tomcat提供
- Flask中session失效时间设置
忘了呼吸的那只猫
最近需要使用Python开发web系统,主要用到的框架就是Flask,前端使用Jinja2模板引擎和Bootstrap,web容器使用Cherrypy,其中关于Login管理的使用了Flask-Login插件。基本上也是从零学起,前前后后花了有好几个月的时间,还是在借鉴了已有的一些项目基础上。在开发的过程中有很多的想法和体会,记录下来,有不对的地方欢迎大家指正。在处理登录管理的部分,在Flask-
- java访问web中静态资源_JavaWEB项目静态资源访问问题
杨晓杰
java访问web中静态资源
今天碰到一个问题,SSM项目WEB-INF目录下的静态资源例如.css.js.font等文件无法访问。百度了一下,需要配置SpringMvc对访问静态资源的支持。如果将DispatcherServlet请求映射配置为"/",则SpringMVC将捕获Web容器所有的请求,包括静态资源的请求,SpringMVC会将它们当成一个普通请求处理,因此找不到对应处理器将导致错误。这可能是个历史性的问题。由于
- Web容器、Servlet容器、Spring容器、SpringMVC容器之间的关系
weixin_30270889
javaweb.xml
以下内容为个人理解,如有误还请留言指出,不胜感激!Web容器web容器(web服务器)主要有:Apache、IIS、Tomcat、Jetty、JBoss、webLogic等,而Tomcat、Jetty、JBoss、webLogic同时也是servlet容器,或者说他们还包含了servlet容器。没有servlet容器,你也可以用web容器直接访问静态页面,比如安装一个apache等,但是如果要显示
- web基础及http协议 (二) apache
白开水~不加糖
前端http网络协议
一、httpd安装组成http服务基于C/S结构1.常见http服务器程序httpdapache,存在C10K(10Kconnections)问题nginx解决C10K问题lighttpdIIS.asp应用程序服务器tomcat.jsp应用程序服务器jetty开源的servlet容器,基于Java的web容器ResinCAUCHO公司,支持servlets和jsp的引擎webshpere:IBM公
- Shiro-09-Session Management 会话管理
老马啸西风
web安全哈希算法密码学算法java安全
会话管理ApacheShiro在安全性框架世界中提供了一些独特的功能:适用于任何应用程序的完整的企业级Session解决方案,从最简单的命令行和智能手机应用程序到最大的群集企业Web应用程序。这对许多应用程序都有很大的影响-在Shiro之前,如果需要会话支持,则需要将应用程序部署在Web容器中或使用EJB状态会话Bean。Shiro的Session支持比这两种机制中的任何一种都更易于使用和管理,并
- 指纹识别描述
Lyx-0607
笔记
指纹由于其终身不变性、唯一性和方便性,几乎已成为生物特征识别的代名词。通常我们说的指纹就是人的手指末端正面皮肤上凸凹不平的纹线,纹线规律地排列形成不同的纹型。而本节所讲的指纹是指网站CMS指纹识别、计算机操作系统及Web容器的指纹识别等。应用程序一般在html、js、css等文件中多多少少会包含一些特征码,比如WordPress在robots.txt中会包含wp-admin、首页index.php
- JavaWeb之Servlet接口
程序员
Servlet接口什么是Servlet?Servlet是一种基于Java技术的Web组件,用于生成动态内容,由容器管理,是平台无关的Java类组成,并且由JavaWeb服务器加载执行,是Web容器的最基本组成单元什么是Servlet容器?Servlet容器作为Web服务器或应用服务器的一部分,通过请求和响应提供Web客户端与Servlets交互的能力,容器管理Servlet实例以及它们的生命周期(
- 资源抽象接口(Resource)和资源加载
yeren108
资源抽象接口(Resource) JDK所提供的访问资源的类(如java.net.URL,File等)并不能很好地满足各种底层资源的访问需求,比如缺少从类路径或者Web容器的上下文中获取资源的操作类。有鉴于此,Spring设计了一个Resource接口,它为应用提供了更强的访问底层资源的能力。该接口拥有对应不同资源类型的实现类。先来了解一下Resource接口的主要方法:booleanexist
- Java Web基础面试题
执着的逗比
1、jsp和servlet有什么区别?Servlet:1)一种服务器端的Java应用程序2)由Web容器加载和管理3)用于生成动态Web内容4)负责处理客户端请求Jsp:1)是Servlet的扩展,本质上还是Servlet2)每个Jsp页面就是一个Servlet实例3)Jsp页面会被Web容器编译成Servlet,Servlet再负责响应用户请求区别1)Servlet适合动态输出Web数据和业务逻
- Spring MVC实现Spring Security,Spring Stomp websocket Jetty嵌入式运行
神易风
使用Spring框架各个组件实现一个在线聊天网页,当有用户连接WebSocket,服务器监听到用户连接会使用Stomp推送最新用户列表,有用户断开刷新在线列表,实时推送用户聊天信息。引入Jetty服务器,直接嵌入整个工程可以脱离JavaWeb容器独立运行,使用插件打包成一个jar文件,就像SpringBoot一样运行,部署。pom.xml依赖UTF-8UTF-8UTF-89.4.8.v201711
- 服务器解析漏洞及任意文件下载
Passion-优
服务器运维
1.服务器文件解析漏洞文件解析漏洞,是指Web容器(Apache、nginx、iis等)在解析文件时出现了漏洞,以其他格式执行出脚本格式的效果。从而,黑客可以利用该漏洞实现非法文件的解析。(1)Apachelinux系统中的apache的php配置文件在/etc/apache2/mods-available这个目录下1.多后缀解析漏洞ApacheHTTPD支持一个文件拥有多个后缀,并为不同后缀执行
- jsp入门笔记
61etj
JSP动态页面技术脚本和注释jsp脚本jsp注释html注释:java注释://单行注释/*多行注释*/Jsp原理jsp第一次被访问的时候会被web容器翻译成servlet,在执行。Jsp翻译后会变成文件名_jsp.java此格式,保存在Tomcat根目录下的work文件夹内部其中Java代码会原封不动放置到翻译后的java文件中的service方法中,因此该java代码中不允许定义方法会翻译为o
- jsp与servlet的区别与联系
AshinX
区别:1)jsp经编译后就变成了servlet。(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2)jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。3)servlet中没有内置对象,jsp中的内置对象都是必须通过:HttpServletRequest对象、HttpServletResponse
- 架构演变及分布式解决方案
大能嘚吧嘚
微服务微服务架构分布式架构java微服务
架构单体架构所有的功能都集中在一个项目中,并部署在同一台服务器,往往一个功能的阻塞会导致整个应用的阻塞,最终导致整个服务器不可用,随着业务模块的不断拓展,代码的可读性、维护性越来越差,测试成本也越来越高单体架构下的集群部署:(Session共享问题:通过SpringSession+Redis实现分布式Session共享)通过负载均衡器+多WEB容器实例实现水平负载,提升系统的并发性和高可用性,但还
- 2019-01-20 常见的HTTP请求方法
NoelleMu
以下均为HTTP/1.1标准方法。GETGET方法用于获取请求页面的指定信息。如果请求资源为动态脚本,则返回文本是web容器解析后的HTML源代码,而不是源文件。使用GET请求时可以带上参数(如username=username,多个参数项以“&”分隔,如username=username&password=password),在服务器端脚本语言中可以选择性地接收这些参数。HEADHEAD方法除了
- CVE-2012-1823 漏洞复现
Jay 17
CVE复现网络安全web安全PHPRCE漏洞复现CVE
CVE-2012-1823PHPSAPI与运行模式首先,介绍一下PHP的运行模式。下载PHP源码,可以看到其中有个目录叫sapi。sapi在PHP中的作用,类似于一个消息的“传递者”,比如在《Fastcgi协议分析&&PHP-FPM未授权访问漏洞&&Exp编写》一文中介绍的fpm,他的作用就是接受Web容器通过fastcgi协议封装好的数据,并交给PHP解释器执行。除了fpm,最常见的sapi应该
- 一个 SpringBoot 项目能同时处理多少请求?
码灵
回归学习框架java面试开发语言
目录1问题分析2Demo3答案4怎么来的?5标准答案及影响参数一Tomcat配置6影响参数二Web容器7影响参数三Async1问题分析一个SpringBoot项目能同时处理多少请求?不知道你听到这个问题之后的第一反应是什么?我大概知道他要问的是哪个方向,但是对于这种只有一句话的面试题,我的第一反应是:会不会有坑?所以并不会贸然答题,先追问一些消息,比如:这个项目具体是干什么的?项目大概进行了哪些参
- JSP原理简述
海色ha1se
java开发语言
JSP动态网页技术,可以定义html,css,js等静态内容,还可以定义java代码等动态内容。注意导入坐标时,JSP的scope标签是provided,和servlet一样,否则会报错。JSP本质上就是一个Servlet,由web容器转换为Servlet,然后编译为class字节码文件执行JSP脚本,用于在JSP页面里定义java代码就是定义成员方法和成员变量因为使用JSP会导致html标签和j
- SpringMVC创建异步回调请求的4种方式
豢龙先生
springjavaspringboot
一、4种异步回调请求的创建方式首先要明确一点,同步请求和异步请求对于客户端用户来讲是一样的,都是需客户端等待返回结果。不同之处在于请求到达服务器之后的处理方式,下面用两张图解释一下同步请求和异步请求在服务端处理方式的不同:同步请求异步请求两个流程中客户端对Web容器的请求,都是同步的。因为它们在请求客户端时都处于阻塞等待状态,并没有进行异步处理。在Web容器部分,第一个流程采用同步请求,第二个流程
- ftp+nginx实现文件服务器
FantJ
为什么要有文件服务器呢,如果把文件存放到web容器下肯定不是好的办法,因为你时刻需要注意覆盖后文件消失的问题。如果想完全的搬出web容器,项目不大的话我们可以选择ftp+nginx的方式来实现文件服务器。如果文件需求量大点的,建议用分布式文件服务器,它对横向扩展的支持比较好。1.环境准备CentOS搭建ftp服务nginx环境搭建2.开始整合2.1修改nginx.conf我们需要再nginx.co
- 基于SSM的图书管理系统
柒月玖.
Java源码资源java
点击以下链接获取资源:https://download.csdn.net/download/qq_64505944/88820548?spm=1001.2014.3001.5503Java项目-6librarySystem开发完毕万一你要作为课程设计或者毕设,不太会配,可以到下面我博客中私信,我帮你远程部署成功,但收费技术栈数据库:MySQL开发工具:IDEA数据连接池:DruidWeb容器:Ap
- springboot知识点1
rice88
原发布在个人公众号rice若初见似少年2020-08-2400:26最近在看小马哥的springboot编程思想,整理一些知识点。小马哥是谁,当然不是pony啦,哈哈。六大特性:独立的spring应用嵌入web容器固化的starter自动装配提供运维特性无代码生成且无需xml配置扩展阅读servlet3.0规范,JSR-xxx(java规范)启动springboot应用启动命令:java-jarr
- docker 基于容器创建本地web容器化镜像
wuhuhuan
dockerdocker容器运维
一、docker基于容器创建本地web容器化镜像1、启动指定buysbox镜像dockerrun--nameb1-itbusybox:latest2、创建目录,并创建htmlmkdir-p/data/htmlviindex.html内容自定义例如:welcometobusybox3、新增窗口,创建镜像dockercommit-a"user"-c'CMD["/bin/httpd","-f","-h"
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http