`
sunday132
  • 浏览: 51159 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

Struts2学习——Hello Struts

阅读更多

初学Struts2在这里写一个简单的客户端表单提交用户名密码来登陆的例子。

创建struts2项目步骤:
1.导入Structs2的核心包。
2.修改web.xml添加Filer配置。
3.编写DAO
4.编写Action
5.编写前台页面
6.创建struts.xml,必须放在src目录下。


1.导入必须的lib包
struts2-core-2.0.6.jar
freemarker-2.3.15
xwork-2.0.1.jar
ognl-2.6.11.jar
commons-fileupload-1.2.1.jar
commons-io1.3.2.jar


2.添加struts过滤器
找到WEB-INF里面的web.xml文件,添加struts2的过滤器,使得Struts2可以运行起来并过滤性的捕获客户端事件。

<!-- 定义Struts2的核心过滤器 -->
<filter>
<!-- 过滤器的名字 -->
<filter-name>struts2</filter-name>
<!-- 过滤器的实现类 -->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<!-- /* 表示用struts2处理所有的Web请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

 

3.编写DAO
 这里没有用到暂时省略

 

4.编写Action
    4.1 What is Action
    Action是Struct2用来处理客户端请求事件的对象。在默认情况下Struts2对每个请求线程都使用独立的Action实例去执行的。在自己编写Action时,需要实现com.opensymphony.xwork2.Action 接口,但不实现接口也可以,只要去实现一个函数原型为public abstract String execute() throws Exception;的方法即可。(个人觉得还是实现Action接口看起来比较明白)

    4.2 Struts2处理用户请求的三种方式
        1. 直接在Action中定义属性接收用户提交信息。
        2. 利用POJO访问(个人愚笨的理解为POJO就是一个最简化JavaBean)。将用户提交信息全部定义在POJO中而不是             Action中,这样实现Action与用户提交信息的解耦。
        3. 使用ModelDriben模式接收用户使用。


   4.3实现前两种处理请求的方式。
   第一种方式处理:直接在Action中耦合客户端参数

package com.action1;

import com.opensymphony.xwork2.Action;

/**
 * 验证登陆
 * 
 * @author Luke Chen
 * @date 2010-7-10
 */
public class LoginAction1 implements Action {

    // 定义的数据成员的名称必须完全对应客户端提交的参数名
    private String username;

    private String password;

    public String getUsername() {
	return username;
    }

    public void setUsername(String username) {
	this.username = username;
    }

    public String getPassword() {
	return password;
    }

    public void setPassword(String password) {
	this.password = password;
    }

    public String execute() throws Exception {
	if (getUsername().equals("luke") && getPassword().equals("123456")) {
	    return "success1";
	} else {
	    return "fail1";
	}
    }
}


 

第二种方式

第一步 建立对应用户提交参数的JavaBean

package com.action2;

/**
 * 用户提交信息对应对象
 * 
 * @author Luke Chen
 * @date 2010-7-13
 */
public class User {
    
    // 定义的数据成员的名称必须完全对应客户端提交的参数名
    private String username; 

    private String password;

    public String getUsername() {
	return username;
    }

    public void setUsername(String username) {
	this.username = username;
    }

    public String getPassword() {
	return password;
    }

    public void setPassword(String password) {
	this.password = password;
    }
}

第二步 在Action中使用Bean

package com.action2;

import com.opensymphony.xwork2.Action;

/**
 * 验证登陆
 * 
 * @author Luke Chen
 * @date 2010-7-13
 */
public class LoginAction2 implements Action {

    // 解耦了Action和属性的捆绑,如果客户端参数有了变动就直接修改User。
    // 注意这里User不用new出来,struts2帮你处理好了创建User对象并接收客户端的参数。 
    private User user;

    public User getUser() {
	return user;
    }

    public void setUser(User user) {
	this.user = user;
    }

    public String execute() throws Exception {
	if (user.getUsername().equals("luke") && user.getPassword().equals("654321")) {
	    return "success2";
	} else {
	    return "fail2";
	}
    }
}

 5.编写前台JSP页面

 

<%@ page language="java" import="java.util.*;" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">

  </head>
    <body>
      <form action="Login1" method="post">
      <table>
      Login1
      <!-- 用户名的表单域 -->
      用户名
      <input type="text" name="username" />
      <!-- 密码的表单域 -->
      密码
      <input type="text" name="password" />
      <input type="submit" value="登录" />
      <input type="reset" value="重填" />
      </table>
      </form>

      <form action="Login2" method="post">
      <table>
      Login2
      <!-- 用户名的表单域 -->
      用户名
      <input type="text" name="user.username" />
      <!-- 密码的表单域 -->
      密码
      <input type="text" name="user.password" />
      <input type="submit" value="登录" />
      <input type="reset" value="重填" />
      </table>
      </form>
    </body>
</html>

 6.创建struts.xml文件,struts.xml文件必须放在src下面

 

<?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>

    <!-- Action必须放在指定name的包空间下定义 -->
    <package name="mypackage1" extends="struts-default">
    
    	<!-- 处理Login事件的类com.action1.LoginAction1 -->
    	<action name="Login1" class="com.action1.LoginAction1">
    	
    		<!-- 处理结果和页面跳转之间映射关系  -->
    		<!--LoginAction1的execute()方法返回"fail1"字符串 就跳到error.jsp页面 -->
    		<result name="fail1">/error.jsp</result>
    		<!--LoginAction1的execute()方法返回"success1"字符串 就跳到welcome.jsp页面 -->
    		<result name="success1">/welcome.jsp</result>
    	</action>
    </package>
    
    <package name="mypackage2" extends="struts-default">
    	<action name="Login2" class="com.action2.LoginAction2">
    		<result name="fail2">/error.jsp</result>
    		<result name="success2">/welcome.jsp</result>        
    	</action>
    </package>
</struts>

 经过了上面的这些步骤,这个提交用户名和密码验证的小例子就算是完成了(直接写死用户名密码没有与数据库交互),接下来直接部署到tomcat里就可以去测试了。

4
2
分享到:
评论

相关推荐

    struts2学习笔记(完美总结)——转自OPEN经验库

    在Struts2配置文件中,Result通过`&lt;result&gt;`标签定义,如 `&lt;result&gt;/hello.jsp&lt;/result&gt;` 指定Action执行成功后转向hello.jsp页面。 **三、常用配置文件** Struts2的核心配置文件是`struts.xml`,它定义了Action、...

    Struts2系列(一)——永远的HelloWorld

    本篇文章将引导你逐步了解如何使用Struts2创建你的第一个"Hello, World!"应用程序,同时解决项目中可能出现的依赖问题。 在开始之前,确保你已经安装了Java开发环境(JDK)和Apache Maven或Apache Ant,这两个工具...

    Struts2 chm文档

    目录 1.Struts 2权威指南——第1章 Struts 2概述.doc 2.truts 2权威指南——第...10.Struts2学习进阶(实例篇1)——struts2-blank-2.0.8实例学习.doc 11.改写Restful2ActionMapper让Struts2支持REST风格的URL映射.doc

    HelloWorld 基于struts2框架

    在IT行业中,开发一个“HelloWorld”程序是...接下来,配置Struts2的核心文件——struts.xml。这个文件定义了Action的映射和结果,告诉Struts2如何处理HTTP请求并返回响应。例如,可能会有一个如下的配置: ```xml ...

    Struts2 实例 HelloWorld

    在学习Struts2框架时,通常会从最简单的“Hello World”实例开始。这种实例不仅可以帮助初学者快速上手,还能让大家对Struts2的工作原理有一个基本的理解。本章将详细介绍如何在glassfish2应用服务器上构建一个简单...

    Struts2.0中文教程权威版

    Struts 2权威指南——第2章 Struts 2下的HelloWorld.doc Struts 2权威指南——第3章 Struts 2基础.doc 01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解 04 在Struts 2.0中国...

    Struts2-HelloWorld

    Struts2是一个强大的Java web开发框架,用于构建和维护可扩展且易于管理的企业级应用程序。在本教程中,我们将深入探讨Struts2的基础知识,..."Struts2-HelloWorld"这个例子就是学习和掌握Struts2框架的一个良好起点。

    struts2HelloWorld

    Struts2HelloWorld是一个经典的入门示例,用于展示Apache Struts2框架的基础使用。...这对于进一步学习和掌握Struts2框架的其他高级特性,如动态方法调用、国际化、插件、模型驱动等,都是非常有帮助的。

    Struts2学习笔记

    在本文中,我们将深入探讨Struts2的核心组件——Action,以及如何配置和使用它来构建一个简单的Hello World应用程序。 在Struts1.x中,Action是处理用户请求的核心,它需要继承`org.apache.struts.action.Action`...

    Struts2案例翻译篇-HelloWorld

    在本文中,我们将深入探讨一个基础的Struts2案例——"HelloWorld",这是每个开发者入门新框架时都会接触的经典示例。通过这个案例,我们可以了解Struts2的核心概念和工作原理。 首先,让我们理解一下Struts2框架的...

    【张冰Struts2学习笔记】0102_第一个Struts2实例

    【张冰Struts2学习笔记】0102_第一个Struts2实例 在Java Web开发领域,Struts2框架是十分重要的MVC(模型-视图-控制器)架构之一,它极大地简化了Web应用程序的开发流程。这篇学习笔记将带你入门Struts2,通过创建...

    Struts2.1权威指南——基于WebWork核心的MVC开发.pdf

    - **第2章Struts2下的HelloWorld**:通过一个简单的示例展示如何搭建Struts2环境并运行第一个程序。 - **第3章Struts2基础**:涵盖Struts2的核心组件、配置文件、请求处理流程等基础知识。 - **第4章深入Struts2**:...

    struts2学习笔记!

    ### Struts2学习笔记 #### 一、Struts2配置文件详解 在深入理解Struts2框架之前,我们首先需要了解其核心配置文件——`struts.xml`。 **1. struts.xml配置** ```xml &lt;!DOCTYPE struts PUBLIC "-//Apache ...

    Struts2.1零配置——convention-plugin

    这个插件通过约定优于配置的原则简化了Struts2的应用开发,减少了XML配置文件的需求。以下是对Convention Plugin主要特性和功能的详细解释: 1. **包命名习惯**:Convention Plugin通过类所在的包名来确定Action的...

    struts2课件----传智博客张孝祥老师最新讲解PPT

    学习Struts2,不仅要掌握基础的配置和Action设计,还要理解Interceptor(拦截器)的概念,它们可以插入到Action调用流程中,实现事务管理、权限控制等功能。另外,Struts2的国际化、异常处理、主题和模板等功能也是...

    struts2的基础知识

    当一个请求到达时,Struts2的前端控制器(Front Controller)——StrutsPrepareAndExecuteFilter会拦截这个请求,然后按照配置的拦截器栈对请求进行处理。这些拦截器可以执行如权限验证、日志记录、性能统计等任务。...

    Struts2环境配置与基本操作演示

    在实践过程中,我们通常会创建一个Struts2的示例应用——"StrutsDemo"。这个应用可能包含以下几个部分: 1. **Action类**:如`HelloWorldAction.java`,实现简单的业务逻辑。 2. **配置文件**:如`struts.xml`,...

    struts2入门学习配置

    Struts2是一个强大的MVC(模型-视图-...接着,配置Struts2的主配置文件——`struts.xml`。这个XML文件定义了Action类、结果类型、拦截器和全局配置。例如,你可以定义一个Action,指定其对应的类和结果页面: ```xml ...

Global site tag (gtag.js) - Google Analytics