当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪Eclipse:使用CheckStyle实施编码标准       Checkstyle是一款为Java代码实施编码约定和最佳时间规则的开源工具,尽管它最初被设计用于实施编码标准,但现在它也允许用户检查最佳编码实践。它分析Java源代码并报告违反标准的情况,.........
    ▪【论文阅读】《Chain Replication for Supporting High Throughput and Availability》      -- 论文链接:http://www.cs.cornell.edu/fbs/publications/chainreplicosdi.pdf -- 摘要:针对分布式对象存储系统,满足副本的强一致性,同时支持高吞吐高可用的设计方案。简称链式复制。 文章提出了链式.........
    ▪Struts2 Path_路径问题      Struts中的路径用的是action路径,而不是jsp路径,所以用的时候尽量不要用相对路径而是绝对路径。绝对路径才是王道。 现在有连个jsp页面,分别为index.jsp和path.jsp。 1、index.jsp文件 <?xml versi.........

[1]Eclipse:使用CheckStyle实施编码标准
    来源: 互联网  发布时间: 2013-11-19

Checkstyle是一款为Java代码实施编码约定和最佳时间规则的开源工具,尽管它最初被设计用于实施编码标准,但现在它也允许用户检查最佳编码实践。它分析Java源代码并报告违反标准的情况,可以通过插件将其继承到自己喜欢的继承开发环境中,以便开发人员能够立即看到并纠正违反正式标准的情况。 

