java web

Java Web工程转换为基于Maven的Web工程 最近接到通知,阿里集团统一要求把历史项目迁移到阿里生产环境中来,而咱手头这个项目是2012年的老项目,普通java web工程,不能部署进生产环境,得把这个工程转为maven工程。本篇文章记录了java web工程转为maven web工程的整个纪录。 阅读详情

 

传统的java web应用程序是采用jsp+servlet+javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责显示的 jsp、负责流程逻辑控制的servlet、负责数据封装的javabean。但是这种结构仍然存在问题:如jsp页面中需要使用<% %>符号嵌入很多的java代码,造成页面结构混乱,servlet和javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低等等。 

于是先出现了struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个jsp页面负责数据的输入和输出显示,还有一个Form类负责传递Action和jsp中间的数据。jsp中可以使用 struts框架提供的一组标签,就像使用html标签一样简单,但是可以完成非常复杂的逻辑。从此jsp页面中不需要出现一行<%%>包围的java代码了。 

可是所有的运算逻辑都放在struts的Action里将使得Action类复用度低和逻辑混乱,所以通常人们会把整个web应用程序分为三层,struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。 

使用jdbc连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的sql语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。 

这时出现了hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。然后我们****作时,只需要去****作这些持久化类,而不用再关注数据库表。我们不用再去一行行的查询数据库,只需要 ****作持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用hibernate比jdbc方式减少了80%的编程量。 

现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的struts需要调用一个业务类,就需要new一个业务类出来,然后使用;业务层需要调用持久层的类,也需要new一个持久层类出来用。通过这种new的方式互相调用就是软件开发中最糟糕设计的体现。简单的说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。 

为此,出现spring框架,它的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以spring框架最核心的就是所谓的依赖注射和控制反转。 

现在的结构是,struts负责显示层,hibernate负责持久层,spring负责中间的业务层,这个结构是目前国内最流行的Java Web应用程序架构了。另外,由于Spring使用的依赖注射以及AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于Spring自己也实现了一个使用依赖注射的MVC框架,叫做Spring MVC,同时为了很好的处理事物,Spring集成了hibernate,使事物管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。 

struts框架是2000年就开始起步了,到目前已经发展了5年,技术相当成熟,目前全球Java开发中Struts框架是显示层技术中当之无愧的王者。它拥有大量的用户群和很好的开发团队。这也是国内大部分Java软件公司对新进员工的基本要求,所以我强烈推荐学弟学妹们掌握struts技术,这对你们的就业会很有好处的。 
可以到 http://struts.apache.org/下载最新版的struts框架,好像最新的是1.2.7。 

Java Web系列:Java Web 项目基础 Session在存储安全性要求较高的会话信息方面是必不可少的,Session当然绝对不是用来存储用户登录状态的,但类似验证码等敏感信息却必须存储在Session中。对于分布式Web应用自定义Session支持独立的状态服务器或集群是必须的。 阅读详情

相关推荐

Java Web环境搭建

Java Web 介绍 Java Web是用Java技术来解决web领域的技术,需要运行在特定的web服务器上,Java Web是跨平台的,可以在不同的平台上进行部署运行。 开发环境准备 编辑器:Eclipse或MyEclipse、Idea等 JDK版本1.8以上 服务器:Tomcat 兼容性问题 我们安装软件的时候要注意电脑的兼容性问题 搭建环境 首先我们安装好,Eclipse、JDK和Tomcat 下载JDK 1、什么是jdk? JDK是 Java 语言的软件.

weixin_62270300的博客 2634

web legend标签,

健康信息 身高: 体重: 如果表单周围没有边框,说明您的浏览器太老了。

longyuan20102011的专栏 1222

基于树莓派5的AR头显开发:从硬件选型到Unity整合全解析

增强现实(AR)技术通过将虚拟信息叠加到真实世界,为用户提供沉浸式交互体验。其核心原理依赖于计算机视觉进行环境感知与空间定位,并结合实时3D渲染实现虚实融合。在工程实践中,嵌入式平台因其低成本、低功耗特性,成为探索AR应用边界的重要载体。本项目以树莓派5为核心,通过集成OpenCV进行ArUco标记识别实现精准空间定位,并利用MediaPipe完成手势交互,最终在Unity引擎中完成虚实场景的实时渲染与融合,为开发者提供了一个完整的、可亲手实践的AR系统开发方案。

