`

推荐几个自己写的Java后端相关的范例项目

阅读更多

推荐几个自己写的范例项目

这里推荐几个自己写的范例项目,主要采用SSM(Spring+SpringMVC+Mybatis)框架,分布式架构采用的是(dubbo+zookeeper)。范例项目的好处是简单易懂,在架构一个新的项目的时候可以直接当成脚手架来用,方便快速开发,另外项目中涉及到以及未来可能涉及到的知识点都会不断完善。

三个项目是互相发展而来的,依次为(不断完善中):

一、优雅的SSM架构(Spring+SpringMVC+Mybatis)

Github地址:https://github.com/wosyingjun/beauty_ssm

架构图:

二、对"优雅的SSM框架"进行完善(页面分离+nginx负载均衡+tomcat集群)

Github地址:https://github.com/wosyingjun/beauty_ssm_cluster

架构图:

三、将"优雅的SSM框架"拆分为分布式架构(基于dubbo+zookeeper)

Github地址:https://github.com/wosyingjun/beauty_ssm_dubbo

Dubbo的简单介绍和部署:http://wosyingjun.iteye.com/blog/2320127

架构图:

29
2
分享到:
评论
53 楼 aguai0 2018-04-03  
厉害了
52 楼 liwenjie 2017-08-30  
找不到数据库初始化脚本
51 楼 fhxmn14991 2017-03-19  
楼主什么时候更shiro权限啊
50 楼 淡淡的伤你 2017-02-03  
  
49 楼 zhncug 2017-01-16  
请问博主有数据库创建脚本么
48 楼 追梦少年蒋富贵 2016-11-13  
楼主赶快完善啊
47 楼 kcidh10 2016-11-07  
这分享的精神必须要为楼主点10086个赞。。希望楼主把这精神继续传播下去
46 楼 w156445045 2016-10-03  
博主很强大,期待更新,期待更完美的东西
45 楼 wulinzhizun0624 2016-09-11  
测试  testDistributedTransaction 这个方法,走到int count = goodsDao.reduceNumber(goodsid);一直报错,造成死锁了,为什么呢?

2016-09-11 17:50:32,083 ERROR[com.alibaba.dubbo.rpc.filter.ExceptionFilter:87]-  [DUBBO] Got unchecked and undeclared exception which called by 192.168.222.1. service: com.yingjun.ssm.api.goods.service.GoodsService, method: testDistributedTransaction, exception: org.springframework.dao.CannotAcquireLockException:
### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: UPDATE _goods    SET    number = number -1   WHERE   goods_id = ?   AND state = 1   AND number >0;
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
; SQL []; Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction, dubbo version: 2.8.4, current host: 192.168.222.1
org.springframework.dao.CannotAcquireLockException:
### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: UPDATE _goods    SET    number = number -1   WHERE   goods_id = ?   AND state = 1   AND number >0;
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
; SQL []; Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:259)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:447)
at com.sun.proxy.$Proxy18.update(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:295)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:59)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)
at com.sun.proxy.$Proxy19.reduceNumber(Unknown Source)
at com.yingjun.ssm.api.goods.service.impl.GoodsServiceImpl.testDistributedTransaction(GoodsServiceImpl.java:143)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy24.testDistributedTransaction(Unknown Source)
at com.alibaba.dubbo.common.bytecode.Wrapper1.invokeMethod(Wrapper1.java)
at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)
at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)
at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)
at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:70)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:132)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:113)
at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)
at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)
at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)
at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
44 楼 titohuang 2016-08-08  
wosyingjun 写道
titohuang 写道
请问下,第2个结构当中,若html需要获取session中数据怎么处理好点,ajax请求感觉不太好

纯html无法直接获取Session,还是得通过后台请求获取,建议一般的session用cookie实现。

好的,谢谢。主要场影一般是判断用户是否已经登录,若已经登录就获取当前用户信息
43 楼 huailongs 2016-08-05  
huailongs 写道
wosyingjun 写道
huailongs 写道
有几个问题想请教:
0:服务容器启动、加载、运行服务提供者

q:您指的服务提供者是图上左边的server_user这些provider吗?
   服务容器指的是tomcat这些java服务器容器吗?
   我看了您提供的代码,比如beautyssm_service_user这个项目,打包成为jar文件了,那通过哪个服务容器运行这个jar文件提供服务?

5:服务消费者和提供者,在内存中累计消费次数和消费时间,定时每分钟发送一次统计数据到统计中心

q:在内存中累计消费次数和消费时间这个,这个动作是dubbo来统计实现?还是service_user 或者web_user来实现?如果是后者,怎么发送数据到统计中心?
   您提供的代码,好像没有实现页面,也没有实现接口的相关数据统计?

谢谢!

1、服务提供者不需要Tomcat等Web容器,避免资源的浪费,服务的启动直接通过Main方法,并加载一个简单的Spring容器,用于暴露服务。你看beautyssm_service_user这个项目中的pom文件中的built部分就知道他是怎么启动的了。
2、dubbo服务有Monitor功能,每次调用服务时都能统计到数据,具体见:https://github.com/alibaba/dubbo/tree/master/dubbo-monitor


了说的是这里吗?beautyssm_service_user这个服务由com.alibaba.dubbo.container.Main
来启动?更迷糊了

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classesDirectory>target/classes/</classesDirectory>
<archive>
<manifest>
<mainClass>com.alibaba.dubbo.container.Main</mainClass>
<!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
<useUniqueVersions>false</useUniqueVersions>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>


解释是在这里吗?
http://blog.csdn.net/xiaomin1991222/article/details/50981354
42 楼 huailongs 2016-08-05  
wosyingjun 写道
huailongs 写道
有几个问题想请教:
0:服务容器启动、加载、运行服务提供者

q:您指的服务提供者是图上左边的server_user这些provider吗?
   服务容器指的是tomcat这些java服务器容器吗?
   我看了您提供的代码,比如beautyssm_service_user这个项目,打包成为jar文件了,那通过哪个服务容器运行这个jar文件提供服务?

5:服务消费者和提供者,在内存中累计消费次数和消费时间,定时每分钟发送一次统计数据到统计中心

q:在内存中累计消费次数和消费时间这个,这个动作是dubbo来统计实现?还是service_user 或者web_user来实现?如果是后者,怎么发送数据到统计中心?
   您提供的代码,好像没有实现页面,也没有实现接口的相关数据统计?

谢谢!

1、服务提供者不需要Tomcat等Web容器,避免资源的浪费,服务的启动直接通过Main方法,并加载一个简单的Spring容器,用于暴露服务。你看beautyssm_service_user这个项目中的pom文件中的built部分就知道他是怎么启动的了。
2、dubbo服务有Monitor功能,每次调用服务时都能统计到数据,具体见:https://github.com/alibaba/dubbo/tree/master/dubbo-monitor


了说的是这里吗?beautyssm_service_user这个服务由com.alibaba.dubbo.container.Main
来启动?更迷糊了

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classesDirectory>target/classes/</classesDirectory>
<archive>
<manifest>
<mainClass>com.alibaba.dubbo.container.Main</mainClass>
<!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
<useUniqueVersions>false</useUniqueVersions>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
41 楼 wosyingjun 2016-08-05  
titohuang 写道
请问下,第2个结构当中,若html需要获取session中数据怎么处理好点,ajax请求感觉不太好

纯html无法直接获取Session,还是得通过后台请求获取,建议一般的session用cookie实现。
40 楼 titohuang 2016-08-05  
请问下,第2个结构当中,若html需要获取session中数据怎么处理好点,ajax请求感觉不太好
39 楼 HYc789110 2016-08-04  
lz 你pom文件好像是少了依赖啊,ProtoStuffSerializerUtil的import com.dyuproject.protostuff.LinkedBuffer;和import com.dyuproject.protostuff.Schema;都没有进来,找不到jar包,我自己加了个api的依赖就不报错,tomcat跑是能跑起来,但是访问user/list却报错了com.protostuff classnotfound的错,不知道怎么回事
38 楼 wosyingjun 2016-08-04  
huailongs 写道
有几个问题想请教:
0:服务容器启动、加载、运行服务提供者

q:您指的服务提供者是图上左边的server_user这些provider吗?
   服务容器指的是tomcat这些java服务器容器吗?
   我看了您提供的代码,比如beautyssm_service_user这个项目,打包成为jar文件了,那通过哪个服务容器运行这个jar文件提供服务?

5:服务消费者和提供者,在内存中累计消费次数和消费时间,定时每分钟发送一次统计数据到统计中心

q:在内存中累计消费次数和消费时间这个,这个动作是dubbo来统计实现?还是service_user 或者web_user来实现?如果是后者,怎么发送数据到统计中心?
   您提供的代码,好像没有实现页面,也没有实现接口的相关数据统计?

谢谢!

1、服务提供者不需要Tomcat等Web容器,避免资源的浪费,服务的启动直接通过Main方法,并加载一个简单的Spring容器,用于暴露服务。你看beautyssm_service_user这个项目中的pom文件中的built部分就知道他是怎么启动的了。
2、dubbo服务有Monitor功能,每次调用服务时都能统计到数据,具体见:https://github.com/alibaba/dubbo/tree/master/dubbo-monitor
37 楼 huailongs 2016-08-03  
有几个问题想请教:
0:服务容器启动、加载、运行服务提供者

q:您指的服务提供者是图上左边的server_user这些provider吗?
   服务容器指的是tomcat这些java服务器容器吗?
   我看了您提供的代码,比如beautyssm_service_user这个项目,打包成为jar文件了,那通过哪个服务容器运行这个jar文件提供服务?

5:服务消费者和提供者,在内存中累计消费次数和消费时间,定时每分钟发送一次统计数据到统计中心

q:在内存中累计消费次数和消费时间这个,这个动作是dubbo来统计实现?还是service_user 或者web_user来实现?如果是后者,怎么发送数据到统计中心?
   您提供的代码,好像没有实现页面,也没有实现接口的相关数据统计?

谢谢!
36 楼 Nick_Wing 2016-07-28  
HYc789110 写道
HYc789110 写道
lz我在导入tomcat7的时候出现了问题,add不到tomcat里面去“Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules”,我百度了下,说是setting里面改个xml文件,但是我在setting里面没有那个文件,我看了下别的项目,也缺了几个文件,从别的项目里复制过来,但还是加不到tomcat里面去,这是什么问题啊?

我自己解决了,那个xml里配置版本高了,改成3.0就能加入tomcat


哥们 你用tomcat 发布成功了么?有没有遇到我上面提到的问题的?
35 楼 Nick_Wing 2016-07-28  
你好,第一个项目用外置的tomcat发布,会一直有一个如下所示的错误:
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

但是我的maven以来里面是存在的,而且切入到对应的项目properties中修改Deployment Assembly,把maven依赖全部import了进去,还是一样的错误,请问你还有遇到过这样的问题
34 楼 HYc789110 2016-07-28  
HYc789110 写道
lz我在导入tomcat7的时候出现了问题,add不到tomcat里面去“Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules”,我百度了下,说是setting里面改个xml文件,但是我在setting里面没有那个文件,我看了下别的项目,也缺了几个文件,从别的项目里复制过来,但还是加不到tomcat里面去,这是什么问题啊?

我自己解决了,那个xml里配置版本高了,改成3.0就能加入tomcat

相关推荐

    Java项目技术标书范例(适合陪标).docx

    【Java项目技术标书范例】是一份专为初次撰写标书的人群设计的文档,主要针对Java软件项目的投标过程,旨在提供一个清晰、全面的技术方案框架。在编写技术标书时,通常需要涵盖以下几个核心知识点: 1. **设计依据...

    JAVA上百实例源码以及开源项目源代码

    数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...

    (优质)程序员转正答辩ppt

    在【(优质)程序员转正答辩ppt@www.java1234.com.pptx】中,我们可以预期包含以下几个关键知识点: 1. **项目经验**:通常,程序员会介绍在试用期间参与的项目,包括项目的目标、自己的职责、遇到的技术挑战以及...

    基于java的班级管理项目设计与实现(项目报告+项目设计与实现).zip

    项目报告部分,即“java项目说明报告(班级管理系统).doc”,通常会涵盖以下几个方面: 1. **项目背景**:介绍项目的目的,可能包括解决学校或教育机构在班级管理中遇到的问题,提升管理效率等。 2. **需求分析**...

    JAVA毕业设计之springboot高校校园点餐系统项目(springboot完整源码+说明).zip

    这个JAVA毕业设计项目是一个基于springboot的高校校园点餐系统,旨在帮助学校管理食堂订单和食材库存,同时方便学生和教职工进行在线点餐和外卖服务。整个项目包含了完整的源码和详细的说明文档。该系统主要包含以下...

    JAVA项目开发案例全程实录 第五章

    **需求分析阶段**主要包括以下几个方面: 1. **图书信息管理**:包括图书添加、删除、查询等功能。 2. **读者信息管理**:能够处理读者注册、登录、个人信息维护等操作。 3. **借阅管理**:实现图书借阅、归还以及...

    毕业设计范例-电子商务系统

    前台是用户与系统交互的主要界面,它通常包含了以下几个关键模块: 1. **产品展示**:这一模块是电子商务系统的核心,它展示了各种商品信息,包括图片、价格、描述、库存状态等。在技术实现上,通常会使用Java ...

    dwr入门学习第一课范例

    在这个“dwr入门学习第一课范例”中,我们将探讨如何使用DWR来实现以下几个关键功能: 1. **用户名检测**:在用户注册页面,实时检查输入的用户名是否已存在。这通常通过Ajax技术实现,DWR可以简化这一过程。服务器...

    JSP范例宝典万年历

    在这个教程中,我们可以期待学到以下几个关键知识点: 1. **JSP基础**:了解JSP的基本结构,包括指令(Directives)、脚本元素(Scriptlets)、表达式(Expressions)以及声明(Declarations)。这些元素如何组合在...

    毕业设计论文范例

    在论文撰写方面,一份合格的毕业设计论文应该包含以下几个部分:摘要、引言(背景、意义、研究目标)、相关工作、方法与实现(详细设计和实现过程)、实验与结果分析(展示功能、性能测试和效果对比)、结论以及参考...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用06

    在"Struts2+Hibernate+Spring整合开发深入剖析与范例应用06"中,我们可能涉及以下几个关键知识点: 1. **Struts2框架**:Struts2是一个强大的MVC框架,用于构建动态Web应用。它的核心是Action类,它处理HTTP请求并...

    SSM项目医院院内物资管理系统.zip

    7. **功能模块**:医院院内物资管理系统通常包含以下几个核心模块: - 物资入库:管理物资的接收、验收和登记。 - 物资出库:记录物资的消耗、借出和归还情况。 - 库存管理:实时监控物资库存,预警低库存状态。 ...

    医院住院部信息管理系统【JSP,JAVA论文,毕业设计范文】

    医院住院部信息管理系统可能包含以下几个核心模块: 1. **患者管理**:登记患者信息,包括姓名、性别、年龄、病历号等,同时支持患者信息的查询、修改和删除。 2. **病房管理**:管理病房资源,包括病房类型、床位...

    JSP电子商务网站(范例)

    在这个范例中,网站的后端主要由JSP和SERVER SQL构成,尽管描述中提到可以将其与不同的数据库系统进行适配,但原始设计可能已针对特定的数据库进行了优化。 JSP的核心概念包括: 1. **JSP标签**:在页面中使用 ...

    JSP+SQL高校毕业论文设计范例

    具体到提供的文件名称,我们可以看到以下几个常见的信息系统设计主题: 1. 《物流信息网》论文:这个项目可能涉及货物跟踪、订单管理、仓库管理等物流业务流程,需要通过JSP实现前端界面,SQL进行数据存储和检索。 ...

    java-script

    这个过程通常涉及以下几个步骤: - **获取数据**:首先需要从数据库中获取表记录。这可以通过 Ajax 调用或者后端提供 JSON 数据接口实现。 - **构建表格**:接着使用 HTML 和 CSS 创建表格结构,并利用 JavaScript ...

    jsp程序开发范例宝典 第十一章

    在这一章中,我们将会探讨以下几个核心知识点: 1. **自定义标签(Custom Tags)**:自定义标签是JSP的一种扩展机制,允许开发者创建自己的可重用组件。通过定义TLD(Tag Library Descriptor)文件,我们可以创建...

    jsp基于Web的可维护的数据库浏览器(源代码+论文+答辩PPT).zip

    论文部分可能会涵盖以下几个方面: 1. **背景与动机**:解释为什么选择开发这样的数据库浏览器,以及其在实际应用中的价值。 2. **技术选型**:分析为何选择JSP作为开发语言,以及JSP相对于其他Web开发技术的优势...

    网上商城毕业论文范例.doc

    论文的核心内容涵盖了以下几个关键知识点: 1. **B/S三层结构**:此系统采用的是典型的三层架构,包括表现层(浏览器)、业务逻辑层(JavaBean)和数据访问层(数据库)。表现层负责用户交互,业务逻辑层处理业务...

    jsp物流信息网建设(源代码+论文)_毕业设计.zip

    从这个项目中,我们可以学习到以下几个重要的知识点: 1. JSP基础:JSP是一种动态网页技术,用于在服务器端生成HTML,结合了Java语言的强大功能和HTML的易用性。学习者可以了解如何在JSP页面中嵌入Java代码,以及...

Global site tag (gtag.js) - Google Analytics