基于MVC设计模式的Web应用框架:struts2的简单搭建(一)
Struts2的初步介绍
Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴、京东等互联网、政府、企业门户网站。虽然之前存在了很大的安全漏洞,在2013年让苹果、中国移动、中国联通、百度、腾讯、
淘宝、京东、Sohu、民生银行等大型企业的网站均遭毒手。但这也恰恰说明struts2框架在当前应用的优越性,那么到底什么是struts2呢?
Struts2 是目前较为普及和成熟的基于MVC设计模式的web应用程序框架,它不仅仅是Struts1 的升级版本,更是一个全新的Struts架构。最初,是以WebWork框架和Struts框架为基础,通过提供
增强和改进的Struts框架,进而实现简化web技术人员开发工作的目标。不久之后,Webwork框架和Struts社区联合创造了现在流行的Struts2框架。
如果有同学想了解更多的内容的话,推荐大家查看https://www.w3cschool.cn/struts_2/,这里,我们直接进入主题:
1.在搭建struts2之前,首先我们要确保struts2的运行环境正确无误。这里就不多说了,本项目用到的运行环境为:
- JDK 1.8
- Eclipes(IDE)
- Tomcat 7.0
2.如果第一步的运行环境搭建好了,最好能下载最新版本的Struts2 二进制文件,下载地址为http://struts.apache.org/download.cgi ,在编写本博客时我下载的是 struts-2.5.13-all.zip,当然如果大家害怕后续出现运行时异常,也可以下载这一版本。下载完毕后将压缩包解压。
3.创建一个动态Web项目,启动你的Eclipse,然后打开“File”>“New”>“Dynamic Web Project”,输入的项目名称,比如struts2-test2

4.从解压好的Struts2文件下的lib文件夹中拷贝以下文件到项目 WEB-INF\lib 文件夹。
- commons-fileupload-1.3.3.jar
- commons-io-2.5.jar
- commons-lang-2.5.jar
- commons-lang3-2.5.jar
- commons-logging-1.1.3.jar
- freemarker-2.3.26-incubating.jar
- javassist-3.20.0-GA.jar
- log4j-api-2.8.2.jar
- ognl-3.1.15.jar
- struts2-core-2.5.14.jar
(如果大家没有选择下载和我一样的Struts2版本,那么就找到对应的版本号的jar包)
5.按照如图所示,创建相应的文件

1).UserAction.java
package com.nine;
public class UserAction {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() throws Exception {
return "success";
}
}
UserAction.java 的execute方法返回的结果,要对应struts2.xml<result name=" ">中name映射的结果。
2).struts2.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 name="hello"
class="com.nine.UserAction"
method="execute">
<result name="success">/hello.jsp</result>
</action>
</package>
</struts>
struts2配置文件要注意的是:
1. <action name="hello ">中的内容要与index.jsp的 <form action="hello" >相一致。
2.<action method="execute">中的内容对应了 UserAction中的方法 execute。
3.<package name="helloworld"> 为package的唯一标识,可以随便填写,只要保证它的唯一性 。
4.<action class="com.nine.UserAction">为jsp表单映射对应的Java文件。
3).web.xml
<?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"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
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>Struts 2</display-name>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list> <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>
<filter-class></filter-class>中的内容是部署描述符(web.xml)中,Struts2 应用程序的接入点会定义为一个过滤器为 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
*并非所有的struts过滤器都是通过上述过滤器完成的,如果有同学在运行时发现找不到这个.class 就查一下对应版本的struts中对应得过滤器是如何定义的
4).index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>Hello World From Struts2</h1>
<form action="hello" method="post">
<label for="name">Please enter your name</label><br/>
<input type="text" name="name"/>
<input type="submit" value="Say Hello"/>
</form>
</body>
</html>
5).hello.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello World, <s:property value="name"/>
</body>
</html>
6.右键点击项目名称,接着点击“Export”>“WAR File”创建WAR文件,然后将WAR部署到Tomcat的webapps目录中。最后,启动Tomcat服务器并尝试访问URL http://localhost:8080/struts2-test2/index.jsp

输入任意内容,比如 “大圣”

