8.5. 常用Web框架(如Spring MVC、Struts等)
2023/6/4 23:22:11
本文主要是介绍8.5. 常用Web框架(如Spring MVC、Struts等),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在Java Web开发中,通常使用Web框架简化开发过程。以下是两个常用的Java Web框架:Spring MVC和Apache Struts。
8.5.1. Spring MVC
Spring MVC是Spring框架的一部分,它是一个基于Java的企业级Web应用程序开发框架。Spring MVC提供了一种基于MVC设计模式的简化Web应用程序开发的方法。它具有以下特点:
- 灵活性:支持多种视图技术,包括JSP、Thymeleaf、FreeMarker等。
- 易于集成:与其他Spring模块(如Spring Data、Spring Security等)无缝集成。
- 可扩展性:提供了许多接口和抽象类,可以根据需求自定义功能。
一个简单的Spring MVC示例
在这个例子中,我们将创建一个简单的Spring MVC Web应用程序,实现一个用户登录功能。
- 首先,创建一个Maven项目,并在
pom.xml
中添加Spring MVC依赖:
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.10</version> </dependency> </dependencies>
- 创建一个名为
LoginController
的控制器类:
import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class LoginController { @GetMapping("/login") public String showLoginForm() { return "login"; } @PostMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password, Model model) { if ("admin".equals(username) && "password".equals(password)) { model.addAttribute("username", username); return "welcome"; } else { model.addAttribute("errorMessage", "Invalid username or password"); return "login"; } } }
- 在
src/main/resources
目录下创建一个名为application.properties
的配置文件,设置Spring MVC视图解析器的前缀和后缀:
spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp
- 在
src/main/webapp/WEB-INF/views
目录下创建login.jsp
和welcome.jsp
文件:
login.jsp
:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Login</title> </head> <body> <h1>Login</h1> <form action="login" method="post"> <label for="username">Username:</label> <input type="text" id="username" name="username" required> <br> <label for="password">Password:</label> <input type="password" id="password" name="password" required> <br> <input type="submit" value="Login"> </form> <p style="color:red;">${errorMessage}</p> </body> </html>
welcome.jsp
:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Welcome</title> </head> <body> <h1>Welcome, ${username}!</h1> </body> </html>
- 创建Spring MVC的配置类:
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration @EnableWebMvc @ComponentScan(basePackages = "com.example") public class WebConfig implements WebMvcConfigurer { @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } }
- 创建Web应用程序的初始化类:
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override protected Class<?>[] getRootConfigClasses() { return null; } @Override protected Class<?>[] getServletConfigClasses() { return new Class[]{WebConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } }
现在,您可以运行此Web应用程序并访问http://localhost:8080/login
,输入正确的用户名和密码(如admin和password),然后看到欢迎页面。
8.5.2. Apache Struts
Apache Struts是一个用于创建Java Web应用程序的开源框架。Struts采用了MVC设计模式,具有以下特点:
- 简化开发:提供了许多内置功能,如表单验证、国际化等。
- 可扩展性:支持拦截器、插件等,可以根据需求扩展功能。
- 社区支持:拥有庞大的用户社区和丰富的文档。
一个简单的Struts示例
在这个例子中,我们将创建一个简单的Struts Web应用程序,实现一个用户登录功能。
- 创建一个Maven项目,并在
pom.xml
中添加Struts依赖:
<dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.26</version> </dependency> </dependencies>
- 创建一个名为
LoginAction
的Action类:
import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private String username; private String password; // Getter and setter methods for username and password @Override public String execute() { if ("admin".equals(username) && "password".equals(password)) { return SUCCESS; } else { addActionError("Invalid username or password"); return INPUT; } } }
- 在
src/main/resources
目录下创建一个名为struts.xml
的配置文件,定义Action和视图:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="default" extends="struts-default"> <action name="login" class="com.example.LoginAction"> <result name="input">/login.jsp</result> <result name="success">/welcome.jsp</result> </action> </package> </struts>
- 在
src/main/webapp
目录下创建login.jsp
和welcome.jsp
文件:
login.jsp
:
<%@ taglib prefix="s" uri="/struts-tags" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Login</title> </head> <body> <h1>Login</h1> <s:form action="login"> <s:textfield name="username" label="Username" required="true"/> <s:password name="password" label="Password" required="true"/> <s:submit value="Login"/> </s:form> <s:actionerror/> </body> </html>
welcome.jsp
:
<%@ taglib prefix="s" uri="/struts-tags" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Welcome</title> </head> <body> <h1>Welcome, <s:property value="username"/>!</h1> </body> </html>
- 在
src/main/webapp/WEB-INF
目录下创建一个名为web.xml
的配置文件,配置Struts Filter:
<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"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
现在,您可以运行此Web应用程序并访问http://localhost:8080/login.jsp
,输入正确的用户名和密码(如admin和password),然后看到欢迎页面。
8.5.3. 比较Spring MVC和Apache Struts
尽管Spring MVC和Apache Struts都是Java Web开发中常用的框架,但它们之间有一些区别:
-
集成:Spring MVC是Spring框架的一部分,与其他Spring模块(如Spring Data、Spring Security等)无缝集成。而Struts是一个独立的框架,需要与其他框架或库一起使用。
-
灵活性:Spring MVC提供了更多的灵活性,支持多种视图技术,如JSP、Thymeleaf、FreeMarker等。而Struts主要支持JSP。
-
社区支持:Spring MVC由于其广泛的应用和强大的功能,拥有更大的社区支持和丰富的文档。Struts框架的社区支持和文档相对较少。
-
易用性:Spring MVC配置起来相对复杂一些,但提供了更多的自定义选项。Struts的配置相对简单,但可能在某些情况下不够灵活。
总之,根据项目需求和团队经验,选择合适的框架是非常重要的。您可以根据以上比较,选择最适合您的Java Web框架。在实际开发过程中,还可以尝试其他Java Web框架,如JavaServer Faces(JSF)、Play Framework等。
在学习Spring MVC或Apache Struts时,请务必参考官方文档和示例项目,以便更好地理解框架的原理和用法。现在,您已经对两个常用的Java Web框架有了一定的了解,可以开始进行实际的项目开发了。祝您学习顺利!
这篇关于8.5. 常用Web框架(如Spring MVC、Struts等)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10百万架构师第十三课:源码分析:Spring 源码分析:Spring核心IOC容器及依赖注入原理|JavaGuide
- 2025-01-10便捷好用的电商API工具合集
- 2025-01-09必试!帮 J 人团队解决物流错发漏发的软件神器!
- 2025-01-09不容小觑!助力 J 人物流客服安抚情绪的软件!
- 2025-01-09为什么医疗团队协作离不开智能文档工具?
- 2025-01-09惊叹:J 人团队用啥软件让物流服务快又准?
- 2025-01-09如何利用数据分析工具优化项目资源分配?4种工具推荐
- 2025-01-09多学科协作难?这款文档工具可以帮你省心省力
- 2025-01-09团队中的技术项目经理TPM:工作内容与资源优化策略
- 2025-01-09JIT生产管理法:优化流程,提升竞争力的秘诀