Struts2框架学习笔记
框架下载地址
它是一个遵循MVC设计理念的框架 MVC(model-view-controller,模型-视图-控制器)
应用框架模型为:客户端(请求)➡struts2过滤器(strutsprepaerandexecutefilter)[转发]➡action对象[返回]➡视图
- 导入struts2.jar包到lib目录下
- 在web.xml中配置struts2自带过滤器(strutsprepaerandexecutefilter)`
<filter>
<!--过滤器名称-->
<filter-name>StrutsPrepareAndExecuteFilter</filter-name>
<!--过滤器类-->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<!--过滤器名称-->
<filter-name>StrutsPrepareAndExecuteFilter</filter-name>
<!--过滤器映射-->
<url-pattern>/*</url-pattern>
</filter-mapping>
- 在web项目的源码文件中创建struts.xml文件并配置相关action文件。除了配置struts…xml文件外还需要配置struts.properties文件(作用:框架属性配置文件)。这两个配置文件需要开发人员手动配置。
<!--包名 和继承包-->
<package name="studentInfo" extends="struts-default">
<action name="user" class="com.java1234.action.UserAction">
<!--处理结果对应的映射页面-->
<result name="error">/login.jsp</result>
<result name="logOut" type="redirect">/login.jsp</result>
<result name="success">/main.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
4.定义action类继承与actionsupport。struts2框架的工作原理:客户端向web容器发送http请求,struts2过滤器调用dofilter()方法,通过内部机制寻找并分配到相应的action,匹配后调用action的execute()方法,根据处理结果返回相应的值,然后struts2通过返回值查找相应的映射页面,返回客户端。现在多使用动态action,故不重写execute()方法。例下:
> <a href="useraction!logout"></a>
中途插入讲解一下servlet的生命周期。servlet生命周期分为4个进程分别是
(1)被创建:
默认情况下,Servlet第一次被访问时,被服务器创建。会调用init()方法。
一个Servlet只会被创建一次。init()方法也只会被调用一次。
Servlet是单例的。而服务器时多线程的。可能存在线程安全问题。
为了避免安全问题,在Servlet中尽量不要定义成员变量。即使定义了。也不要进行其他操作(只能查询)。可以配置启动服务器时,创建Servlet
配置启动创建
值:
0和正整数:在服务器启动时创建
数字越小 优先级越高
load-on-startup>2</load-on-startup
负整数:-1是默认值。在第一次被访问时创建
(2)提供服务:
每一次被访问,都会调用service方法提供服务。调用多次。
提供服务:
1.获取请求消息数据
2.设置响应消息数据
如果重写了dopost()和doget()和service()方法,那么服务器自动调用service。
如若没重写 service()方法 服务器则根据交互方式判断调用时dopost()还是doget()方法。并且可以额外设置形参。
(3)被销毁:
服务器关闭时,servlet被销毁。
服务器正常关闭前,会销毁Servlet,在销毁之前,会调用destory()方法。只调用一次。
今天tomcat7升级到tomcat9的问题
遇到了spring boot冲突。需要删除jdk目录下的jre. lib. ext/serverlet—api 点代表下一级目录