与struts1框架的使用一样,struts2的环境搭建及使用同样分为以下几个步骤:

1.      引入jar包(这里以struts2.2.3为例),所需jar包有以下几个:

a)        struts2-core-2.2.3.jar

b)        xwork-core-2.2.3.jar

c)        commons-io-2.0.1.jar

d)        commons-lang-2.5.jar

e)        commons-fileupload-1.2.2.jar

f)         freemarker-2.3.16.jar

g)        ognl-3.0.1.jar

h)        javassist-3.12.0.GA.jar(hibernate同样需要)

2.      配置web.xml文件。所有的web项目都是以web.xml文件为起点的,所有的起始配置都在这个文件中进行,而所谓的起始配置则是指在服务器启动时所读取的配置。比如我们经常所用到的框架的配置,servlet的配置,filter的配置等信息。Struts2的web.xml文件与struts1的有所不同,使用struts1框架时用servlet标签进行配置来关联项目和框架,而使用struts2用的是filter标签来关联项目和框架。总的来说原理相同,都是通过映射来制定哪些类型的页面需要交给框架去处理(在下文实例中会具体给出配置信息)。

3.      需要被框架核心类读取的xml文件的配置。在struts1中这个xmL文件名称为struts-config,而struts2中该文件的名称为struts.xml。名字的差异无关紧要,重要的是该文件中的配置信息有所不同,主要在于Struts-config中我们定义了很多的ActionForm以及Action类,这些Action必须继承ActionServlet抽象类,但是在struts2中已经没有了ActionForm这个概念,原先ActionForm所承担的职责已经被转移到Action中,并且struts2中的Action支持完全的POJO对象,当然也可以继承相应的ActionSupport类。

完成了上面的配置后接下来就是编写我们的Action类了,下面通过一个登陆实例来介绍struts2的使用。

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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>SSH5</display-name> <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>

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> <constant name="struts.action.extension" value=","></constant> <package name="testLogin" namespace="/" extends="struts-default">
<action name="login" class="com.action.LoginAction">
<result name="success">/user.jsp</result>
<result name="error" type="redirect">/error.jsp</result>
<result name="checkError">/checkSession.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package> </struts>

LoginAction类:

package com.action;

import com.entity.User;
import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private User user; public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} @Override
public String execute() throws Exception {
if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
System.out.println("登录成功");
return "success";
}else{
System.out.println("登录失败");
return "error";
}
}
}

最后是jsp页面代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="login">
登录页面<br>
用户名:<input name="user.username" type="text" ><br>
密码:<input name="user.password" tyep="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>