Checkstyle提供了现成的标准Sun约定,包括120个规则和标准,这些约定能够处理各种问题:从代码格式、命名约定,企业JavaBean(EJB)最佳时间,到代码复杂性度量。Checkstyle支持与以下方面有关的标准: 

  • Javadoc注释 

  • 命名约定 

  • 文件头 

  • 导入语句 

  • 空白 

  • 修饰符 

  • 代码块 

  • 编码问题 

  • 类设计 

  • J2EE 

  • Eclipse安装和使用Checkstyle操作步骤 

  • 在Eclipse中Checkstyle插件的安装 

  • 选择Help->Eclipse Market->Search。搜索Checkstyle插件,并安装 

     

  • 为特定项目激活Checkstyle检查

        
  • [2]【论文阅读】《Chain Replication for Supporting High Throughput and Availability》
        来源: 互联网  发布时间: 2013-11-19

    --

    论文链接:http://www.cs.cornell.edu/fbs/publications/chainreplicosdi.pdf

    --

    摘要:针对分布式对象存储系统,满足副本的强一致性,同时支持高吞吐高可用的设计方案。简称链式复制。

    文章提出了链式复制的方案,并给出了查询、更新操作的流程,节点故障恢复方案。并和primary backups的方案进行了对比。认为链式复制的方案在吞吐上更优。从文章的实验结论看,应该是在更新操作比例小时,吞吐更优。

    从个人理解来看,链式复制在吞吐上并没有优势。更多的是在高可用性上的优势比较明显。

    --

    系统背景:

    1. 分布式对象存储系统

    2. 支持对象查询和更新操作

    不想数据库这么重量级,又比文件系统支持更多的应用语义。

    QoS:

    1. 高可用

    2. 高吞吐

    3. 强一致

    api前提:

    1. query、update是按某种顺序执行的

    2. 更新操作生效后,会被后续的查询感知到

    3. 查询操作幂等,更新操作不保证幂等。客户端的更新操作没有收到落地反馈需要重发,客户端不区分发起失败与服务处理失败。由于更新不幂等,客户端需要等待发起的更新操作的反馈,需要控制请求流量。

    --

    每个几点维护一个历史处理对象id集合Hist{ObjectIds}, 和待处理对象id集合Pending{ObjectIds}。更新请求都发到Head节点,查询请求都发到Tail节点。请求到来append到Pending集合,Tail节点处理完成从Pending集合删除,并加入到Hist集合。

    有一个master来管理,master负责:1. 检测故障机器,2. 通知每个机器它的前驱和后继节点, 3. 通知客户端链的Head和Tail节点。

    master通过Paxos来协调多个master副本。避免单点故障。

    Head节点故障,删除原Head节点,将Head节点的后继作为新的head节点。

    Tail节点故障,删除原Tail节点,将Tail节点的前驱作为新的Tail节点。

    中间节点S故障,删除S节点,master通知S的后继其前驱改为S的前驱,然后通知S的前驱其后继改为S的后继。

    Extending a Chain:故障节点被master从chain中摘除后,为了可靠性,需要扩展chain的节点。选择一个节点T+加入chain的尾部。通知T不再是Tail节点且其后继为T+。T+作为新的Tail节点。后续查询请求发送到T+。

    Tail落地后将ack反向返回到head,各层节点更新Hist和Pending 集合。


    primary/Backups模型:顺序化请求;客户端请求处理广播到backups,并等待全部非故障的backups的反馈。如果primary挂了,选择一个backup作为新的master。primary返回给client。

    作者:knzeus 发表于2013-6-27 14:55:13 原文链接
    阅读:46 评论:0 查看评论

        
    [3]Struts2 Path_路径问题
        来源: 互联网  发布时间: 2013-11-19

    Struts中的路径用的是action路径,而不是jsp路径,所以用的时候尽量不要用相对路径而是绝对路径。绝对路径才是王道。

    现在有连个jsp页面,分别为index.jsp和path.jsp。

    1、index.jsp文件

    <?xml version="1.0" encoding="GB18030" ?>
    <%@ page language="java" contentType="text/html; charset=GB18030"
        pageEncoding="GB18030"%>
    
    <%--
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    //在head中<base href>指定basePath
    --%>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
    <title>Insert title here</title>
    </head>
    <body>
    	<a href=/blog_article/"path/path.action">路径问题说明</a>/index.html
    </body>
    </html>

    2、path.jsp文件

    <?xml version="1.0" encoding="GB18030" ?>
    <%@ page language="java" contentType="text/html; charset=GB18030"
        pageEncoding="GB18030"%>
        <%@taglib uri="/struts-tags" prefix="s" %>
        <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <base href=/blog_article/"<%=basePath%>"/index.html />
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
    <title>Insert title here</title>
    </head>
    <body>
    struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。<br />
    <a href=/blog_article/"index.jsp">index.jsp</a>/index.html
    <br />
    虽然可以用redirect方式解决,但redirect方式并非必要。
    <br />
    解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)
    <br />
    或者使用myeclipse经常用的,指定basePath
    </body>
    </html>

    注意,这里使用basePath来制定文件的绝对路径

    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    getContextPath()根据当前的内容得到路劲,getScheme()得到的是http,getServerName()得到的是127.0.0.1(即IP地址),getServerPort()得到当前端口8080,path得到当前项目所在路径,也就是Struts2_0400_Path,最后basePath其实就是http://localhost:8080/Struts2_0400_Path。

    然后在每一个的jsp的连接前面都加上basePath就可以得到这个连接的绝对路径。

    3、struts.xml文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
        <constant name="struts.devMode" value="true" />
        <package name="path" extends="struts-default" namespace="/path">
            <action name="path" class="com.bjsxt.struts2.path.action.PathAction">
                <result name="path">/path.jsp</result>
            </action>
        </package>
    </struts>
    

    4、PathAction.java

    package com.bjsxt.struts2.path.action;
    
    public class PathAction {
    	public String execute() {
    		return "path";
    	}
    }
    


    作者:huangchnegdada 发表于2013-6-26 22:29:34 原文链接
    阅读:13 评论:0 查看评论

        
    最新技术文章:
    ▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
    ▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
    ▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
    ▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
    ▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
    ▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
    ▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
    ▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
    ▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
    ▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
    ▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
    ▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
    ▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
    ▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
    ▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
    ▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
    ▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
    ▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
    ▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
    ▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
    ▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
    ▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
    ▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
    ▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
    ▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
    ▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
    ▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
    ▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
    ▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
    ▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3