JavaEE——JavaWeb介绍

本文介绍了JavaWeb的概念及其在互联网技术中的应用,并详细对比了C/S架构与B/S架构的特点与适用场景,同时对这两种架构下的数据请求类型进行了说明。

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

JavaWeb介绍

JavaWeb也就是J2EE,JavaWeb主要是使用各种Java企业级技术来解决相关web互联网领域的技术总和。
而且这些技术有一个标准也就是J2EE规范,J2EE规范是这样定义J2EE组件的:客户端应用程序和applet是运行在客户端的组件;Java Servlet和Java Server Pages (JSP) 是运行在服务器端的Web组件;Enterprise Java Bean (EJB )组件是运行在服务器端的业务组件。J2EE组件和“标准的” Java类的不同点在于:它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由J2EE服务器对其进行管理。
所以web包括:web服务器和web客户端两部分。Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。
常见的技术有以下几种:

image

程序架构通常分为C/S和B/S架构:

C/S架构:

现在最常见的两种程序架构方式就是C/S和B/S架构,C/S也就是Client/Server架构,即客户端/服务器架构。是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。客户端和服务器端的程序不同,用户的操作主要在客户端,服务器端主要是提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。
所以C/S架构的程序对能够减轻服务器压力,而且客户端是安装在用户本地的电脑上,调用本地的一些硬件设备就比较方便,适合用于大型游戏、音频软件、各种工具类软件的程序架构方式。
但是C/S架构也有缺点,升级更新还有维护比较麻

### 如何基于JavaEE创建JavaWeb项目 #### Maven构建工具的应用 在现代Java Web开发中,Maven是一个非常重要的构建工具。通过Maven可以方便地管理依赖项并简化项目的配置过程。使用IntelliJ IDEA作为集成开发环境(IDE),可以通过内置的向导快速创建一个基于Maven的Java Web项目[^1]。 以下是具体的实现方式: 1. **创建Maven项目** 打开IDEA后,在新建项目界面选择`Maven`选项,并勾选`Create from archetype`来加载标准模板。推荐使用的模板为`maven-archetype-webapp`,这是专门为Java Web应用设计的基础架构。 2. **设置POM文件** 在`pom.xml`中定义所需的依赖库以及插件。对于典型的Java EE应用程序来说,至少需要引入Servlet API和其他必要的组件。例如: ```xml <dependencies> <!-- Servlet API --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- JSP Support --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <!-- Other dependencies as needed... --> </dependencies> ``` 3. **配置web.xml** `web.xml`是传统的Java Web应用的核心配置文件之一。尽管Spring Boot提倡无XML的方式,但在纯Java EE环境下仍然广泛采用这种方式来进行初始化参数设定、过滤器注册等工作。下面展示了一个简单的例子: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>com.example.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> ``` 4. **编写业务逻辑代码** 接下来按照实际需求完成各个模块的功能编码工作。比如处理HTTP请求的服务端程序片段如下所示: ```java package com.example; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorldServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.getWriter().println("<h1>Hello World!</h1>"); } } ``` --- #### 图片上传功能扩展 如果希望增强系统的功能性,则可以在上述基础之上增加诸如图片上传这样的高级特性。这通常涉及前端页面设计、服务器端接收数据解析以及持久化存储路径等方面的工作[^2]。 示例代码展示了如何利用Apache Commons FileUpload库来捕获客户端提交过来的大文件对象并将它们保存至指定位置的同时记录其访问链接地址到关系型数据库表单里去。 ```java import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; // ... other imports ... protected void doPost(HttpServletRequest request, HttpServletResponse response) throws Exception{ String uploadPath = getServletContext().getRealPath("") + "/uploads"; DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List<FileItem> items = upload.parseRequest(request); for(FileItem item : items){ if(!item.isFormField()){ String fileName = FilenameUtils.getName(item.getName()); File uploadedFile = new File(uploadPath , fileName); item.write(uploadedFile); // Save URL to DB here... } } } ``` --- #### SSM框架整合建议 当项目规模逐渐扩大时,单独依靠原生API可能显得力不从心。此时可考虑引入更加成熟的解决方案——SSM组合框架[^3]。其中包含三个核心部分:Spring用于容器管理和事务控制;Spring MVC负责表现层交互流程编排;而MyBatis则专注于ORM映射从而降低SQL语句硬编码带来的风险。 最后附上一篇关于校园车辆管理系统案例分析的文章摘要供参考学习之用[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值