Struts2 Demo

下面两张图,用 viso 画了1个小时~ viso 很强大啊!

工作原理

Struts2的工作原理(图解)详解 Struts2基本原理

Struts2原理.png-163.3kB

工作流程

Struts2步骤.png-284.9kB

Hello World Demo

Struts 2 hello world (XML版本)

1.png-14.5kB

web.xml

配置 Struts 2

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name></display-name>

    <welcome-file-list>
        <welcome-file>HelloWorld.jsp</welcome-file>
    </welcome-file-list>

    <!-- Struts2配置 -->
    <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

配置每个Action。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <package name="struts2" extends="struts-default">
        <global-results>
            <result name="login">/HelloWorld.jsp</result>
        </global-results>
        <action name="loginPerson" class="action.LoginAction">
            <result name="success">/welcome.jsp</result>
        </action>
    </package>
</struts>

HelloWorld.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录界面</title>
</head>
<body>
    <form action="loginPerson">
        <table>
            <tr>
                <td>账号</td>
                <td><input type="text" name="account"></td>
            </tr>
            <tr>
                <td>密码</td>
                <td><input type="password" name="password"></td>
            </tr>
            <tr>
                <td><input type="submit" value="登录"></td>
            </tr>
        </table>
    </form>
</body>
</html>

welcome.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>欢迎界面</title>
</head>
<body>
    welcome!
    <%=request.getAttribute("account")%>
</body>
</html>

LoginAction.java

package action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

    private String account;
    private String password;

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

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

    @Override
    public String execute() throws Exception {

        if ("yano".equals(account) && "123456".equals(password)) {
            return SUCCESS;
        }

        return LOGIN;
    }

}

下载链接

http://pan.baidu.com/s/1pKNZix9

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 40+个对初学者非常有用的PHP技巧(二)

    考虑使用ob_gzhandler?不,别这样做。它没有任何意义。PHP应该是来写应用程序的。不要担心PHP中有关如何优化在服务器和浏览器之间传输的数据。

    哲洛不闹
  • 加快Android编译速度的技巧总结

    对于Android开发者而言,随着工程不断的壮大,Android项目的编译时间也逐渐变长,即便是有时候添加一行代码也需要等待好久才能看见期待的效果。之前加快An...

    哲洛不闹
  • 请不要说自己是Java程序员

    英文的玩笑,用中文看有点不太容易懂。它的意思就是一个关于 Python(蟒蛇)经验只有三周前去过一次动物园的程序员,只要他足够的好,他也可以用一周的时间,基于 ...

    哲洛不闹
  • Java代码编译和执行的整个过程

    JVM的类加载是通过ClassLoader及其子类来完成的,类的层次关系和加载顺序可以由下图来描述:

    哲洛不闹
  • 源代码的寿命

    看看你现在日常工作中的代码。已经运行了多久了?代码有多老了?有六个月?一年?可能都有五年这么久了吧?十年?二十年呢?!这样的代码有多老了?不到10%?还是一半?...

    哲洛不闹
  • 为什么JavaScript开发如此疯狂

    Web开发中其他一切对你而言都是小菜一碟,但当你深入探究JavaScript的时候,不免有一种“众人皆醒你独醉”的悲壮——好像其他人都知道你不知道的一些大的基础...

    哲洛不闹
  • Java 中 MongoDB 使用指南

    MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB。

    哲洛不闹
  • Java线程池的那些事

    熟悉java多线程的朋友一定十分了解java的线程池,jdk中的核心实现类为java.util.concurrent.ThreadPoolExecutor。大家...

    哲洛不闹
  • 你的每行代码值多少钱?

    我知道,“line of code”(LoC)是一种非常愚蠢的计量方式。不要急着喷我,请大家先听我讲讲我最近参与的两个项目,看一下一些非常有意思的数字。

    哲洛不闹
  • 不拼颜值的编程世界你靠什么上位?

    随着功能需求的逐步升级,编程语言的更新换代也变得越来越频繁,近年来编程语言的种类更是已经突破了600大关。在前浪不断被拍在沙滩上的编程语言世界里,斑斑却发现每一...

    哲洛不闹

扫码关注云+社区

领取腾讯云代金券