Struts1基于Servlet实现 Servlet线程不安全 & Struts2基于Filter实现 Servlet线程安全 基于webwork

下载Struts2
Struts2基础实例&架构
Struts2基础实例&架构
直接把struts-2.3.24-all\struts-2.3.24\lib拷贝太过于冗余

①解压struts-2.3.24-all.zip
②进入struts-2.3.24-all\struts-2.3.24\apps\
③解压struts2-blank.war(无法解压把文件后缀改为zip)
④进入WEB-INF\lib\下 拷贝此目录所有jar包

Hibernate笔记有详细记录eclipse断网xml提示功能

struts2实例

创建TestAction类

public class TestAction {
	public String test() {
		System.out.println("Test Struts2");
		return "success";
	}
}

在项目src下创建名为struts.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>

	<!-- i18n:国际化 解决post提交乱码 -->
	<constant name="struts.i18n.encoding" value="UTF-8"></constant>
	<!-- 
		指定访问action时的后缀名
			http://localhost:8080/Test/one/TestAction.do
	-->
	<constant name="struts.action.extension" value="do"></constant>
	<!-- 
		指定struts2是否以开发模式运行
			热加载主配置(不需重启即可生效) 提供更多错误信息输出 方便开发时的调试
	 -->
	<constant name="struts.devMode" value="true"></constant>

	<!-- package:将Action配置封装 就是可以在Package中配置很多action
			name属性:给包起个名字 起到标识作用 随便起 不能其他包名重复
			namespace属性:给action的访问路径中定义一个命名空间
			extends属性:继承一个 指定包
			abstract属性:包是否为抽象的 标识性属性 标识该包不能独立运行 专门被继承
	  -->
	<package name="one" namespace="/one" extends="struts-default" >
		<!-- action元素:配置action类
				name属性:决定了Action访问资源名
				class属性:action的完整类名
				method属性:指定调用Action中的哪个方法来处理请求
		 -->
		<action name="TestAction" class="com.java.TestAction" method="test" >
			<!-- result元素:结果配置
					name属性:标识结果处理的名称 与action方法的返回值对应
					type属性:指定调用哪一个result类来处理结果 默认使用转发
					标签体:填写页面的相对路径
			-->
			<result name="success" type="dispatcher" >/index.jsp</result>
		</action>
	</package>
	<!-- 引入其他struts配置文件 -->
	<include file="com/java/struts.xml"></include>
</struts>

在项目WebContent下创建index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>Success</p>
</body>
</html>

struts基于Filter 需要配置web.xml

<!-- struts2核心过滤器 -->
<filter>
	<filter-name>struts2</filter-name>
	<filter-class>
		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
	</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
浏览器访问 http://localhost:8080/Test/one/testAction.do
Console打印 "Test Struts2" 浏览器显示 "Success" 说明测试成功

struts架构
Struts2基础实例&架构
Struts2基础实例&架构
Filter在Servlet执行之前执行 Interceptor在Action执行前执行

相关文章: