初学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里就可以去测试了。
分享到:
相关推荐
在Struts2配置文件中,Result通过`<result>`标签定义,如 `<result>/hello.jsp</result>` 指定Action执行成功后转向hello.jsp页面。 **三、常用配置文件** Struts2的核心配置文件是`struts.xml`,它定义了Action、...
本篇文章将引导你逐步了解如何使用Struts2创建你的第一个"Hello, World!"应用程序,同时解决项目中可能出现的依赖问题。 在开始之前,确保你已经安装了Java开发环境(JDK)和Apache Maven或Apache Ant,这两个工具...
目录 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
在IT行业中,开发一个“HelloWorld”程序是...接下来,配置Struts2的核心文件——struts.xml。这个文件定义了Action的映射和结果,告诉Struts2如何处理HTTP请求并返回响应。例如,可能会有一个如下的配置: ```xml ...
在学习Struts2框架时,通常会从最简单的“Hello World”实例开始。这种实例不仅可以帮助初学者快速上手,还能让大家对Struts2的工作原理有一个基本的理解。本章将详细介绍如何在glassfish2应用服务器上构建一个简单...
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是一个强大的Java web开发框架,用于构建和维护可扩展且易于管理的企业级应用程序。在本教程中,我们将深入探讨Struts2的基础知识,..."Struts2-HelloWorld"这个例子就是学习和掌握Struts2框架的一个良好起点。
Struts2HelloWorld是一个经典的入门示例,用于展示Apache Struts2框架的基础使用。...这对于进一步学习和掌握Struts2框架的其他高级特性,如动态方法调用、国际化、插件、模型驱动等,都是非常有帮助的。
在本文中,我们将深入探讨Struts2的核心组件——Action,以及如何配置和使用它来构建一个简单的Hello World应用程序。 在Struts1.x中,Action是处理用户请求的核心,它需要继承`org.apache.struts.action.Action`...
在本文中,我们将深入探讨一个基础的Struts2案例——"HelloWorld",这是每个开发者入门新框架时都会接触的经典示例。通过这个案例,我们可以了解Struts2的核心概念和工作原理。 首先,让我们理解一下Struts2框架的...
【张冰Struts2学习笔记】0102_第一个Struts2实例 在Java Web开发领域,Struts2框架是十分重要的MVC(模型-视图-控制器)架构之一,它极大地简化了Web应用程序的开发流程。这篇学习笔记将带你入门Struts2,通过创建...
- **第2章Struts2下的HelloWorld**:通过一个简单的示例展示如何搭建Struts2环境并运行第一个程序。 - **第3章Struts2基础**:涵盖Struts2的核心组件、配置文件、请求处理流程等基础知识。 - **第4章深入Struts2**:...
### Struts2学习笔记 #### 一、Struts2配置文件详解 在深入理解Struts2框架之前,我们首先需要了解其核心配置文件——`struts.xml`。 **1. struts.xml配置** ```xml <!DOCTYPE struts PUBLIC "-//Apache ...
这个插件通过约定优于配置的原则简化了Struts2的应用开发,减少了XML配置文件的需求。以下是对Convention Plugin主要特性和功能的详细解释: 1. **包命名习惯**:Convention Plugin通过类所在的包名来确定Action的...
学习Struts2,不仅要掌握基础的配置和Action设计,还要理解Interceptor(拦截器)的概念,它们可以插入到Action调用流程中,实现事务管理、权限控制等功能。另外,Struts2的国际化、异常处理、主题和模板等功能也是...
当一个请求到达时,Struts2的前端控制器(Front Controller)——StrutsPrepareAndExecuteFilter会拦截这个请求,然后按照配置的拦截器栈对请求进行处理。这些拦截器可以执行如权限验证、日志记录、性能统计等任务。...
在实践过程中,我们通常会创建一个Struts2的示例应用——"StrutsDemo"。这个应用可能包含以下几个部分: 1. **Action类**:如`HelloWorldAction.java`,实现简单的业务逻辑。 2. **配置文件**:如`struts.xml`,...
Struts2是一个强大的MVC(模型-视图-...接着,配置Struts2的主配置文件——`struts.xml`。这个XML文件定义了Action类、结果类型、拦截器和全局配置。例如,你可以定义一个Action,指定其对应的类和结果页面: ```xml ...