摘自尚硅谷的视频教程struts的代码实现。

原本MVC中的C是由servelet实现的。而Struts2使用的是Filter来冲当控制器
模型 POJO(普通Java类,如DAO(数据访问对象))
视图 jsp
控制器 filter

请求被发送到filterDispacher

首先,利用myeclipse自带的功能配置好Struts框架
首先我们来看看放在src目录下的struts.xml,里面什么都没有

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

将其修改为如下代码,其中,注意namespace是你的工程名字

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>  <!-- Struts 2 的Action必须放在包空间下 -->  <package name="strutsqs" extends="struts-default"   namespace="/HelloWorld2">  <!-- 定义action的名字以及action的实现类 -->  <action name="LoginAciton" class="com.gjy.struts2.loginAction.LoginAction">  <!-- 定义action的处理结果result,result有两个属性,其中name指定返回名称,tyle指定返回的类型 -->  <!-- 处理Login错误时返回/error.jsp -->  <result name="error">/error.jsp</result>  <!-- 处理Lognin正确时/suc.jsp -->  <result name="suc">/suc.jsp</result>  </action>  </package>
</struts>   

然后新建若干最普通的java代码

package com.gjy.struts2.entity;public class Book {private static Object book[]=new Object[4];public Book(){book[0] = "《java编程思想》";book[1] = "《Struts2权威指南》";book[2] = "《精通Oracle》";book[3] = "《我的Flex我精通》";}public Object[] getBook(){return book;}
}
package com.gjy.struts2.interfaceAction;public interface Action {public static String SUCCESS="suc";public static String ERROR="error";public String execute()throws Exception;
}

package com.gjy.struts2.loginAction;import java.util.ArrayList;
import java.util.List;
import java.util.Map;import com.gjy.struts2.entity.Book;
import com.gjy.struts2.interfaceAction.Action;
import com.opensymphony.xwork2.ActionContext;public class LoginAction 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;}//处理用护请求的execute方法public String execute() throws Exception{if (getUserName().equals("gongjiayun")&& getPassWord().equals("hehe") ){//通过ActionContext访问Web对象的Session对象,此处的ActionContext返回的是一个Map//虽然struts2的action中没有HttpSession对象,但我们也可以通过通过ActionContext访问Web对象的Session对象Map sessionMap = ActionContext.getContext().getSession();sessionMap.put("user" , getUserName());Book book = new Book();Object books[]= book.getBook();List<Object[]> bookList = new ArrayList<Object[]>();bookList.add(books);sessionMap.put("book", bookList);return SUCCESS;}else{return ERROR;}}
}

在程序部署到服务器前一定要对代码进行编译。

J2EE基础教程(4):struts框架(视频笔记)相关推荐

  1. python是干什么用的视频-python基础教程千锋最新视频学完之后可以做什么

    从目前来看,人工智能异常火爆,而Python作为人工智能首选语言自然受到了欢迎,而且Python语言在学术上也很受青睐.就算不是计算机专业的人,很多都在学习python.那么python基础教程千锋最 ...

  2. 《Python基础教程(第3版)》笔记:第8章异常

    <Python基础教程(第3版)>笔记:异常 重点 第8章 异常 异常对象未被处理(或捕获)时,程序将终止并显示一条错误信息:traceback 每个异常都是某个类的实例, 如何创建异常 ...

  3. Python基础教程(第3版)》笔记:第6章抽象

    Python基础教程(第3版)>笔记:第6章抽象 **斐波那契数列:**每个数都是前两个数的和. fibs = [0,1] for i in range(8):fibs.append(fibs[ ...

  4. 计算机网络基础(韩立刚视频笔记)第二章 物理层

    韩立刚老师教学视频笔记 图片源自韩立刚老师的教学视频和谢希仁PPT,侵删 第二章 物理层 2.1 物理层的基本概念 物理层解决如何在连接各种计算机传输媒体上传输bit流,注意,不是指用什么传输媒体(介 ...

  5. ECMAScript 6 基础教程-姜威-专题视频课程

    ECMAScript 6 基础教程-3202人已学习 课程介绍         ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Ma ...

  6. Python函数基础教程-张明阳-专题视频课程

    Python函数基础教程-730人已学习 课程介绍         通过本次课程的讲解,可以让大家对Python函数章节中的装饰器.闭包.函数对象.迭代器和生成器进行彻底的了解,在授课的过程中,将会结 ...

  7. Python是什么?Python基础教程400集大型视频,全套完整视频赠送给大家

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 获 ...

  8. J2EE基础教程(1):简介和windows下环境配置

    (1)相关概念 我们以前在linux操作系统初级教程中,介绍过LAMP架构服务器技术.现在,我们来介绍J2EE. 通过J2EE开发的应用程序属于分布式多层应用程序,包括 (1)客户层:客户应用,web ...

  9. J2EE基础教程1--简介

    (1)相关概念 我们以前在linux操作系统初级教程中,介绍过LAMP架构服务器技术.现在,我们来介绍J2EE. 通过J2EE开发的应用程序属于分布式多层应用程序,包括 (1)客户层:客户应用,web ...

最新文章

  1. 清理svn信息_推荐候选人有奖啦~11.26最新招聘信息看这里!
  2. Windows下安装 openpyxl
  3. 销售单据条件价格明细表
  4. Pipeline模式(netty源码死磕6)
  5. 实例5:python
  6. WPF设置全局字体和字体嵌入
  7. 如何安装mysql5.7.25_Centos7 yum安装MySQL5.7.25
  8. Python+OpenCV:图像去噪(Image Denoising)
  9. mac 系统下 刻录centos 系统到 U盘中
  10. 《信息化项目文档模板一——项目需求说明书》
  11. 计算机信息管理发展的重要性,建设计算机信息管理系统的意义和目标
  12. 挨踢人生路 记我的10年18家工作经历
  13. Android Light
  14. 不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置_「初级会计报考指南」浏览器问题解决方案...
  15. html5网页制作实训日志,网页制作实训日志X.doc
  16. cad调了比例因子没反应_大神们都在用的9个CAD制图技巧,你会用几个?
  17. 【C语言】main 函数的正确写法
  18. html中tabindex属性是啥意思
  19. 几种边缘检测算子的比较Roberts,Sobel,Prewitt,LOG,Canny
  20. 通达OA2019升级到V12的操作方法

热门文章

  1. 【亲测有效】树莓派4B安装realsense(Intel深度摄像头)
  2. 申请优豆云免费虚拟主机使用感受分享心得
  3. conda常用命令(换源清华源,创建虚拟环境)
  4. Vue 跨域问题解决
  5. final修饰局部变量
  6. vtd和vt的区别_vi和vt的区别小窍门
  7. Android性能优化-内存优化
  8. python (与C的差别)
  9. 计算机网络一课一文1000字,第一课认识计算机网络(20页).doc
  10. 如何运行vue项目(详细步骤)