`
andyjames
  • 浏览: 31433 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2示例学习2-快速起步

阅读更多

这几天去sturs官网学习了一下,把示例翻译了一下,在这里和大家一起分享一下
strutsdemo学习网站
ttp://struts.apache.org/2.x/docs/simple-setup.html

Struts2学习笔记-part1: 快速起步

准备工作:
下载struts2: http://apache.mirror.phpchina.com/struts/binaries/struts-2.0.11.1-all.zip
准备Tomcat5.x

建立一个Java Web项目,提取最少运行Struts2应用的包集合(摘自Struts官方文档):
Install the Minimum Set of Libraries and Configuration Files
The following files are a minium requirement for your application.
Filename Description
struts2-core.jar Framework library itself, found in distribution root directory
xwork.jar XWork 2 library on which Struts 2 is built (version 2.0 or later)
ognl.jar Object Graph Navigation Language (OGNL), the expression language used throughout the framework
freemarker.jar All UI tag templates are written in Freemarker (also a good option for your own views)
commons-logging.jar Commons logging, which the framework uses to support transparently logging to either Log4J or JDK 1.4+
web.xml Java web application configuration file that defines the filters (and other components) for your web application
struts.xml Framework configuration file that defines the actions, results, and interceptors for your application

If any Struts 2 Plugins are included, then other JARs may be needed too. For example, the optional Spring Plugin requires the Spring JARs to be present.


目标:实现一个简单的用户登录.

下面是实现源码:

一、先实现登录页面
<%--
登录页面
User: leizhimin
Date: 2008-3-14
Time: 15:45:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
<head><title>登录页面</title></head>

<body>
<form action="Login.action" method="post">
<table align="center">
<caption><h3>用户登录</h3></caption>
<tr>
<td>用户名:<input type="text" name="username"/></td>
</tr>
<tr>
<td>密 码:<input type="text" name="password"/></td>
</tr>
<tr align="center">
<td align="center">
<input type="submit" value="登录"/>
<input type="reset" value="重填"/>
</td>
</tr>
</table>
</form>
</body>
</html>

二、实现处理页面的Action

package stu;

/**
* 处理用户请求的Action
* File: LoginAction.java
* User: leizhimin
* Date: 2008-3-14 15:59:07
*/
public class LoginAction {
private String username;
private String password;

/**
* 处理用户请求的execute方法
* 因为Struts2的拦截机制,他们负责解析用户的请求参数,并将请求参数赋给Action对应的属性
*
* @return 当用户名为aaa并且密码为123时,返回success,否则,返回error.
* @throws Exception
*/
public String execute() throws Exception {
//当用户名为aaa并且密码为123时,返回success,否则,返回error.
if (getUsername().equals("aaa") && getPassword().equals("123")) {
return "success";
} else {
return "error";
}
}

public String getPassword() {
return password;
}

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

public String getUsername() {
return username;
}

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

三、配置Web.xml

<?xml version="1.0" encoding="GBK"?>

<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Struts Blank</display-name>
<!--定义Struts2的FilterDispatcher的Filter-->
<filter>
<!--定义核心Filter的名字-->
<filter-name>struts2</filter-name>
<!--定义核心Filter的实现类-->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!--FilterDispatcher用来初始化Struts2并且处理所有的Web请求-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
</web-app>

四、配置Action处理结果和资源资源之间的映射关系
注意:此文件打包后位于WEB-INF/classes/目录下面,或者放入classpath。

<?xml version="1.0" encoding="GBK"?>

<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Struts Blank</display-name>
<!--定义Struts2的FilterDispatcher的Filter-->
<filter>
<!--定义核心Filter的名字-->
<filter-name>struts2</filter-name>
<!--定义核心Filter的实现类-->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!--FilterDispatcher用来初始化Struts2并且处理所有的Web请求-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
</web-app>

五、增加登录成功和失败页面

<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
<head><title>登录成功页面</title></head>
<body>
登录成功!
</body>
</html>

<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
<head><title>登录失败</title></head>
<body>
登录失败!
</body>
</html>

六、打包并部署到tomcat,运行如下图:



参考资料:
http://struts.apache.org/2.x/docs/simple-setup.html
struts权威指南

本文出自"andyjames"博客,转载请与作者联系!谢谢!

 

分享到:
评论
7 楼 rennuoting 2008-05-15  
好像文章有问题,四应该是配置struts.xml啊
6 楼 abang 2008-05-15  
三、配置Web.xml 和 四、配置Action处理结果和资源资源之间的映射关系
好像是一样的内容
5 楼 shim 2008-05-15  
<p>Struts2的标签特别恶心, <br/>如select标签。</p>
<pre name='code' class='java'>&lt;s:select name="test" list="testList" listKey="id" listValue="value" value="id"&gt;&lt;/s:select&gt;</pre>
<p><br/><br/>生成的HTML源码为</p>
<pre name='code' class='java'>&lt;tr&gt;
    &lt;td class="tdLabel"&gt;&lt;/td&gt;
    &lt;td&gt;&lt;select name="test" id="test" style=""&gt;
    &lt;option value="1"&gt;test1&lt;/option&gt;
    &lt;option value="2"&gt;test2&lt;/option&gt;
    &lt;option value="3"&gt;test3&lt;/option&gt;
    &lt;option value="4"&gt;test4&lt;/option&gt;
    &lt;option value="5" selected="selected"&gt;test5&lt;/option&gt;
    &lt;option value="6"&gt;test6&lt;/option&gt;
    &lt;option value="7"&gt;test7&lt;/option&gt;
    &lt;option value="8"&gt;test8&lt;/option&gt;


&lt;/select&gt;&lt;/td&gt;
&lt;/tr&gt;</pre>
<p><br/><br/>不明白它为什么一定要加一个tr和td?</p>
<p> </p>
4 楼 qichunren 2008-05-15  
我有两个问题:
1.大家认为struts2的性能怎么样?
2.大家在Action一般是使用基本属性,还是po?就是说楼主的demo中,我也可以创建一个User对象,将username和password抽到User中,这样是不是更好一些呢?但是我在开发的过程中,有些发现不使用po而使用单个的基本属性还好用一些。你们认为呢?
3 楼 rubyeye 2008-05-15  

很好的教程
2 楼 rubyeye 2008-05-15  

很好的教程
1 楼 junzhonxiaozi 2008-05-15  
正在学习sturts2,学习一下,支持LZ,

相关推荐

    struts2学习文档以及一些相关项目的代码

    总的来说,这个压缩包提供了一个全面的Struts2学习资源库,无论是初学者还是有经验的开发者,都能从中获益,提高自己的Java web开发能力。通过深入学习这些材料,你将能够熟练运用Struts2框架,构建出高效、稳定的...

    使用Struts2开发Java_Web应用程序

    在构建方面,Struts2提供了多种快速入门的方法,包括起步教程、模板工程和Maven原型。官方站点上有丰富的入门资料,下载包内包含了空白模板和示例工程供学习参考。通过Maven2,开发者可以直接创建Struts2项目,这极...

    使用Struts2开发Java Web开发详细笔记

    Struts2官方站点提供了丰富的入门资料,下载包中包含了空白模板和示例工程,帮助开发者快速上手。Maven2用户还可以利用其内置的Struts2项目模板创建工程,使得项目初始化更为便捷。 设计上,Struts2鼓励使用框架的...

    JavaEE intellij Idea 做的Action三种接收参数的方式Struts2入门

    在JavaEE开发中,IntelliJ IDEA是一款广泛使用的集成开发环境,它提供了强大的支持来创建和管理Java项目。本教程将介绍如何使用IntelliJ IDEA和Struts...对于初学者来说,简单的示例和基础的练习是非常重要的起步阶段。

    典型的SpringBoot-SSM框架代码示例

    在IT行业中,SpringBoot和SSM(Spring、Struts、MyBatis)是两种非常流行的Java Web开发框架。SpringBoot以其便捷的初始化和自动化配置...通过学习和研究这个示例,开发者能够更好地掌握现代Java Web开发的最佳实践。

    Spring_boot_demo_ssm源码

    本资源"Spring_boot_demo_ssm源码"是一个结合了Spring Boot与传统SSM(Spring、Struts2、MyBatis)框架的学习示例,旨在帮助新手理解如何在Spring Boot中整合SSM,同时适用于实际项目开发。下面将详细介绍SSM整合的...

    JBPM5入门学习.doc

    ### JBPM5入门学习知识点详解 #### 一、JBPM5简介 **1.1 什么是JBPM** JBPM(Java Business Process Management)是一个开源的业务流程管理框架,旨在为开发者提供一个简单、灵活且可扩展的平台来设计、执行和...

    SSH框架开发起步的最好例子

    ### SSH框架开发起步的最好例子 #### 一、概述 SSH框架是指Struts2、Spring以及Hibernate这三种技术的组合,它们分别负责Web层、业务逻辑层和...这不仅是一个很好的学习示例,也是实际项目开发中常用的技术栈之一。

    spring等框架学习电子书

    5. **Spring Boot**:作为Spring的现代拓展,Spring Boot简化了Spring应用的初始设置,通过默认配置和起步依赖,使得开发快速启动和运行的应用变得简单。 6. **Spring Cloud**:在微服务架构中,Spring Cloud提供了...

    SpringBoot初学者手册

    自从Struts2框架暴露出安全漏洞后,开发者们对Spring的关注度显著提高。过去,Spring框架需要大量的XML配置文件来进行组件管理和服务部署,这增加了开发难度和复杂性。为了简化这些繁琐的过程,Spring团队引入了注解...

    ssm整合jar包

    在"ssm整合包"中,可能包含了这三个框架的核心JAR文件、配置文件示例、以及可能的整合示例代码,帮助开发者快速搭建SSM环境。开发者可以通过这个整合包快速起步,避免手动下载和配置每个框架的依赖。同时,这个包也...

    ssm框架整合springboot版本

    2. **Spring Boot整合Struts**:由于Spring Boot原生支持的是Spring MVC,因此整合Struts可能需要额外的工作。可能的方式包括使用Spring Boot的`WebMvcConfigurer`接口来配置Struts拦截器,或者使用Spring Boot的`...

    零基础学Java.Web开发源代码

    Spring Boot则简化了Spring应用的启动和配置,通过“起步依赖”快速构建项目。Spring框架的IoC(Inversion of Control)和AOP(Aspect-Oriented Programming)特性是其核心优势。 Hibernate是一个对象关系映射(ORM...

    JavaJ2ee:JavaJ2EE 上各种框架的示例程序

    Spring Boot通过内嵌的Tomcat服务器、默认配置以及“起步依赖”(Starter POMs)等方式,使得开发者能够快速创建独立运行的、生产级别的Java应用程序。 综上所述,Java J2EE平台上包含众多框架,如Spring、...

    java-framework-learn

    Spring Boot进一步简化了Spring的应用启动,通过默认配置和起步依赖,让开发者能够快速搭建应用。 2. **Hibernate**: Hibernate是一个对象关系映射(ORM)框架,允许开发者使用Java对象来操作数据库。它消除了手动...

    SSH框架开发起步的最好例子.doc

    本文将基于一个具体的示例——“SSH框架开发起步的最好例子”,深入探讨如何在SSH框架下实现商品添加至购物车的功能。这一过程涉及数据库设计、模型构建、数据访问对象(DAO)、业务逻辑层(Service)、控制器...

    毕业设计文献综述范文

    本文档提供了一份关于“基于JSP的房产信息管理系统的设计与实现”的文献综述示例,旨在帮助读者理解如何撰写此类综述,并为后续的研究工作提供参考。 #### 二、房产信息管理系统背景及意义 1. **时代背景**: - ...

    《Velocity Web应用开发指南中文版》.doc

    2. **VelocityTools/VelocityStruts**:对于熟悉Struts框架的开发者来说,可以使用VelocityStruts模块将Struts的强大功能与Velocity的灵活性相结合。这种方式允许开发者使用模板语言而非传统的JSP进行Web页面开发。 ...

    czworkspace

    2. **服务器配置**:可能预配置了一些常见的应用服务器,如Tomcat、WebLogic或JBoss,方便开发者快速部署和运行应用程序。 3. **插件安装**:MyEclipse允许安装各种插件以增强功能,czworkspace可能包含了用于...

    Java EE 轻量级解决方案 — SSH 青岛东合信息技术有限公司 青岛海尔软件公司 著 教材源码 _ 第八章 Spring深入.

    5. **Spring Boot**:虽然不在SSH组合中,但现代Spring开发往往涉及Spring Boot,它简化了Spring应用的初始设置和配置,通过自动配置和起步依赖使得快速开发成为可能。 6. **Spring Security**:Spring的安全模块,...

Global site tag (gtag.js) - Google Analytics