struts2原理及创建struts工程步骤

struts2原理及创建struts工程步骤

原理:

Struts2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。在这3个部分里,Struts 2框架提供了核心控制器FilterDispatcher,

而用户需要实现业务控制器和业务逻辑组件。

(1)核心控制器:FilterDispatcher

1.FilterDispatcher是Struts2框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。

如果用户请求以action结尾,该请求将被转入Struts2框架处理。

2.Struts2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action请求,Struts2调用名为login的Action来处理该请求。

3.Struts2应用中的Action都被定义在struts.xml文件中,在该文件中定义Action时,定义了该Action的name属性和class属性,其中name属性决定了该Action处理哪个用户请求,

而class属性决定了该Action的实现类。

4.Struts2用于处理用户请求的Action实例,并不是用户实现的业务控制器,而是Action代理——因为用户实现的业务控制器并没有与Servlet API耦合,显然无法处理用户请求。

而Struts2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到Action中,并回调Action 的execute方法来处理用户请求。

实例:在eclipse中创建工程的步骤通建经典的servlet步骤一样,具体可参见小编的另一篇博文:http://blog.csdn.net/csdnliuxin123524/article/details/77915367

在此基础上开始我们的步骤:

在lib下引入右图中的所有包:struts2原理及创建struts工程步骤

1,包的下载地址可见百度云链接:链接:https://pan.baidu.com/s/1o7PfYhs 密码:v6ef

右键add  引入所有包。

2,在WEB-INF目录下修改web.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  <filter>    <filter-name>struts2</filter-name>    <filter-class>									org.apache.struts2.dispatcher.FilterDispatcher		</filter-class>  </filter>  <filter-mapping>    <filter-name>struts2</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping></web-app>

3,在WebContent目录下建index.jsp和second.jsp

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><a href="second.jsp">点此进入到second.jsp页面</a><a href="first.action">点此通过servlet进入到second.jsp页面</a></body></html>

second.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body>这是second页面</body></html>

4,见下图

struts2原理及创建struts工程步骤

在src文件夹下创建stuts包,在建First类和struts.xml

Firstclass(可以不用创建):

package struts;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.opensymphony.xwork2.ActionSupport;public class First extends ActionSupport{	/**	 * 	 */	private static final long serialVersionUID = 1L;}

struts.xml:

<?xml version="1.0" encoding="UTF-8" ?><!-- XML声明 --><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><!-- 指定Struts 2配置文件的DTD信息 --><struts><!-- 根节点 -->	<constant name="struts.i18n.encoding" value="gb2312"></constant>	<package name="struts2" extends="jfreechart-default">			<action name="first" class="struts.First"> 			<result name="success">second.jsp</result> 		</action> 	</package>	</struts>

这样就OK了!

整个运作流程就是,本地启动tomcat后,浏览器输入:http://localhost:8080/Struts2
会进入到工程的index.jsp页面,点击第二个链接,会经过web.xml拦截所有请求,链接“<a href=”first.action”>”因为有“.action“请求,会进图到src目录下的struts.xml文件中。然后经过First.class代码的逻辑处理(这里没有做逻辑处理)后,最后成功跳转到second.jsp页面中。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106309.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • vue双向绑定原理面试题_面试可以记笔记吗

    vue双向绑定原理面试题_面试可以记笔记吗2019年6月6号,为了爱情,我离开工作了一年多的广州来到了杭州这个互联网城市。开始我的前端面试之旅…放下拧螺丝的扳手,开始造起了飞机…面试的第一家,一开始就问Vue双向绑定怎么实现。一脸蒙蔽,之前看过源码,但是没有深入研究,只回答出了使用Object.definePropertyObject.defineProperty(obj,prop,{//…g…

    2022年10月17日
  • HashMap原理<转>

    HashMap原理<转>

  • JDK卸载和彻底删除

    JDK卸载和彻底删除第一步:点击“控制面板”。第二步:点击“卸载程序”。第三步:进入到“程序和功能”界面,找到jdk的两个程序:①java8update171(64-bit);②javaSEDevelopmentKit8update171(64-bit);右击卸载即可第四步:在“运行”中输入Regedit,打开注册表编辑器,找到HKEY_LOCAL_MACHINE/SOFTWARE/JavaSo…

  • react路由懒加载[通俗易懂]

    react路由懒加载[通俗易懂]1

  • vc++菜鸟教程_vc6.0使用教程详解

    vc++菜鸟教程_vc6.0使用教程详解怎样编写自己的VCL控件     用过Delphi的朋友们,大概对Delphi的最喜欢Delphi的不是他的强类型的pascal语法,而是强大的VCL控件,本人就是一位VCL控件的爱好者。    VCL控件的开源,给我们带来了享之不尽的好处。不像以前的ole控件以及ActiveX,你完全可以重写Delphhi标准控件,而且网上这方面的资源很多。    关于如何编写VCL控件,和多Delphi

  • 使用Chrome Frame插件解决IE浏览器兼容问题

    使用Chrome Frame插件解决IE浏览器兼容问题时不时碰到客户的浏览器为IE7,IE8,甚至IE6的,他们不能升级浏览器,因为升级后,机器中其它的重要系统无法访问。而新系统的前端又需要浏览器的支持,比如H5,SVG等等,换框架结构,成本无疑是巨大的,而且风险不可控。针对此种情况,安装GoogleFrame是相对非常完美的解决方案,不要求升级浏览器,只安装一个插件,且对原系统无任何干扰,新系统也可根据情况对是否使用GoogleFrame插件进…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号