weixin_32430941的博客 254

Spring框架的演变

什么是Spring 如果想要解释Spring,那么最难的部分就是对其进行分类。通常情况下,Spring被描述为构建Java应用程序的轻量级框架,但这种描述带来了两个有趣的观点。 首先,与许多其他框架(比如仅限于Web应用程序的Apache Struts)不同,可以使用Spring构建Java中的任何应用程序(例如,独立的应用程序、Web应用程序或JEE应用程序)。 其次,该描述中轻量级的,因...

weixin_30856725的博客 290

从零构建NVENC编码器:一个游戏开发者的实战手册

本文详细介绍了如何从零构建NVENC编码器,特别针对游戏开发者提供实战指南。内容涵盖NVENC基础概念、DirectX纹理捕获、异步编码优化及高级特性配置,帮助开发者高效集成硬件编码技术到游戏引擎中,实现高性能游戏录制和直播功能。重点解析了NVIDIA专用编码芯片的优势与API使用技巧。

weixin_29292431的博客 365

详解电路设计中的RC电路

​ 一、什么是RC电路 RC电路是指由电阻R和电容C组成的电路,它是脉冲产生和整形电路中常用到 的电路。 常见的RC充、放电电路、RC积分电路合RC微分电路接下来详细讲解。 二、RC充、放电电路 RC充、放电电路如下图所示,下面通过充电和放电两个过程来分析此电路。 ​RC充、放电电路图 (1)RC充电电路 RC充电电路图如下图(a)所示 RC充电电路图及充电曲线图 ​由上图分析: 将上图a中开关S置于“1”处,电源E开始通过电阻R对电容C充电,由于刚开始充电时电容两端没有..

IT xiaobai 4万+

Java Web简介

第一章 什么是Web应用程序 1.1.Java Web是什么 Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet不过现在使用的很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。 1.2.Web应用程序 1、Web应用程序是一种可以通过Web访问的应用程序。 2、Web应用程序的一个最大好处是用户可以很容易访问应用

Bland New 的博客 4048

树莓派教程(基于python编程)--入门篇

一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 http://downloads.raspberrypi.org/raspbian_latest 三:烧录SD卡 使用Win32DiskImager将镜像烧录到格式化后的SD卡 SD卡盘根目录(/boot)下新建一个命名为ssh的...

qq_42109746的博客 6万+

python web-Java web 和 Python web??

个人认为,Java属于高大上的编程语言,虽然语言在泛型方面不够完整,但是却比较靠谱,企业级应用也最为广泛。python属于小而美,适合做一些内聚性很强的工具。两种编程语言各有优势,下面我按照自己的理解简单说下Java web开发和Python web开发的区别:Python的好处是开发、部署都很快,变更起来很容易,代码量小所以抛弃起来也很容易,不容易背上历史负担;如果你是稳扎稳打写了几百个Java...

weixin_37988176的博客 3802

博客系统 - 系统简介与首页设计

用Bootstrap实现手机端的博客导航栏效果。

m0_53450409的博客 1237

机器学习: 共轭梯度算法(PCG)

