Struts2《一》

Struts1的核心控制器就是Servlet,随着功能的迭代,弊端开始出现。Struts2与Struts1差别很大,因为Struts2采用的是WebWork核心设计。Struts2采用大量的拦截器处理用户请求,从而允许业务逻辑控制器与Servlet API分离。
Struts2在MVC三层架构中的位置,只是表现层的解决方案,与业务层和持久层没有关系

环境配置

从struts官网下载最新的struts的jar包,从example项目中解压struts-blank的war包拷贝所需要的一些jar。

在web.xml中配置过滤器


	struts2
	org.apache.struts2.dispatcher.FilterDispatcher


	struts2
	/*

注意:自2.1.3版本开始,ActionContextCleanUp和FilterDispatcher都由StrutsPrepareAndExecuteFilter代替。

配置struts.xml





	
		
			welcome.jsp
		
	


Struts2处理流程

  • 浏览器发送action请求
  • 核心控制器FilterDispatcher根据请求决定调用合适的Action
  • WebWork的拦截器自动请求应用通用功能,例如workflow,validation或文件上传等功能
  • 回调Action的execute方法,该execute方法先获取用户请求参数,然后执行某种数据库操作,既可以将数据保存至数据库,也可以从数据库中检索信息。实际上,因为Action只是一个控制器他会调用业务逻辑组件来处理用户的请求。
  • Action的execute方法处理结果信息将被输出到浏览器中,可以是Html页面、图像,也可以说pdf文档或其他文档。此时支持的视图技术非常多,既支持JSP,也支持Velocity、FreeMarker等模板技术。

Struts2标签

在JSP页面我们可以通过

<%@ taglib prefix="s" uri="/struts-tags" %>

导入Struts2标签库,和JSTL标签库类似。

  • form:对应一个表单元素。
  • checkbox:对应一个复选框元素。
  • password:对应一个密码输入框。
  • radio:对应一个单选框元素。
  • reset:对应一个重设按钮。
  • select:对应一个下拉列表框。
  • submit:对应一个提交按钮。
  • textarea:对应一个多行文本域。
  • textfield:对应一个单行文本框。

你可能感兴趣的:(JavaWeb)