Struts1
1.Action什么时候被初始化?
答:当第一次对应的action被请求时其被初始化(注意:不是web服务启动时,读取struts-config.xml配置文件时被初始化).
2.每个Action是否在每一次被请求是都进行初始化?
答:不是。因为struts1的action是单例模式。所以每个Action只会被初始化一次。
3.struts1的action是线程安全的吗?
答:不是。因为所有的请求共享一个action实例。
4.怎样实现actin的安全性编程?
答:a.注意不要用实例变量或者类变量共享只是针对某个请求的数据 b.注意资源操作的同步性
5.关于struts1的异常处理方式有几种?
答:有2种。
一:针对所有action的全局异常处理机制。如:
<global-exceptions> <exception key="user.login.invalida.user" path="/login.jsp" type="com.test.struts.UserLoginException"/> </global-exceptions>
二:针对指定action的局部异常处理机制.如:
<action-mappings> <action name="loginForm" path="loginAction" scope="request" type="com.test.struts.LoginAction" validate="false"> <exception key="user.login.invalide.user" path="/login.jsp" type="com.test.struts.UserLoginException"/> </action> </action-mappings>
6.怎样使用struts1异常处理?
答:1.配置<exception>可以指明path(发生异常后,跳转的路径),key(在struts1资源文件中配置的异常信息的键,对应的值在资源文件中),type(需要捕获的java异常类) 2.在相应的action中抛出异常(throw new UserLoginException()) 3.在异常处理页面(path所指页面)使用html:errors标签打印提示信息 说明:在当前工程下创建一个资源文件(如:ApplicationResources.properties),然后在struts-config.xml文件中使用<message-resources></message-resources>配置其路径,如: <!-- 注意:此处的路径分割符不是/,并且资源文件不带后缀名 --> <message-resources parameter="com.test.ApplicationResources"> <!-- 此示例的资源文件放在了com.test包内 --> </message-resources> ApplicationResources.properties内容如下: user.login.invalide.user=it is an invalid user!