本文主要是通过一个例子来说明Struts2的一个工作流程。

首先定义一个登录页面login.jsp:

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ taglib prefix="s" uri="/struts-tags" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>登录页面</title>
  9. </head>
  10. <body>
  11. <s:form action="loginUser">
  12. <s:label value="登录页面"></s:label>
  13. <s:textfield name="user.userName" label="用户名:"></s:textfield>
  14. <s:textfield name="user.name" label="姓名:"></s:textfield>
  15. <s:password name="user.password" label="登录密码:"></s:password>
  16. <s:submit value="登录"></s:submit>
  17. </s:form>
  18. </body>
  19. </html>

定义一个登录成功跳转到欢迎页面welcome.jsp:

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ taglib prefix="s" uri="/struts-tags"  %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>欢迎页面</title>
  9. </head>
  10. <body>
  11. 欢迎<FONT color="red" style="font-weight: bold" >"<s:property value="user.name"/>"</FONT>登录系统
  12. </body>
  13. </html>

定义一个用户实体类User.java:

  1. package org.ml.bean;
  2. /**
  3. * 用户实体类
  4. *
  5. * @author MuLing
  6. *
  7. */
  8. public class User {
  9. private String userName;// 用户名
  10. private String name;// 用户姓名
  11. private String password;// 用户密码
  12. public String getUserName() {
  13. return userName;
  14. }
  15. public void setUserName(String userName) {
  16. this.userName = userName;
  17. }
  18. public String getPassword() {
  19. return password;
  20. }
  21. public void setPassword(String password) {
  22. this.password = password;
  23. }
  24. public void setName(String name) {
  25. this.name = name;
  26. }
  27. public String getName() {
  28. return name;
  29. }
  30. }

定义一个Action:UserAction.java

  1. package org.ml.action;
  2. import org.ml.bean.User;
  3. import com.opensymphony.xwork2.ActionSupport;
  4. /**
  5. * 用户实体对于的Action
  6. *
  7. * @author MuLing
  8. *
  9. */
  10. public class UserAction extends ActionSupport {
  11. private static final long serialVersionUID = 1L;
  12. private User user ;
  13. /**
  14. * 自定义login方法
  15. *
  16. * @return
  17. */
  18. public String login() {
  19. if ("admin".equals(user.getUserName()) && "admin".equals(user.getPassword())) {
  20. return SUCCESS;
  21. } else {
  22. return INPUT;
  23. }
  24. }
  25. /**
  26. * @param user the user to set
  27. */
  28. public void setUser(User user) {
  29. this.user = user;
  30. }
  31. /**
  32. * @return the user
  33. */
  34. public User getUser() {
  35. return user;
  36. }
  37. }

Struts2的核心配置strut.xml配置如下:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
  3. <struts>
  4. <package name="user" extends="struts-default" >
  5. <action name="loginUser" class="org.ml.action.UserAction" method="login">
  6. <result name="success">/welcome.jsp</result>
  7. <result name="input">/login.jsp</result>
  8. </action>
  9. </package>
  10. </struts>