不知道大家完成的怎么样了,如果出现问题,可以在下面进行留言,我会为大家进行解答.
基于MVC设计模式的Web应用框架:struts2的简单搭建(一)的更多相关文章
- Struts2是一个基于MVC设计模式的Web应用框架
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. Struts ...
- 基于MVC和Bootstrap的权限框架解决方案 一.搭建HTML
因为某些原因,因为需要,最新要做一套客户管理系统,但是不满足于仅有的框架. 看了很多大牛写的框架,强大是强大,代码也太TM多了,乱七八糟话不多说,开始吧 随便在网上找到一套好看的HTML,看起来还不错 ...
- 1.0、Struts2的简单搭建方法
一.Struts2:是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet:用于jsp页面与Java代码之间的交互. 1.核心:Filter拦截器,对所有的请求进行拦截. 2.工作 ...
- 【原创翻译】认识MVC设计模式:web应用开发的基础(实际编码篇)
原文地址:http://www.larryullman.com/2009/10/15/understanding-mvc-part-3/ 全系列INDEX [原创翻译]认识MVC设计模式:web应用开 ...
- 试读《基于MVC的JavaScript Web富应用开发》— 不一样的JavaScript
前言 <基于MVC的JavaScript Web富应用开发>是ItEye在7月份发起试读的书.下载了试读的章节,发现只有全本的开始到第二章,第一章很简洁明了地讲述了JavaScript的历 ...
- iOS 基于MVC设计模式的基类设计
iOS 基于MVC设计模式的基类设计 https://www.jianshu.com/p/3b580ffdae00
- 基于Selenium+Python的web自动化测试框架
一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- JavaWeb:基于MVC设计模式的一个小案例(一)
(未经允许,请勿转载,谢谢.) 本案例的处理过程: 客户端发送一个请求给服务器,服务器把这个请求给Servlet,Servlet 获取请求信息,根据请求信息的情况去调用 model (在这里是一个普通 ...
随机推荐
- Inno Setup打包注意事项
Inno Setup是一个开源的,商业的,快捷的脚本打包工具. 具体打包流程根据界面提示就可以搞定,下面讲解几个注意事项 1.在安装包进行安装的过程当中,很多程序都需要修改配置信息,这就要求我们在安装 ...
- Spring装配Bean之组件扫描和自动装配
Spring从两个角度来实现自动化装配: 组件扫描:Spring会自动发现应用上下文中所创建的bean. 自动装配:Spring自动满足bean之间的依赖. 案例:音响系统的组件.首先为CD创建Com ...
- 进程池与线程池(concurrent.futures)
from concurrent.futures import ProcessPoolExecutor import os,time,random def task(n): print('%s is r ...
- 64、django之模型层(model)--建表、查询、删除基础
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...
- struts2国际化相关问题
国际化资源文件的方式: Action范围的 包范围的 临时的 全局的(推荐) 一.配置全局的国际化资源文件 1.在类路径下,创建国际化资源文件 baseName.properties baseName ...
- 07-从零玩转JavaWeb-对象内存分析
上篇看了关于数组的内存分析,接下来看一下对象的内存分析 假定有如下类: 第一步会把Person的字节码放到方法区 执行main方法,把main方法的栈帧放到栈当中 Person zly = ...
- 【初学者必读】能让你月薪过万的5大web前端核心技能
前言Web前端开发所涉及的内容主要包括W3C标准中的结构.行为和表现,那么这三项中我们需要掌握的核心技能是什么呢?看小编来为你揭开谜底的. 1.开发语言 HTML发展历史有二十多年,历经多次版本更新, ...
- HDU1255覆盖的面积
覆盖的面积 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- setup 命令中防火墙配置选项无法打开
故障提示 1.1 如何让setup 命令中防火墙配置生效 1.1.1 CentOS系统找不到setup命令工具的解决方法 yum -y install setuptool #安装setup命令工具 y ...
- C# into子句
可使用 into 上下文关键字创建临时标识符,将 group.join 或 select 子句的结果存储至新标识符. 此标识符本身可以是附加查询命令的生成器. 有时称在 group 或 select ...