Struts2的简单认识
首先展现在大家面前的是一张Struts2的工作原理图
Struts2的运行流程
1) 客户端初始化一个指向Servlet容器(例如Tomcat)的请求。
2) 这个请求经过一系列的过滤器(Filter)。
3) 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action。
4) 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy。
5) ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类。
6) ActionProxy创建一个ActionInvocation的实例。
7) ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8) 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。
Struts2的核心就是拦截器。Struts.xml中所有的package都要extends="struts-default"。同理与所有的Java类都要extends自Object一样。struts-default.xml里面就是要做以上事情。
Struts2的运行机制
1)客户端在浏览器中输入一个url地址。
2)这个url请求通过http协议发送给tomcat。
3)tomcat根据url找到对应项目里面的web.xml文件。
4)在web.xml里面会发现有struts2的配置。
5)然后会找到struts2对应的struts.xml配置文件。
6)根据url解析struts.xml配置文件就会找到对应的class。
7)调用完class返回一个字String,根据struts.xml返回到对应的jsp。
案例如下:
第一步:把struts2的jar包加入的项目中
如图:基本的八个jar包
第二步:在web.xml中加入拦截器配置。
代码如下:
1 <filter> 2 <filter-name>struts2</filter-name> 3 <filter-class> 4 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 5 </filter-class> 6 </filter> 7 <filter-mapping> 8 <filter-name>struts2</filter-name> 9 <url-pattern>/*</url-pattern> 10 </filter-mapping>
第三步::把空的struts.xml配置文件放到项目src下面。
<struts>
</struts>
第四步:编写自定义的action类。
代码如下:
1 package cn.bdqn.Struts2.Dao; 2 3 4 5 import java.util.Map; 6 7 import org.apache.struts2.interceptor.SessionAware; 8 9 import cn.bdqn.Struts2.entity.User; 10 11 import com.opensymphony.xwork2.Action; 12 import com.opensymphony.xwork2.ActionContext; 13 14 public class Struts implements Action { 15 private User user; 16 private Map<String, Object> session; 17 public String execute() throws Exception { 18 if (user.getUsername().equals("admin") && user.getPassword().equals("123")) { 19 //记录session 20 //session = ActionContext.getContext().getSession(); 21 session.put("name",user.getUsername()); 22 session.put("pwd", user.getPassword()); 23 return "success"; 24 }else { 25 return "error"; 26 } 27 28 } 29 public Map<String, Object> getSession() { 30 return session; 31 } 32 public void setSession(Map<String, Object> session) { 33 this.session = session; 34 } 35 public User getUser() { 36 return user; 37 } 38 39 public void setUser(User user) { 40 this.user = user; 41 } 42 43 44 45 46 }
第五步:编写struts.xml配置文件
代码如下:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 6 <struts> 7 <constant name="struts.devMode" value="true" /> 8 9 <package name="default" namespace="/" extends="struts-default"> 10 <!-- 11 <action name="index" class="cn.bdqn.Struts2.Dao.Struts"> 12 <result name="success">index2.jsp</result> 13 <result name="error">fail.jsp</result> 14 </action> 15 --> 16 17 <action name="index2" class="cn.bdqn.Struts2.Dao.Demo"> 18 <result name="success">index2.jsp</result> 19 <result name="input">index.jsp</result> 20 </action> 21 22 </package> 23 </struts>
第六步:编写index.jsp文件
代码如下:
1 <body> 2 <div> 3 <h1>用户登录</h1> 4 <s:fielderror fieldName="Username" /> 5 6 <%--<s:property value="errors.password"> 7 --%><form action="index2.action" method="post"> 8 用户名:<input type="text" name="user.username" /><br /> 密 码:<input 9 type="text" name="user.password"><br /> <input 10 type="submit" value="提交" /> 11 </form> 12 <s:debug></s:debug> 13 </div> 14 </body>
第七步:启动tomcat,在浏览器中访问
http://localhost:8080/StrutsDay02
然后就会出现你的成果了!
转载于:https://www.cnblogs.com/yhsj/p/5259149.html
Struts2的简单认识相关推荐
- Struts2的简单介绍
1.Struts 2是Struts的下一代产品,是在 struts1和WebWork的技术基础上进行了合并的全新的Struts2框架.其全新的Struts2的体系结构与Struts1的体系结构差 ...
- Struts2框架简单入门
Struts2框架简单入门 1.前言 2.Struts2简介 2.1.Struts2介绍 2.2.Struts2优缺点 2.2.1.优点 2.2.2.缺点 2.2.3.Struts2获取 3.入门案例 ...
- struts2.0简单页面 (不带拦截器和带拦截器案例)
做一个不带拦截器的struts 登录验证 不带拦截器,用户能直接访问action页面访问到数据,起不到登录验证的作用 1.使用c3p0 连接 mysql ,数据库字段与 j ...
- Struts2实现简单的在线人数统计
用Strust2框架的知识简单实现一个统计在线人数的问题. 1 搭建开发环境:(配置文件,jar包等问题) 2 index.jsp 1 <%@ page language="java& ...
- Struts2的简单使用
一.准备工作及实例 1.解压struts-2.1.6-all.zip apps目录:struts2自带的例子程序 docs目录:官方文档. lib 目录:存放所有jar文件. Src 目录:源文件存放 ...
- Struts2的简单搭建(三)
Struts2简单搭建学习 本节的目标 1.struts.xml中action的配置 2.几种配置action的方式 struts.xml中action的配置 1.action是package下的一个 ...
- struts2配置文件(简单)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...
- java刘保_[SSH] Eclipse+Struts2的简单应用
终于要开始研究框架了,没有大神的指导,只能自己上网摸索着来,没有唯一对的方案,只能找到最适合自己的就可以了. 首先整理一下,代码是参考别人的代码,按照别人的版本有问题,大概整理了一下,自己重新弄了一个 ...
- Struts2框架简单介绍
如需,了解Struts2详情,请点击,传送门 工作原理 在Struts2 框架中的处理大概分为以下步骤: 1.客户端初始化一个指向servlet容器(例如Tomcat)的请求. 2.这个请求经过一系列 ...
最新文章
- 报名 | 大咖云集,清华方圆系列之大数据分析与可视化报告会
- 上周热点回顾(6.20-6.26)
- JavaScript容易犯错的九个陷阱
- 线程同步之关键代码段
- NHibernate入门hello world
- 2016 GDCPC 省赛总结
- php 内容编码错误,PHP输出缓冲,ob_gzhandler引起的内容编码错误?
- 系统架构师学习笔记-数据通信与计算机网络(一)
- 《从问题到程序:用Python学编程和计算》——1.2 Python语言简介
- 大学c语言基本程序,一个大学C语言试题的简单实现--员工信息管理程序
- Docker 更新版本
- 21.卷1(套接字联网API)---多播
- 2022年电工杯数模竞赛B题第一问解法分享(附Python代码)
- RGB转灰度的几种算法
- 解除当前设置不允许下载该文件
- Wireshark使用指南
- mysql for mac 重置密码_Mac版,mysql重置密码
- 鲍尔默评论谷歌退出中国事件
- 天猫精灵对接智能设备
- 京东2018校招研发笔试题记录