第一个Struts2实例之hello world!
Struts官网:http://struts.apache.org/
Struts2框架预先实现了一些功能
1:请求数据自动封装
2:文件上传的功能
3:对国际化功能的简化
4:数据校验的功能
第一:首先需要说明的是Struts就是基于MVC模式的框架!(struts其实也是servlet封装,提高开发效率!)
第二:Struts开发步骤:
1. web项目,引入struts - jar包
2. web.xml中,引入struts的核心功能,配置过滤器
3. 开发action
4. 配置action --->src/struts.xml
下面详细介绍一下第一个struts2的开发流程:
1. 创建动态web项目,引入struts - jar包(这里引入8个jar包,如下所示。很容易就可以得到就不分享了哦)

commons-fileupload-1.3.1.jar 【文件上传相关包】
commons-io-2.2.jar
commons-lang3-3.1.jar 【struts对java.lang包的扩展】
freemarker-2.3.19.jar 【struts对标签模板库jar文件】
javassist-3.11.0.GA.jar 【struts对字节码的处理相关jar】
ognl-3.0.6.jar 【Ognl表达式功能支持表】
struts2-core-2.3.16.3.jar 【struts2核心功能包】
xwork-core-2.3.16.3.jar 【xwork核心包】
2. 在web.xml中,引入struts的核心功能,配置过滤器(已经加了注释,不作多叙述)
Tomcat启动---》加载自身web.xml---》加载所有项目的web.xml
通过在项目的web.xml中引入过滤器
struts2的核心功能的初始化,是通过过滤器完成的。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>struts2_20170219</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <!-- 其他过滤器 --> <!-- 引入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>
</web-app>
此处插一句,配置过滤器的时候,filter-class里面的内容我是这样获取的,因为写法是死的,如图,仅供参考。
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

双击点开之后,复制此句即可。

3. 开发action,此处习惯继承了ActionSupport.
package com.bie; import com.opensymphony.xwork2.ActionSupport; /**
* @author BieHongLi
* @version 创建时间:2017年2月19日 下午3:08:53
* 开发action,处理请求
*/
public class HelloAction extends ActionSupport{ private static final long serialVersionUID = 1L; /**
* 重写execute,处理请求的方法
*/
@Override
public String execute() throws Exception {
System.out.println("访问到了action,正在 处理请求");
System.out.println("hello world!!! struts2");
return SUCCESS;
} }
4. 配置action --->src/struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<!-- 生命包 -->
<package name="helloWorld" extends="struts-default">
<!-- 定义action -->
<action name="hello" class="com.bie.HelloAction" method="execute">
<!-- 显示成功的jsp页面 -->
<result name="success">success.jsp</result>
</action>
</package>
</struts>
配置struts.xml的时候使用下面的模板,在上面直接进行加工即可。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> </struts>
最后了,当然直接运行就行了,结果如下所示:

这个是在浏览器运行的结果:

第一个Struts2实例之hello world!的更多相关文章
- 开发一个struts2的实例
前面一篇博客(实现struts2框架)带大家对基于mvc业务流程熟悉了一下,现在我们就用对mvc实现最好的框架struts2来开发一个应用实例.虽然现在MyEclipse8.5以上版本已经开始支持St ...
- Struts2实例详解(转载)
Struts2(上) 一. 经典的MVC模式 二. Struts1.x对MVC的实现 三. Struts1.x的主要组件和作用 组件 作用 ActionSer ...
- Struts2 实例(转载)
一.准备工作及实例 1.解压struts-2.1.6-all.zip apps目录:struts2自带的例子程序docs目录:官方文档. lib 目录:存放所有jar文件. Src 目录:源文件存放地 ...
- Android 只开启一个Activity实例
在一个Activity中,多次调用startActivity()来启动另一个Activity,要想只生成一个Activity实例,方法有两种. 方法一:设置起动模式 一个Activity有四种启动模式 ...
- 将oracle冷备份恢复到另外一个数据库实例中
因更换服务器需要将Oracle数据库转移到另外台Oracle中.说明: 1.测试环境为:windows server2003 和 oracle 10g. 2.2台服务器安装的程序目录一样,数据目录不一 ...
- 第一个python实例--监控cpu
#第一个python实例:监控cpu #/bin/bash/env Python from __future__ import print_function from collections impo ...
- 第一个Struts2程序之HelloWorld
1.Struts2 简介 Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架.其全新的Struts 2的体系结构与St ...
- servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解1
servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解 (2013-06-19 19:30:40) 转载▼ servlet的非线程安全,action的线程安全 对提交 ...
- 12C RAC中的一个数据库实例自动crash并报ORA-27157、ORA-27300等错误
rhel7.2上安装12C RAC数据库后,其中一个数据库实例经常会自动crash.查看alert日志发现以下错误信息: Errors in file /d12/app/oracle/diag/rdb ...
随机推荐
- 所有HTTP请求参数及报文查看SERVLET【原】
HttpRequestServlet.java 说明: 用于接受所有http形式的请求,并把接受到的request中param及getInputStream全打印出来. package king.se ...
- Vue.js入门系列教程(二)
过滤器:filter 全局过滤器 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- luogu 1030 求先序遍历
此题给出中序遍历和后序遍历后的序列,乍一看确乎想不出法子解决,毕竟是逆向思维: 但是后序遍历的特殊性质 son1,son2,x 使得后序的末尾便是根节点,再由中序天然的递归性质便可递归输出,用下fin ...
- 完整版ffmpeg使用情况
protected void Page_Load(object sender, EventArgs e) { string filePath = @"D:/Prjects/MT147/exa ...
- JavaScript之原型|typeof|instanceof
//var 变量X --> 对象 --> 构造器 --> 原型对象 function Person(){}; var stu = new Person(); //var stu = ...
- Managers经理/代理形式的数据共享
代理方式实现进程间共享字典和列表形式的数据, 代码块: import os from multiprocessing import Process,Manager def f(d,l,normalLi ...
- 使用css将图像居中
默认情况下,图像属于内联元素.这意味着它们与周围的文本一起流动.为使图像居中,我们应该将其转换成块级元素,通过将display属性的值设置为block就可以完成转换. <html> < ...
- Database学习 - mysql数据类型
MySQL数据类型 可以被分为3类: 1.整型,数值类型 2.日期和时间类型 3.字符串(字符)类型 整型(INT) 数据类型 大小 M(默认值) 范围(有符号) 范围(无符号) 用途 tinyint ...
- [转]mmap和madvise的使用
1. madvise的简介 madvise可以设置内存的分配方式或者说是分配的细节方式.具体参见linux man madvise. #include <sys/ty ...
- latex 字体大小设置
tex 设置字体大小命令由小到大依次为: \tiny \scriptsize \footnotesize \small \normalsize \large \Large \LARGE \huge \ ...