首页 > 后端开发 > 正文

java框架php实现 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

2023-09-09 20:15:50 | 我爱编程网

很多关注后端开发的朋友很希望了解java框架php实现 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低,今天我爱编程网为大家整理了相关文章,一起来看看吧!

java框架php实现 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

从系统功能来看,这个应该算是企业应用,系统不是从大小来区分是不是企业系统的,而是从功能。何为企业应用,即是针对物质资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)集成一体化的企业管理软(ERP)。CRM即客户关系管理系统,是面向客户的。

下面说一下我对java以及php的了解与认识。

我本身是从事java方面的,做的也都是公司内部物流管理一类的系统。
做了几年的项目大多都是用starts框架,java的编程思想是以数据为模型,实现业务逻辑与表示分开,在没有MVC模式的框架前一直都是以java+servlet+jsp实现MVC。随着后来starts的出现,大多都开始用starts,starts也并不能说是最好的,比它好的框架现在有很多,只能说它先入为主了,对于框架这一块就不用我废话了。如果用java实现一个项目,相对来说要繁琐一些,因此花费的工时也相对的要长,但是java有很好的可移植性 ,可维护性,代码复用性。并且层次分的很清晰,业务逻辑和表示可以完全分开。
现在随着面向接口编程的思想,降低了代码与代码之间的依赖性,更提高了项目的移植性。总而言之,java开发的项目,维护性好,开发效率也不算低,对学习也有很大帮助,主要是学习其中的思想。

PHP这种语言以前也有学过,但工作中没有应用过。
用php开发项目也是不错的,现在网上很多主流的网站都是php的,它的优点是开发效率高,非常适合门户性网站,以前我也帮别人做过一个小网站,但是是用的.net,本来想用php了,但是考虑现在支持.net的空间比较多最后用了.net。
虽然php也有类似mvc的框架,但它那个mvc就类似一个include。但是对它简单容易上手,好配置很是青睐的。

两种语言都可以在linux上运行,如果是企业应用的话,本人更倾向java,如果是网站一类倾向于.net或者php.

对于java来说,现在有很好的IDE,如果你工程设计合理的话会大大的提高你的开发效率,比如如果你选择hibernate做数据库访问层,那会减少一部分工作量。这也就是java的优势之一,有很多封装好的东西你可以直接拿过来用。

以上拙见,仅是个人观点,仅供参考。
.net和php很类似,asp.net和java就很相近了。

ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。

ASP.NET是编译性的编程框架,运行是服务器上的编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。

java强势的地方是j2ee中的技术,在企业应用中有很好的解决方案。
在某个方面都有一些技术点。

我说的.net不是asp.net可能给你造成了误解,对于asp.net我也只是了解,可以说asp.net封装的很好,asp.net的控件是很强大的,但是有时候觉得它真的不是很灵活,从MVC的角度来看,我觉得它还是不如java的清晰.虽然它也是面向对象的,但在数据这一块来说感觉还是没有完全分离开。

也可能是这么多年来java的设计模式固化在我的思想当中了吧。

java框架php实现 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

java怎么实现php 的crypt

/****************************************************************************
 * JCrypt.java
 *
 * Java-based implementation of the unix crypt command
 *
 * Based upon C source code written by Eric Young, eay@psych.uq.oz.au
 *
 ****************************************************************************/

public class JCrypt
{
   private JCrypt() {}

   private static final int ITERATIONS = 16;

   private static final int con_salt[] =
   {
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 
      0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 
      0x0A, 0x0B, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 
      0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 
      0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 
      0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 
      0x23, 0x24, 0x25, 0x20, 0x21, 0x22, 0x23, 0x24, 
      0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 
      0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 
      0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 
      0x3D, 0x3E, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 
   };


   private static final int cov_2char[] =
   {
      0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 
      0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 
      0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 
      0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 
      0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, 0x62, 
      0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 
      0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 
      0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A
   };

   private static final int byteToUnsigned(byte b)
   {
      int value = (int)b;

      return(value >= 0 ? value : value + 256);
   }

