1、MVC思想概述

  Servlet作为前端控制器,负责接收客户端发送的请求,在Servlet中只包含控制逻辑和简单的前端处理;然后调用后端javabean来完成实际的逻辑处理;

最后转发到相应的jsp页面处理显示逻辑。

  JSP页面的请求与Servlet交互,Servlet负责与后台的javabean通信。

  MVC并不是java语言所持有的设计思想,它是所有的面向对象程序设计语言都应该遵守的规范。

2、Struts 2的下载和安装

  (1)下载Struts2的完整版,解压缩,该文件夹包含如下文件结构:

  •   apps:包含了基于Struts2的示例应用;
  •   docs:包含了Struts2的相关文档;
  •   lib:包含了Struts2框架的核心类库,以及他的第三方插件类库;
  •   src:包含了Struts2框架的所有源代码;

  (2)将lib中的部分必须类库复制到web应用的WEB-INF/lib路径下。

  (3)编辑web应用的web.xml配置文件,配置Sturts 2的核心Filter。

 <!-- 定义Struts2的核心Filter -->
  <filter>
      <filter-name>struts2</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
 
  <!-- 让Struts2的核心Filter拦截所有的请求 -->
  <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

  (4)eclipse中struts.xml文件配置(这里用的Struts2.2.1)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd" >
<struts>
    <constant name="struts.custom.il8n.resources" value="mess"/>
    <constant name="struts.il8n.encoding" value="GBK"/>
</struts>

3、定义一个Struts2的Action,该Action通常应该继承ActionSupport基类。

  为login.jsp页面中登陆表单指定该表单的action为login;

  编写一个LoginAction类:

package lee;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
    
    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() {
        if(getUsername().equals("cui") && getPassword().equals("1234")) {
            ActionContext.getContext().getSession().put("user", getUsername());
            return SUCCESS;
        }
        else
        {
            return ERROR;
        }
    }
}

  配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd" >
<struts>
    <constant name="struts.custom.il8n.resources" value="mess"/>
    <constant name="struts.il8n.encoding" value="GBK"/>
    
    <!-- 所有的Action定义都应该放在package下 -->
    <package name="lee" extends="struts-default">
    <!-- 下面配置了一个名为login的Action,浏览者可以向该Action发送请求。该Action下还配置了三个result元素
    用于指定逻辑视图和物理资源之间的映射,即当前返回input逻辑视图名时,系统跳转到/login.jsp页面 -->
        <action name="login" class="org.crazyit.app.action.LoginAction">
            <!-- 定义是三个逻辑视图和物理资源的映射 -->
            <result name="input">/login.jsp</result>
            <result name="error">/error.jsp</result>
            <result name="welcome">/welcome.jsp</result>
        </action>
    </package>
</struts>

Struct2的更多相关文章

  1. zyUpload+struct2完成文件上传

    前言: 最近在写自己的博客网站,算是强化一下自己对s2sh框架的理解.期间遇到了很多问题,这些问题在写之前都考虑过,感觉也就是那样吧.但正真遇到了,也挺让人难受的.就利用zyUpload这个js插件实 ...

  2. xmlstreaml xml过滤 格式化 报文的发送接收 struct2

    有时候把东西想的过于复杂了,还是思路不清晰啊. seervlet struct2配置过程

  3. outscan 一键批量 get struct2 devMode (CNVD-2016-04656)

    之前写的一个玩意 下载地址:http://pan.baidu.com/s/1i5jmEwP 密码:v8v3 一键批量 get struct2 devMode 支持百度.google(google有访问 ...

  4. struct2的structs.xml文件配置There is no Action mapped for action name 问题

    很久没写过博客,今天重新开始写,新技术太多,只有通过博客才可以不断积累,本人水平有限,如有错误,欢迎指正,谢谢 今天在MAVEN上配置web project的struct2,发现自己忽略了很多问题,再 ...

  5. 创建Struct2的web应用(一)

    1.上http://struts.apache.org/ 下载Struct2 2.解压缩,将lib文件夹内的部分JAR复制到java web应用的WEB-INF/lib目录下.所需JAR: commo ...

  6. java MVC架构-spring mvc,struct2(理解)

    MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处 ...

  7. struct2 学习总结

    花了近半个月学习了struct2.现大致总结下学习点: 1. struct2 入门以及基本配置(未继承ActionSupport,配置struts.xml文件,execute方法直接返回SUCESS) ...

  8. Struct2提交表单数据到Acion

    Struct2提交表单数据到Action,Action取表单的数据,传递变量.对象 HTML.jsp <form action="reg.do" method="p ...

  9. Struct2 自定义拦截器

    1 因为struct2 如文件上传,数据验证等功能都是由系统默认的 defalutStack中的拦截器实现的,所以我们定义拦截器需要引用系统默认的defalutStack 这样才不会影响struct2 ...

  10. struct2访问或添加request/session/application

    访问或添加request/session/application 1 通过ActionContext //这样放置 public String execute()  {     ActionConte ...

随机推荐

  1. fir.im Weekly - 一切从知识重构开始

    一年之计在于春,大自然开始了新元素的重构.你的知识库是否也该重构更新呢? 本期 fir.im Weekly 包含最新的Android.iOS 开发工具.源码和好玩的UI 动画分享,希望对你有用. Sw ...

  2. 每天一个linux命令(12):more命令

    more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...

  3. HTML中的title换行问题

    有时我们需要在html元素的title中换行显示信息.以下几种方法均可以实现: 直接在titile属性中使用换行,如下所示: asd">asdsadsad</a> 在tit ...

  4. HTML5横竖屏提示

    HTML代码: <div class="screen-prompt"></div> CSS判断代码: /*横竖屏提示*/ @media screen and ...

  5. 构建自己的PHP框架--搭建基本结构

    首先,我们来说一下,为什么要创建自己的框架? 为什么要创建自己的框架呢?如果你跟周围的人讨论,每个人都会告诉你重复发明轮子是一件糟糕的事情,你最好选择一个已有的框架,忘掉“创建自己的框架”这种想法.大 ...

  6. Docker - 配置DaoCloud的Docker加速器(国内registry-mirror)

    由于众所周知的原因,从Docker Hub难以高效地下载镜像. 除了使用VPN或代理之外,最为有效的方式就是使用Docker国内镜像. DaoCloud是首个提供国内免费Docker Hub镜像的团体 ...

  7. java类加载器-Tomcat类加载器

    在上文中,已经介绍了系统类加载器以及类加载器的相关机制,还自定制类加载器的方式.接下来就以tomcat6为例看看tomat是如何使用自定制类加载器的.(本介绍是基于tomcat6.0.41,不同版本可 ...

  8. html/css基础篇——iframe和frame的区别【转】

    转自共享圈的使用iframe的优缺点,为什么少用iframe以及iframe和frame的区别.其中本人不认同的地方有做小修改 注:HTML5不再支持使用frame,iframe只有src 属性 一. ...

  9. C# 根据自定义线程定时器 生成随机订单

    这个源之于一个朋友问我的一个问题,他说他们的需求是在一天之内随机抽取数据生成订单,还不能让客户看出来. 随机生成的订单还分概率抽取不一定的状态值,那么根据我之前写的定时器线程执行器,我们设计需要一个定 ...

  10. SQL Server安全(2/11):身份验证(Authentication)

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...