0%

[TOC]

Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API 动态的向客户端输出内容。

阅读全文 »

在本教程中,我们将学习如何通过 gitolite 和 gitweb 工具来安装一个git服务器,该服务器可通过 ssh 和 http 协议进行访问。
Gitolite 工具能够实现用户管理功能。
gitweb 工具提供一个仓库列表的 web 界面。
apache 工具提供智能 http 服务(smart http),用于连接git服务器。

阅读全文 »

有人觉得从源码安装 Git 更实用,因为你能得到最新的版本。 二进制安装程序倾向于有一些滞后,当然近几年 Git 已经成熟,这个差异不再显著。

阅读全文 »

1.从地址栏显示来说

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码302,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

2.从数据共享来说

forward:转发页面和转发到的页面可以共享request里面的数据
redirect:不能共享数据.

3.从运用地方来说

forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

4.从效率来说

forward:高.
redirect:低. 因为需要和客户端有两次交互

本质区别

一句话,转发是服务器行为,重定向是客户端行为。为什么这样说呢,这就要看两个动作的工作流程:

转发过程

客户浏览器发送http请求—-》web服务器接受此请求–》调用内部的一个方法在容器内部完成请求处理和转发动作—-》将目标资源发送给客户;

在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。
在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。

重定向过程

客户浏览器发送http请求—-》web服务器接受后发送302状态码响应及对应新的location给客户浏览器–》客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址—-》服务器根据此请求寻找资源并发送给客户。

在这里 location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。
重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。

参考:

forward和redirect的区别

注册百度统计账号

###

进入百度统计页面:注册一个账号并登录。

新建网站

进入上方的网站中心页面,下面会列出你当前账户正在检测的网站。
点击右侧的新增网站。
在弹出的对话框中输入你的网站URL,然后在列表中就出现了你要检测的网站。

点击“网站中心”

输入你的网址

获取32位长的codeID

鼠标放上去会显示获取代码,然后就获取一个32位长的字符串。保存之。

32位code

修改配置文件

进入你的Hexo–>themes–>jacman–>_config.yml中,把上述的32位字符串复制到baidu_tongji后面的sitecode中。同时需要将enable设为true。

baidu_tongji:
  enable: ture
  sitecode: your baidu tongji site code

创建应用获取通用代码

首先进入多说网站,注册用户。可以使用第三方登录。
接着就是需要创建一个应用。点击“我要安装”,来创建应用。

点击我要安装

然后会跳到一个页面,里面有需要的通用代码。

多说的管理系统

修改文件

  • 非jacman主题:
    在hexo/_config.yml文件里的添加duoshuo_shortname:
###Disqus  disqus
disqus_shortname:
duosuo_shortname: sunhongtao
  • jacman主题:
    在Hexo\themes\jacman/_config.yml文件里:
#### Comment
duoshuo_shortname:  longzl  ## e.g. sunhongtao   your duoshuo short name.
disqus_shortname:    ## e.g. wuchong   your disqus short name.

注:
这里的duosho_shortname _不是你的用户名_。而是在你创建应用之后出现的
那个名字。例如这个:http://longzl.duoshuo.com/admin/tools/
其中longzl就是我们duoshuo_shortname

修改comment.ejs

在Hexo\themes\jacman\layout_partial\post下面的comment.ejs。

添加我们刚才获得源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<% if (theme.duoshuo_shortname || config.duoshuo_shortname && page.comments){ %>
<section id="comments" class="comment">
<div class="ds-thread" data-thread-key="<%- page.path %>" data-title="<%- page.title %>" data-url="<%- page.permalink %>"></div>

<!-- 多说公共JS代码 start (一个网页只需插入一次) -->
<script type="text/javascript">
var duoshuoQuery = {short_name:"longzl"};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
<!-- 多说公共JS代码 end -->

</section>
<% } %>

接着访问我们的网页就可以看到效果了。