   private static int fourBytesToInt(byte b[], int offset)
   {
      int value;

      value  =  byteToUnsigned(b[offset++]);
      value |= (byteToUnsigned(b[offset++]) <<  8);
      value |= (byteToUnsigned(b[offset++]) << 16);
      value |= (byteToUnsigned(b[offset++]) << 24);

      return(value);
   }

   private static final void intToFourBytes(int iValue, byte b[], int offset)
   {
      b[offset++] = (byte)((iValue)        & 0xff);
      b[offset++] = (byte)((iValue >>> 8 ) & 0xff);
      b[offset++] = (byte)((iValue >>> 16) & 0xff);
      b[offset++] = (byte)((iValue >>> 24) & 0xff);
   }

   private static final void PERM_OP(int a, int b, int n, int m, int results[])
   {
      int t;

      t = ((a >>> n) ^ b) & m;
      a ^= t << n;
      b ^= t;

      results[0] = a;
      results[1] = b;
   }

   private static final int HPERM_OP(int a, int n, int m)
   {
      int t;

      t = ((a << (16 - n)) ^ a) & m;
      a = a ^ t ^ (t >>> (16 - n));

      return(a);
   }

   private static int [] des_set_key(byte key[])
   {
      int schedule[] = new int[ITERATIONS * 2];

      int c = fourBytesToInt(key, 0);
      int d = fourBytesToInt(key, 4);

      int results[] = new int[2];

      PERM_OP(d, c, 4, 0x0f0f0f0f, results);
      d = results[0]; c = results[1];

      c = HPERM_OP(c, -2, 0xcccc0000);
      d = HPERM_OP(d, -2, 0xcccc0000);

      PERM_OP(d, c, 1, 0x55555555, results);
      d = results[0]; c = results[1];

      PERM_OP(c, d, 8, 0x00ff00ff, results);
      c = results[0]; d = results[1];

      PERM_OP(d, c, 1, 0x55555555, results);
      d = results[0]; c = results[1];

      d = (((d & 0x000000ff) <<  16) |  (d & 0x0000ff00)     |
           ((d & 0x00ff0000) >>> 16) | ((c & 0xf0000000) >>> 4));
      c &= 0x0fffffff;

      int s, t;
      int j = 0;

      for(int i = 0; i < ITERATIONS; i ++)
      {
         if(shifts2[i])
         {
            c = (c >>> 2) | (c << 26);
            d = (d >>> 2) | (d << 26);
         }
         else
         {
            c = (c >>> 1) | (c << 27);
            d = (d >>> 1) | (d << 27);
         }

         c &= 0x0fffffff;
         d &= 0x0fffffff;

         s = skb[0][ (c       ) & 0x3f                       ]|
             skb[1][((c >>>  6) & 0x03) | ((c >>>  7) & 0x3c)]|
             skb[2][((c >>> 13) & 0x0f) | ((c >>> 14) & 0x30)]|
             skb[3][((c >>> 20) & 0x01) | ((c >>> 21) & 0x06) |
                                          ((c >>> 22) & 0x38)];

         t = skb[4][ (d     )  & 0x3f                       ]|
             skb[5][((d >>> 7) & 0x03) | ((d >>>  8) & 0x3c)]|
             skb[6][ (d >>>15) & 0x3f                       ]|
             skb[7][((d >>>21) & 0x0f) | ((d >>> 22) & 0x30)];

         schedule[j++] = ((t <<  16) | (s & 0x0000ffff)) & 0xffffffff;
         s             = ((s >>> 16) | (t & 0xffff0000));

         s             = (s << 4) | (s >>> 28);
         schedule[j++] = s & 0xffffffff;
      }
      return(schedule);
   }

   private static final int D_ENCRYPT
   (
      int L, int R, int S, int E0, int E1, int s[]
   )
   {
      int t, u, v;

      v = R ^ (R >>> 16);
      u = v & E0;
      v = v & E1;
      u = (u ^ (u << 16)) ^ R ^ s[S];
      t = (v ^ (v << 16)) ^ R ^ s[S + 1];
      t = (t >>> 4) | (t << 28);

      L ^= SPtrans[1][(t       ) & 0x3f] |
           SPtrans[3][(t >>>  8) & 0x3f] |
           SPtrans[5][(t >>> 16) & 0x3f] |
           SPtrans[7][(t >>> 24) & 0x3f] |
           SPtrans[0][(u       ) & 0x3f] |
           SPtrans[2][(u >>>  8) & 0x3f] |
           SPtrans[4][(u >>> 16) & 0x3f] |
           SPtrans[6][(u >>> 24) & 0x3f];

      return(L);
   }

   private static final int [] body(int schedule[], int Eswap0, int Eswap1)
   {
      int left = 0;
      int right = 0;
      int t     = 0;

      for(int j = 0; j < 25; j ++)
      {
         for(int i = 0; i < ITERATIONS * 2; i += 4)
         {
            left  = D_ENCRYPT(left,  right, i,     Eswap0, Eswap1, schedule);
            right = D_ENCRYPT(right, left,  i + 2, Eswap0, Eswap1, schedule);
         }
         t     = left; 
         left  = right; 
         right = t;
      }

      t = right;

      right = (left >>> 1) | (left << 31);
      left  = (t    >>> 1) | (t    << 31);

      left  &= 0xffffffff;
      right &= 0xffffffff;

      int results[] = new int[2];

      PERM_OP(right, left, 1, 0x55555555, results); 
      right = results[0]; left = results[1];

      PERM_OP(left, right, 8, 0x00ff00ff, results); 
      left = results[0]; right = results[1];

      PERM_OP(right, left, 2, 0x33333333, results); 
      right = results[0]; left = results[1];

      PERM_OP(left, right, 16, 0x0000ffff, results);
      left = results[0]; right = results[1];

      PERM_OP(right, left, 4, 0x0f0f0f0f, results);
      right = results[0]; left = results[1];

      int out[] = new int[2];

      out[0] = left; out[1] = right;

      return(out);
   }

   public static final String crypt(String salt, String original)
   {
      while(salt.length() < 2)
         salt += "A";

      StringBuffer buffer = new StringBuffer("             ");

      char charZero = salt.charAt(0);
      char charOne  = salt.charAt(1);

      buffer.setCharAt(0, charZero);
      buffer.setCharAt(1, charOne);

      int Eswap0 = con_salt[(int)charZero];
      int Eswap1 = con_salt[(int)charOne] << 4;
 
      byte key[] = new byte[8];

      for(int i = 0; i < key.length; i ++)
         key[i] = (byte)0;

      for(int i = 0; i < key.length && i < original.length(); i ++)
      {
         int iChar = (int)original.charAt(i);

         key[i] = (byte)(iChar << 1);
      }

      int schedule[] = des_set_key(key);
      int out[]      = body(schedule, Eswap0, Eswap1);

      byte b[] = new byte[9];

      intToFourBytes(out[0], b, 0);
      intToFourBytes(out[1], b, 4);
      b[8] = 0;

      for(int i = 2, y = 0, u = 0x80; i < 13; i ++)
      {
         for(int j = 0, c = 0; j < 6; j ++)
         {
            c <<= 1;

            if(((int)b[y] & u) != 0)
               c |= 1;

            u >>>= 1;

            if(u == 0)
            {
               y++;
               u = 0x80;
            }
            buffer.setCharAt(i, (char)cov_2char[c]);
         }
      }
      return(buffer.toString());
   }

   public static void main(String args[])
   {
      if(args.length >= 2)
      {
         System.out.println
         (
            "[" + args[0] + "] [" + args[1] + "] => [" +
            JCrypt.crypt(args[0], args[1]) + "]"
         );
      }
   }
}

java框架php实现 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

大型网站中,php和java是怎么结合的

PHP+JAVA的架构,特别是对于有复杂的用户交互及高并发及后端还有复杂的业务的网站来说,如电商类网站,前端用PHP,可以做到快速开发,部署不用重启,同时nginx + fastcgi + php的组合也是经得起高并发考验的。后端的复杂业务处理(如订单处理,购物车,库存相关的)使用java来做实在是太合适了。不信你可以试试! 我爱编程网

以上就是我爱编程网为大家带来的java框架php实现 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低,希望能帮助到大家,更多相关信息,敬请关注我爱编程网!
与“java框架php实现 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低”相关推荐
java和php框架吗 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低
java和php框架吗 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低从系统功能来看,这个应该算是企业应用,系统不是从大小来区分是不是企业系统的,而是从功能。何为企业应用,即是针对物质资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)集成一体化的企业管理软(ERP)。CRM即客户关系管理系统,是面向客户的。下面说一下我对jav