今天介绍数值计算和优化方法中非常有效的一种数值解法,共轭梯度法。我们知道,在解大型线性方程组的时候,很少会有一步到位的精确解析解,一般都需要通过迭代来进行逼近,而 PCG 就是这样一种迭代逼近算法。 我们先从一种特殊的线性方程组的定义开始,比如我们需要解如下的线性方程组: Ax=bAx=b 这里的 A(n×n)A(n×n) 是对称,正定矩阵, b(n×...

weixin_30807677的博客 3181

java web 教程_Java Web服务教程

java web 教程Welcome to the Java Web Services Tutorial. Here we will learn about web services, useful concepts in web services and then different types of API we have in Java to create web services. 欢迎使...

从零开始的教程世界 400

wsl --install 不执行,显示帮助信息

在安装使用wsl的时候碰到了wsl --install 不执行,而显示帮助信息,提供了解决方案。

水滴爬呀爬 2771

Java Web Start

在当今软件行业不断增长的市场中,用户越来越要求客户端应用程序不仅可以从桌面环境运行,而且可以从Internet运行。 用户希望从基于Web的应用程序获得与从台式机获得的功能和支持相同的功能和支持,最好是与瘦客户端接口集成在一起。 当前,最常见的解决方案是开发两个单独的Java应用程序:一个作为桌面应用程序执行,另一个模拟桌面应用程序的许多功能,但是可以通过Web访问。 这给开发人员带来了负担,...

cusi77914的博客 1801

安卓讲课笔记1.1 安装Android Studio

1. 能安装配置Android Studio; 2. 能创建安卓虚拟机(AVD); 3. 能创建简单安卓应用

howard2005的专栏 3360

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python和java做web开发_Java web 和 Python web??

个人认为,Java属于高大上的编程语言,虽然语言在泛型方面不够完整,但是却比较靠谱,企业级应用也最为广泛。python属于小而美,适合做一些内聚性很强的工具。两种编程语言各有优势,下面我按照自己的理解简单说下Java web开发和Python web开发的区别:Python的好处是开发、部署都很快,变更起来很容易,代码量小所以抛弃起来也很容易,不容易背上历史负担;如果你是稳扎稳打写了几百个Java...

weixin_39637545的博客 3100

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

学java web_你为什么要学Java Web

在开始这一篇章时,不禁停下写技术的敲着键盘的双手,听着跳跃的音乐,深思,为何我们要学java web,我们为什么要学技术,这些繁琐的代码,层出不穷的新东西,安卓,UNity3d,spring,git,我们一直在追的,总是也被远远落下,那我们学的意义如何,也需要停下来想一想。我是一个大四学生,身为985的学校的学子,却有着深深的危机感,计科出身,身为在这个领域男性们的领导们的世界,作为一个女生是否...

weixin_36371924的博客 1128

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java web环境_java web

HTTP Status 500 - Request processing failed; nested exception is java.lang.NullPointerExceptionHTTP Status 500 - Request processing failed; nested exception is java.lang.NullPointerExceptiontype Excep...

weixin_42513988的博客 279

基于Java的Web应用

 8年前,Java诞生;8年后,Java技术日渐成熟,Java应用也遍地开花!无论是在企业级、移动,甚至太空飞行器等应用中,您都可以见到Java的身影。在这些应用领域中,基于Java的Web应用一枝独秀,从一开始就得到普遍的认可和关注,相关的研究也不断深入。原因在于Java、XML、Web 服务虽然是网络应用开发的三个不同层次,但相互之间却有机地联系在一起:XML与Java的结合使互联网的内容集成

zaowei21的专栏 2388

java web start

Java Web Start 并不是一个库或工具,而是一个已经废弃的技术。它曾经是 Java 的一部分,用于简化 Java 应用程序的部署和启动,但随着技术的发展,它已经被废弃了。从 Java 9 开始,Oracle 宣布 Java Web Start 不再是 Java SE 的一部分,并且在后续版本中逐渐被移除。

qq_62784677的博客 787

java python web开发_web开发java VS python

一、基本概念和知识点1、web server:实现了http协议的tcp服务器2、application server:实现程序逻辑的服务器3、web container:提供基础支持的容器4、proxy:代理,client与目标之间的中介5、https:安全传输层协议(TLS)之上的http6、servlet处理资源请求的程序逻辑,程序员自己处理多用户导致多线程问题7、ServletContex...

weixin_30798867的博客 2649

java web怎么学_初学Java Web开发应该如何学习

Web框架是开发者在使用某种语言编写Web应用服务端项目时关于架构的最佳实践。很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处理有关,形成一个基础,在开发别的应用项目的时候则可以从这个剥离出来的基础做起,让开发者更关注更具体的业务问题,而不是Web的请求和响应的控制。框架很多,但套路基本类似,帮你隐藏很多关于HTTP协议细节内容,专注功能开发。但对一个初学者来说,过早的接触框...

weixin_33174392的博客 802

go web java web_Java, Go web server

1. 使用java, go自带web serverjava语言版本参考http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/package-summary.html 的 A minimal Http server examplepac...

weixin_32691823的博客 138
上一篇: the Art of java中的HTTP下载管理器
下一篇: java应该掌握些什么呢?
legendmoheNote
博客等级 码龄16年 12粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值