Struts1
1.Action什么时候被初始化?
2.每个Action是否在每一次被请求是都进行初始化?
3.struts1的action是线程安全的吗?
4.怎样实现actin的安全性编程?
5.关于struts1的异常处理方式有几种?
答:有2种。
一:针对所有action的全局异常处理机制。如:
二:针对指定action的局部异常处理机制.如:
6.怎样使用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!