上述登录实例的执行过程为当启动TomCat的时候TomCat首先加载web.xml,根据web.xml中的配置信息由

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter类读取struts.xml中的信息,然后根据web.xml文件中规定的拦截文件路径确定哪些页面将会交由struts框架进行处理,一般配置成/*,表示将对所有的页面进行出拦截处理,然后根据jsp页面中的提交路径以及struts.xml文件中的配置信息确定该页面将提交给哪个Action。当所提交的请求被Action处理后,将根据执行结果返回相应的字符串,根据返回值将决定具体的跳转页面。

Struts2环境搭建及实例解析的更多相关文章

  1. 最新版ssh hibernate spring struts2环境搭建

    最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...

  2. springmvc环境搭建及实例

    一. 软件环境 eclipse-jee-mars-R-win32-x86_64 jdk1.7.0_79 apache-tomcat-7.0.52 spring-framework-3.2.0.RELE ...

  3. Scala深入浅出实战经典---001-Scala开发环境搭建和HelloWorld解析

    001-Scala开发环境搭建和HelloWorld解析 Scala 函数式编程和面向对象结合的语言 函数式编程擅长数值计算 面向对象擅长大型工程和项目的组织以及团队的分工协作 Scala会是下一个伟 ...

  4. 第3章 Struts2框架--1、Struts2环境搭建

    第3章 Struts2框架--1.Struts2环境搭建 搭建步骤: 1.从下载http://struts.apache.org 没找到Struts2.3.16版,就下载了2.3.29 2.拷贝后解压 ...

  5. Struts2(一)---struts2的环境搭建及实例

    刚刚接触struts2,有点懵懵懂懂,还是习惯于先写代码,然后慢慢来理解其中的思想. 这篇文章主要内容是strusts的环境搭建及通过一个简单的例子来理解到底是怎么使用struts来简化编程的. 1. ...

  6. 【Struts 2】Struts2环境搭建

    一.关键步骤 1.创建Java Web项目 2.引入Struts2的依赖包,将依赖包拷贝到WEB-INF/lib下 * commons-logging-1.0.4.jar * freemarker-2 ...

  7. struts2环境搭建和第一个程序

    环境搭建 项目目录 导入依赖jar包,如上图lib目录所示. 不同的版本可能会不一样,没关系在tomcat启动时,如果报错java.lang.ClassNotFoundException,我们可以按照 ...

  8. monkeyrunner之环境搭建及实例(三)

    Monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器. 一.Monkeyrunner简介 1.MOnkeyrunner相对Mo ...

  9. 【SSH】 之 Struts2环境搭建及简单应用开发

    在上一篇文章中,我们一起了解了一下struts2的工作机制原理,接下来让我们进行一下简单应用的开发 (一)配置环境 1.建立web项目 2.导入jar包 其中struts2中有很多jar包,我们不需要 ...

随机推荐

  1. Codeforces 749E Gosha is hunting 二分+DP

    很神奇的一题 看完题解不由惊叹 题意:$n$个神奇宝贝 $a$个普通球 $b$个高级球 普通球抓住$i$神奇宝贝的概率为$u[i]$ 高级球为$p[i]$ 一起用为$u[i]+p[i]-u[i]*p[ ...

  2. springmvc学习总结(二) -- maven+springmvc+spring+mybatis+mysql详细搭建整合过程讲解

    @_@ 写在最前 之前分享过下面这几篇: mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上)(附demo和搭建过程遇到的问题解决方法) myba ...

  3. UVALive 6916 Punching Robot dp

    Punching Robot 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid= ...

  4. 使用 IntraWeb (6) - 页面模板: TIWLayoutMgrHTML、TIWTemplateProcessorHTML

    IW 通过 TIWLayoutMgrHTML 和 TIWTemplateProcessorHTML 使用 HTML 模板. 所谓模板就是一个特殊 HTML 文件, 特殊之处是: 它里面会类似 {% I ...

  5. spring-boot 速成(9) druid+mybatis 多数据源及读写分离的处理

    按上节继续学习,稍微复杂的业务系统,一般会将数据库按业务拆开,比如产品系统的数据库放在product db中,订单系统的数据库放在order db中...,然后,如果量大了,可能每个库还要考虑做读.写 ...

  6. svn 迁移到 git 仓库并保留 commit 历史记录

    1.svn 转换为 git(会提示,让你输入先前 svn 的账号与密码) # 切换至 本地项目目录 cd /Users/jianbao/PhpStormProjects/fiisoo/ # 克隆 sv ...

  7. Cygwin、MinGw、mingw-w64,MSys msys2区别与联系

    https://www.biaodianfu.com/cygwin-ming-msys.html http://www.mingw-w64.org/doku.php http://blog.csdn. ...

  8. Matlab 7.1安装及打不开问题解决

    一.安装方法   1.解压[MATLAB.V7.1.Windows版本号].MATLAB.V7.1.R14.SP3.CD1.iso,双击setup进行安装,输入username,单位,找到crac ...

  9. 未经处理的异常:System.Net.Sockets.SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试

    报错:未经处理的异常:System.Net.Sockets.SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试 → 尝试以"管理员身份"运行程序, ...

  10. ASP.NET Web API实践系列03,路由模版, 路由惯例, 路由设置

    ASP.NET Web API的路由和ASP.NET MVC相似,也是把路由放在RouteTable中的.可以在App_Start文件夹中的WebApiConfig.cs中设置路由模版.默认的路由模版 ...