2023-09-15 11:21:18
php+java+框架整合 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低
php+java+框架整合 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

java方向web开发的常用框架组合有哪些?java方向web开发的常用框架组合有哪些?开源的几大框架就是Strutshibernatespring这三个也是企业最经常拿来搭配的还有JSF啦webwork等一些较老的框架.Java的web开发有哪些框架目前主流的javaWeb框架有:持久层hibernate、mybatie、ibaties,表示层主要是struts2、sp

2023-09-22 21:28:02
php中的lava框架 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低
php中的lava框架 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

php跟java有什么区别PHP和Java是两种完全不同的编程语言,它们有以下几个区别:语法和编程范式:PHP是一种脚本语言,其语法类似于C语言,主要用于Web开发。而Java是一种面向对象的编程语言,其语法类似于C++,主要用于构建大型应用程序和服务端开发。PHP是一种解释性语言,而Java则是一种编译型语言。执行效率:由于PHP是解释型语言,它的执行速度比Java慢

2023-09-21 14:48:01
php进销存管理系统框架 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低
php进销存管理系统框架 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低从系统功能来看,这个应该算是企业应用,系统不是从大小来区分是不是企业系统的,而是从功能。何为企业应用,即是针对物质资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)集成一体化的企业管理软(ERP)。CRM即客户关系管理系统,是面向客户的。下面说一下我对jav

2023-10-06 23:50:08
适合做erp的php框架 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低
适合做erp的php框架 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

erp系统用什么结构的开发方法?现在开发ERP软件的技术主要是B/S结构也可以理解为web结构技术开发,是一种基于浏览器载体的框架,包含前端、后端和数据库三个大的方向,各个方向的技术框架都不一样。现在主流的技术包含.NET、SqlServer、Bootstrap等,也有专门ERP软件开发技术平台,至于用什么开发平台最合适,可以参考下ERP软件开发技术平台ERP软件技术开发平台W

2023-10-03 03:54:06
php开发erp用什么框架合适 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低
php开发erp用什么框架合适 印刷行业进销存web项目,在php与java中,用什么样的框架能开发效率更高学习成本维护成本更低

都用的什么erp系统快速开发平台?learun快速开发平台是一个net开发框架,通过图形化、可视化的简单拖拉设置操作,快捷设计出我们所需的表单、APP、流程、报表等,可开发任意管理信息系统,包括EIP(企业信息门户)、ERP、HR、OA、CRM、EAI(企业应用集成)、MIS、JXC、电子政务平台、信息资源管理系统、数据挖掘分析报表等软件系统印刷行业进销存web项目,在php与jav

2023-10-04 02:44:06
php框架比原生速度 PHP的开发效率比java要高,为什么现在java这么流行?
php框架比原生速度 PHP的开发效率比java要高,为什么现在java这么流行?

PHP的开发效率比java要高,为什么现在java这么流行?首先,你说的PHP比Java开发速度快,这点是在业内达成共识的,Java薪资这块普遍比PHP的高,开发效率反而更慢,这点也是实际情况。那为什么导致这种“倒挂”现象呢?在这里我们具体分析一下两者的特点优劣:1、开发速度上:在开发速度上,PHP开发起来比Java要快,所以项目周期也会缩短。因为PHP内置函数库是很强大的,它

2023-09-23 01:19:39
php框架比原生速度对比 PHP的开发效率比java要高,为什么现在java这么流行?
php框架比原生速度对比 PHP的开发效率比java要高,为什么现在java这么流行?

php框架中的方法与原生sql语句的区别,面试的时候被问到这个问题。php框架中的方法最终也是要被框架解析成sql语句来执行的,如果使用原生的sql效率会高一些,但是失去了一些灵活性和安全性(比如框架在解析的时候可能会对数据做安全性检查,唯一性检查等等,这就是使用框架的好处)在php框架中,是用框架提供的方法函数还是用原生php代码写,哪个效率高?同样逻辑下hp框架本身就是由原生的ph

2023-09-25 07:41:52