在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依赖:
org.springframework
spring-webmvc
5.3.10
- 创建一个名为
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
:
Login
Login
${errorMessage}
welcome.jsp
:
Welcome
Welcome, ${username}!
- 创建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依赖:
org.apache.struts
struts2-core
2.5.26
- 创建一个名为
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和视图:
/login.jsp
/welcome.jsp
- 在
src/main/webapp
目录下创建login.jsp
和welcome.jsp
文件:
login.jsp
:
Login
Login
welcome.jsp
:
Welcome
Welcome, !
- 在
src/main/webapp/WEB-INF
目录下创建一个名为web.xml
的配置文件,配置Struts Filter:
struts2
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
struts2
/*
现在,您可以运行此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框架有了一定的了解,可以开始进行实际的项目开发了。祝您学习顺利!
推荐阅读:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
MEC208 Instrumentation and Control SystemS2, 2022-2023Computer Lab (Lab 2):Control System CAD and CAS using MATLABDr. Chee Shen LI…