框架技术,Struts2入门配置

简介: 框架技术,Struts2入门配置

1 什么是框架

框架是一个项目的半成品。在创建项目的时候,先把框架搭建起来,这样项目就完成了一些公共的功能。我们基于框架进行编写项目,就不用再关注公共功能了,只需要去写我们项目跟其他项目不一样的业务就可以。 公共的功能指的是:比如到数据库里面获取数据,再比如,收集表单中的数据。

程序开发过程中的半成品,解决项目开发过程中通用的问题,从而提高项目开发效率。

项目 = 框架 + 业务逻辑代码;

2 Struts2框架的介绍

Struts2框架用来完成MVC模式中控制器(Controller)部分,替换原项目中Servlet(XxxAction)部分代码。


Jsp+servlet+javabean

Servlet要做的事情

1.收参。2.参数的类型转换。3.参数封装成实体对象。

4.页面的跳转。视图的名称写死在控制器里面了。这样控制器和视图的耦合性就非常的高。

观察struts2官网上提供的资料:

3 Struts2的第一个案例

从浏览器发出一个请求,请求进入struts2的控制器,在控制器里面打印一句hello Struts2。页面跳转到一个index.jsp里面。

  • 1.导入strust2相关的jar包。参考struts-2.3.15.1\apps\struts2-blank\WEB-INF\lib
  • 2.在项目的web.xml里面配置struts2的核心控制器。
    参考struts-2.3.15.1\apps\struts2-blank\WEB-INF\web.xml
  • 3.写控制器类。
  • 4.对action进行配置。 需要你从空项目中去复制一个struts.xml配置文件放入到我们的src文件夹里面。 参考\apps\struts2-blank\WEB-INF\classes\struts.xml

复制后删除掉该文件中除了跟标签外的所有内容。

  • 5、配置web.xml 作用:让struts2生效
  • 6.测试。访问路径为: http://ip:port/appName/namespace/actionName

4、开发细节

1.struts.xml的配置

  package标签和java中package的作用类似
  java包package的作用:对class进行分门别类的管理 可以省略
  struts2中package作用:对action进行分门别类的管理 不能省略
                      把相同模块的action放置到同1个包下
                     方便后期的维护工作          
          name:为 package标签起一个名字,作为唯一标识用 随便写
            extends:要继承的父包 struts-default默认父包(规范)
      http://localhost:8989/struts2-day01/first      
<struts>
   <package name="first" extends="struts-default">
   <!--   请求转发的跳转 -->
    <action name="testdis" class="com.macw.action.first.test">
      <result name="ok" type="dispatcher">/index.jsp</result>
    </action>
  <!-- 重定向 -->    
    <action name="red" class="com.macw.action.first.test">
      <result name="ok" type="redirect">/index.jsp</result>
    </action>
   </package>
   <package name="test02" extends="struts-default" namespace="/test">
    <action name="ok_*" class="com.macw.action.first.test" >
      <result name="m1">/index.jsp</result>
    </action>
   </package>

2、Struts2的工具类:ServletActionContext

用于获取Servlet中的request和response

5、补充:

1. action的访问方式:

a) http://ip地址:port/项目名/name属性值

http://localhost:8989/struts2-day01/login

b) http://ip地址:port/项目名/name属性值.action

http://localhost:8989/struts2-day01/login.action


2. MyEclipse中添加struts.xml的智能提示

Dtd(Document tType Define)文档类型定义

通常用于约束一个xml文件可以出现的内容以及次序。

A)从struts-core.jar中解压缩出struts-2.3.dtd

B)在MyEclipse中设置关联

6、 Struts2的底层的大致执行过程:

1.项目接受到所有的请求,请求都会去运行StrutsPrepareAndExecuteFilter

2.在过滤器中request.getRequestURi();得到/appName/namespace/actionName

3.通过字符串截断分别获取到请求的namespace和actionName

4.通过io读取struts.xml,通过namepace和actionName获取到ActionClass。

5.拿到actionClass通过反射生成一个Action对象。

6.调用action对象的execute方法,得到一个字符串。

7.再去读struts.xml看第六步的字符串对应到了哪一个jsp文件中。然后转发过去。

目录
相关文章
|
7月前
|
前端开发 JavaScript Java
JAVAEE框架技术之4springMVC入门
JAVAEE框架技术之4springMVC入门
137 0
JAVAEE框架技术之4springMVC入门
|
7月前
|
前端开发 Java Maven
SpringMVC之入门搭建框架
SpringMVC之入门搭建框架
|
6月前
|
设计模式 JSON 前端开发
Struts2框架知识分享
【6月更文挑战第7天】Struts2框架知识分享
75 0
|
7月前
|
XML 前端开发 Java
外文翻译:Struts框架介绍
外文翻译:Struts框架介绍
|
前端开发 Java 应用服务中间件
SpringMVC 框架学习2
SpringMVC 框架学习2
74 0
|
设计模式 开发框架 前端开发
SpringMVC 框架学习1
SpringMVC 框架学习
100 0
|
XML JSON 前端开发
SpringMVC 框架学习3
SpringMVC 框架学习3
66 0
|
XML JSON 前端开发
SpringMVC 框架学习4
SpringMVC 框架学习4
110 0
|
前端开发 Java 数据库连接
SpringBoot从0到实战7:web项目中框架分层
业务模块的逻辑功能设计,和DAO层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。 好处:封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。
|
前端开发 Java