还有就是web.xml的配置如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <welcome-file-list>
  8. <welcome-file>index.jsp</welcome-file>
  9. </welcome-file-list>
  10. <filter>
  11. <filter-name>struts2</filter-name>
  12. <filter-class>
  13. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  14. </filter-class>
  15. </filter>
  16. <filter-mapping>
  17. <filter-name>struts2</filter-name>
  18. <url-pattern>/*</url-pattern>
  19. </filter-mapping></web-app>

上面就是本例涉及的所有文件内容,下面就看一下效果:

进行登录:

登录成功:

上面的登录登录已经成功,然我们来来看这个登录的过程:

以上是个人的一个理解,欢迎大家交流指正!

通过案例说明struts2的工作流程的更多相关文章

  1. struts2系列(一):struts2入门(struts2的产生、struts2的工作流程、搭建struts2开发环境)

    一. struts2的产生 struts1的缺点:                         1. ActionForm过多,而且这个ActionForm在很大程度上又和VO(POJO)重复  ...

  2. Struts2的工作流程分析

    Struts2的工作流程分析 Posted on 2011-02-22 09:32 概述 本章讲述Struts2的工作原理. 读者如果曾经学习过Struts1.x或者有过Struts1.x的开发经验, ...

  3. 【Struts2】工作流程

    转发两篇文章 一个请求在Struts2框架中的处理分为以下几个步骤: 1.客户端发出一个指向servlet容器的请求(tomcat): 2.这个请求会经过图中的几个过滤器,最后会到达FilterDis ...

  4. Struts2的工作流程

    Struts2如何实现MVC Struts2的参数封装: Struts2的运行原理图:

  5. 【跟我一步一步学Struts2】——Struts2工作流程

    上一篇博客通过一个简单的小样例对struts2的流程有一个简单的了解,这篇博客继续. 当用户要登陆某一个站点.输入username,password,点击登陆就会触发以下一系列过程 : 1.请求过来之 ...

  6. SSH三大框架的各自工作流程

    一.Struts2的工作流程:1.用户在客户端发起请求,客户端会初始化一个servlet容器请求:2.servlet容器把请求会传递给context容器,context容器找到目标web工程.3.进行 ...

  7. SpringMVC第一篇【介绍、入门、工作流程、控制器】

    什么是SpringMVC? SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于struts2框架 为什么要使用 ...

  8. struts2工作流程

    struts2的框架结构图 工作流程 1.客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost: 8080/bookcode/Reg.action ...

  9. Struts2 工作流程

    Struts2使用了WebWork的设计核心(XWork),在内部使用拦截器处理用户请求,从而允许用户业务逻辑控制器和ServletAPI分离.Struts2内部是一个MVC架构,Struts2 的核 ...

随机推荐

  1. IE、FF脚本兼容性问题

    1.window.event IE有这个对象:FF没有,FF通过参数传递 2.获取事件源 IE:srcElement FF:target 3.添加与去除事件 IE:element.attachEven ...

  2. mysql 获取id最大值

    数据库表中id列不为自动增加,需要程序来增加id的SQL SELECTCASE IFNULL(MAX(id),1)WHEN 1 THEN 1ELSE MAX(id) + 1END AS newmaxi ...

  3. Java基础 - 面向对象 - 类的定义

    package mingri.chapter_6; import java.util.Scanner; public class Person { /* * 类变量 * 定义方法: * 数据类型 变量 ...

  4. Web 编程中路径问题

    web.xml 中 <url-pattern> 路径(即 Servlet 路径) 要么以 "*" 开头, 要么以 "/" 开头. 转发和包含路径(服 ...

  5. "零代码”开发B/S企业管理软件之二:怎么创建数据源

    声明:该软件为本人原创作品,多年来一直在使用该软件做项目,软件本身也一直在改善,在增加新的功能.但一个人总是会有很多考虑不周全的地方,希望能找到做同类软件的同行一起探讨. 本人文笔不行,能把意思表达清 ...

  6. Qt 打印机支持模块

    Qt 打印支持 Qt为打印提供广泛的跨平台支持.使用每个平台上的打印系统,Qt应用程序可以打印到连接的打印机,并通过网络打印到远程打印机.Qt的打印系统还支持PDF文件生成,为基本的报告生成设施奠定了 ...

  7. Java应用多机器部署定时任务解决方案

    Java多机部署下定时任务的处理方案. 本文转自:http://www.cnblogs.com/xunianchong/p/6958548.html 需求: 有两台服务器同时部署了同一套代码, 代码中 ...

  8. Flask(5)- Flask-Session组件、WTForms组件、数据库连接池(POOL)

    一.Flask-Session 我们使用过flask内置的session,知道它是把session存放在浏览器,即客户端.今天要学习的flask-session是flask的第三方组件,看一下它和fl ...

  9. Python3+Selenium3自动化测试-(四)

    selenium鼠标事件 # coding=utf-8 import time from selenium import webdriver from selenium.webdriver.commo ...

  10. 安装MySQL版本为mysql-installer-community-5.7.17.msi

    双击MySQL安装包, 勾选复选框,点击下一步: 选择仅仅服务器模式,点击下一步: 直接点击执行: 执行完成,点击下一步: 确认配置,点击下一步: 输入用户名和密码,点击下一步: 默认选项,点击下一步 ...