当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪Linux下Apache网站目录读写权限的设置       网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定。 我们假设http服务器运行的用户和用户组是www,网站用户为centos,网站根目录是/home/centos/web.........
    ▪单键模式的C++描述      设计模式-单键(Signelton):其实单键的设计模式说来很简单,说的直白一点就是程序运行过程中保证只有一个实例在运行而已。在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中.........
    ▪学习ORM框架—hibernate(一):初识hibernate      介绍 回顾下之前的开发,了解需求之后,根据界面模型建立数据库,再根据数据库建立实体模型,如果数据库更改,实体模型也跟着改,也就是说实体或者说对象是依赖数据库的。这就使得.........

[1]Linux下Apache网站目录读写权限的设置
    来源: 互联网  发布时间: 2013-11-19

网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定。

我们假设http服务器运行的用户和用户组是www,网站用户为centos,网站根目录是/home/centos/web。

方法/步骤
  • 1

    我们首先设定网站目录和文件的所有者和所有组为centos,www,如下命令:

    chown -R centos:www /home/centos/web


  • 2

    设置网站目录权限为750,750是centos用户对目录拥有读写执行的权限,这样centos用户可以在任何目录下创建文件,用户组有有读执行权限,这样才能进入目录,其它用户没有任何权限。

    find -type d -exec chmod 750 {} \;


  • 3

    设置网站文件权限为640,640指只有centos用户对网站文件有更改的权限,http服务器只有读取文件的权限,无法更改文件,其它用户无任何权限。

    find -not -type d -exec chmod 640 {} \;


  • 4

    针对个别目录设置可写权限。比如网站的一些缓存目录就需要给http服务有写入权限。例如discuz x2的/data/目录就必须要写入权限。

    find data -type d -exec chmod 770 {} \;

  • 作者:zqtsx 发表于2013-6-20 10:30:31 原文链接
    阅读:59 评论:0 查看评论

        
    [2]单键模式的C++描述
        来源: 互联网  发布时间: 2013-11-19

    设计模式-单键(Signelton):其实单键的设计模式说来很简单,说的直白一点就是程序运行过程中保证只有一个实例在运行而已。在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。实现方法是将类的构造函数设置为私有,然后显示的提供一个方法来返回此对像的实例。

    class Singleton
    {
    private:
    	Singleton()
    	{
    		cout<<"Singleton"<<endl;
    	}
    public:
    	static Singleton* instance()
    	{
    		if(!sig)
    			sig=new Singleton();
    		return sig;
    	}
    private:
    	static Singleton *  sig;
    };
    Singleton * Singleton::sig=0;

    由上述代码可以知道Singleton只在第一次创建时被调用,以后均不在被创建,由于类的构造函数设为了私有,因此,无法构造类的对象,只能通过instance方法获取对象的指针,而instance方法只会在第一次创建对像时构建对象,以后均不在构建。

    单键(Signelton)模式主要作用:

    1:保证一个类仅有一个实例,并提供一个访问它的全局访问点

    作者:howard58888 发表于2013-6-20 15:11:28 原文链接
    阅读:51 评论:0 查看评论

        
    [3]学习ORM框架—hibernate(一):初识hibernate
        来源: 互联网  发布时间: 2013-11-19
    介绍

    回顾下之前的开发,了解需求之后,根据界面模型建立数据库,再根据数据库建立实体模型,如果数据库更改,实体模型也跟着改,也就是说实体或者说对象是依赖数据库的。这就使得我们进行面对对象开发有了一定的阻碍。

     

    ORM,Object Relational Mapping,对象关系映射。是由对象到关系数据的映射,解决了这个问题——面向对象与关系数据库的不匹配的现象。

    Hibernate就是开源的非常优秀的ORM框架。它在这两种不同的模型之间建立关联,给我们提供了利用面向对象的思想来操作关系型数据的接口。


    第一个hibernate项目

    1、创建java项目

     

    2、创建UserLibrary,加入依赖包

    *HIBERNATE_HOME/lib/*.jar

    *HIBERNATE_HOME/hibernate3.jar

    *加入数据库驱动(mysql驱动)

     

    3、提供hibernate.cfg.xml文件,完成基本的配置

     

    	<session-factory>
    		<property name="hibernate.connection.driver_class">	com.mysql.jdbc.Driver</property>
    		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernateFirst</property>
    		<property name="hibernate.connection.username">root</property>
    		<property name="hibernate.connection.password">root</property>
    		<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
    		<property name="hibernate.show_sql">true</property>
    		<property name="hibernate.format_sql">true</property>
    		
    	</session-factory>

    4、建立实体类User.java

     

    public class User {
    
    	private String id;
    	
    	private String name;
    	
    	private String password;
    	
    	private Date createTime;
    	
    	private Date expireTime;
    
    	public String getId() {
    		return id;
    	}
    
    	public void setId(String id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    
    	public Date getCreateTime() {
    		return createTime;
    	}
    
    	public void setCreateTime(Date createTime) {
    		this.createTime = createTime;
    	}
    
    	public Date getExpireTime() {
    		return expireTime;
    	}
    
    	public void setExpireTime(Date expireTime) {
    		this.expireTime = expireTime;
    	}
    }

    5、提供User.hbm.xml文件,完成实体类的映射

     

    <hibernate-mapping>
    	<class name="com.java.hibernate.User">
    		<id name="id">
    			<generator class="uuid"/>
    		</id>	
    		<property name="name"/>
    		<property name="password"/>
    		<property name="createTime"/>
    		<property name="expireTime"/>
    	</class>
    </hibernate-mapping>

    6、将User.hbm.xml文件加入到hibernate.cfg.xml文件中

     

    <mapping resource="com/java/hibernate/User.hbm.xml"/>

    7、编写工具类ExoprtDB.java,将hbm生成ddl,也就是hbm2ddl,用来创建表

     

    /**
     * 将hbm生成ddl
     * @author Administrator
     *
     */
    public class ExportDB {
    
    	public static void main(String[] args) {
    		
    		//默认读取hibernate.cfg.xml文件
    		Configuration cfg = new Configuration().configure();
    		
    		SchemaExport export = new SchemaExport(cfg);
    		export.create(true, true);
    	}
    }


    最好加入如下配置项,方便观察hibernatesql的生成:

    <propertyname="hibernate.show_sql">true</property>

    <propertyname="hibernate.format_sql">true</property>

     

    最好加入log4j配置文件,将该配置文件拷贝到src下,跟踪执行信息,便于程序的调试,而且可以选择性的显示


    小结

    hibernate使得我们可以面向对象编程,一直在跟对象打交道,是因为hibernate制定了一套由实体到数据库表的映射机制,根据实体信息执行相应的sql语句,从而省去了建立数据库表的过程,建表如此,对表的增删改查也是如此,hibernate都为我们封装好了,封装的就是我们常用的jdbc操作,随着这些jdbc操作没什么,但难能可贵的是能够从中发现大量重复代码并抽象出这个框架,更值得学习的是这个框架考虑的方方面面。


    作者:tcl_6666 发表于2013-6-20 17:23:38 原文链接
    阅读:60 评论: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