用户验证,错误异常处理,这个看似小事,但有时候处理也比较麻烦,随时有可能处理不好!
一,用户验证处理
- 通过自定义标签直接添加在需要用户验证的页面
- 通过覆盖struts 的RequestProcessor的processRole(),从而获得用户验证功能.
- 通过编写一个Action验证基类,子类继承而获得用户验证功能.
1)自定义标签实现验证
java 代码
- public final class CheckLogin extends TagSupport{
-
- public int doStartTag() throws JspException{
-
- return (SKIP_BODY);
- }
-
- public int doEndTag() extends JspException{
-
- HttpSession session=pageContext.getSession();
- String userName=sesssion.getAttribute("USERNAME");
- if(userName==null){
- pageContext.forward("xxxxx.jsp") ;
- return (SKIP_PAGE);
- }
- return (EVAL_PAGE);
- }
2)struts 的RequestProcessor的processRole(),从而获得用户验证功能
java 代码
- protected boolean processRoles (ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException{
-
- HttpSession session=request.getSession();
- String userName=session.getAttribute("USERNAME");
- if(userName==null){
- RequestDispatcher rd=request.getDispathcher("XXXX.jsp");
- rd.forward(request,response);
- return false;
- }
- return true;
- }
3)编写一个Action验证基类,子类继承而获得用户验证功能.
java 代码
- public abstract class CheckBaseAction extends Action{
-
- public final ActionForward execute(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException {
-
- HttpSession session=request.getSession();
- String userName=session.getAttribute("USERNAME");
- if(userName==null){
- return (mapping.findForward("login"));
- }
- return doExecute(mapping,request,response);
- }
-
- public abstract ActionForward doExecute(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException ;
-
- }
第三种灵活性比前2种强点,但与struts耦合比较强,或者可以使用另一种filter来实现用户检验也不错的选择!
二.异常处理
- 通过Servlet异常处理,只要简单地在Web.xml里配置异常处理类型和返回页面
- 通过Struts的异常处理机制,在struts-config.xml配置局部异常和全局异常
- 通过编写一个Action 异常基类,子类继承而获得异常处理功能
1) Servlet异常处理
xml 代码
- <error-page>
- <error-code>404error-code>
- <location>XXX.jsplocation>
- error-page>
-
- <error-page>
- <exception-type>java.lang.NullPointerExceptionexception-type>
- <location>XXX.jsplocation>
- error-page>
-
2)Struts的异常处理机制,在struts-config.xml配置局部异常和全局异常
xml 代码
-
- <global-exceptions>
- <exception type="java.lang.exception"
- key="action.errors.exception"
- path="/error.jsp"/>
- global-exceptions>
-
-
- <action-mappings>
- <action path="/Login"
- type="cn.com.sqicoo.LoginAction"
- name="LoginForm"
- input="/login.jsp">
- <exception type="java.lang.exception"
- key="action.errors.exception" >
- <forward name="success" path="/login_success.jsp"/>
- action>
- action-mappings>
3)编写一个Action 异常基类,子类继承而获得异常处理功能
java 代码
- public abstract class ErrorBaseAction extends Action{
-
- public final ActionForward execute(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException {
- try{
- return doExecute(mapping,form,request,response);
- }catch(Exception ex){
- return doException(ex,mapping,form,request,response);
- }
- }
-
- public ActionForward doException(Exception ex,
- ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException {
-
- return mapping.findForward("XXX");
- }
-
- public abstract ActionForward doExecute(ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException;
-
- }
分享到:
相关推荐
3. **struts-tiles**:Tiles扩展了Struts的功能,允许开发者创建可重用的页面布局,通过定义模板(Tiles Definition)实现组件化开发。Tiles可以将页面分解成多个部分,每个部分都可以独立管理和重用。 4. **struts...
同时,开发者可以根据需求选择安装额外的插件来扩展Struts 2的功能,如图表插件、富文本编辑器插件等。 总结来说,"Struts 2常用jar包"是构建基于Struts 2的Web应用所必需的类库,它们协同工作,为开发者提供了强大...
- 使用标签库可以提高代码的可重用性和可扩展性,但也要注意不要过度依赖标签,以免降低代码的可读性。 综上所述,struts-html.tld、struts-bean.tld和struts-logic.tld是Struts框架中非常重要的组件,它们提供了...
在这个主题中,我们将详细探讨Struts2框架中常用的jar包及其作用。 1. **struts2-core-2.3.34.jar**:这是Struts2的核心库,包含了框架的主要组件,如Action类、拦截器、结果类型、配置管理等。它实现了请求的处理...
这些插件扩展了Struts2的功能,使得开发更便捷,例如,通过Ajax插件可以实现页面的异步更新,i18n插件方便了多语言环境的应用,Tiles插件则用于创建复杂的布局和模板。 在实际开发中,除了这些核心JAR包,还需要...
Struts2是一个流行的Java web应用程序框架,用于构建和维护可扩展且易于管理的企业级应用。这个压缩包包含了一些Struts2.3.4版本的核心组件和插件,这些组件和插件是开发基于Struts2的应用时不可或缺的部分。以下是...
Struts2是一个强大的Java web应用程序框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性、可扩展性极高的应用的工具和结构。本压缩包包含了13个Struts2框架中常用的类包,对于初学者和...
Struts2是一个强大的Java web框架,它为开发者提供了一种优雅的方式来构建可维护性和扩展性良好的Web应用程序。在Struts2框架中,标签库是其重要特性之一,它极大地简化了视图层的开发,提高了代码的可读性和可维护...
9. **Action Support**:Struts提供了ActionSupport类,它包含了常用的验证和校验功能,如validate()方法,可以简化表单验证的编写工作。 10. ** strut2-dojo-plugin**:Struts2还提供了与Dojo JavaScript库的集成...
4. **struts-tiles.jar**:Tiles是Struts的一个扩展,用于布局管理。它允许开发者定义可重用的页面布局,然后将内容插入到这些布局中。这提高了代码复用性和页面设计的灵活性。 5. **struts-logic.jar**:包含了...
在Java EE环境中,Struts框架极大地简化了前端控制器(Front Controller)的实现,提升了代码的可维护性和可扩展性。 Struts框架的核心组件包括: 1. **ActionServlet**:这是Struts框架的入口点,负责处理HTTP...
Struts是Apache软件基金会旗下的一款开源Java Web应用程序框架,它基于Model-View-Controller(MVC)设计模式,旨在简化开发过程,提供可维护性和可扩展性。 在这些压缩包文件中,我们可以找到不同版本的Struts API...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。这个框架基于MVC(Model-View-Controller)设计模式,它简化了开发过程,提供了强大的控制层,允许开发者集中精力在业务...
Nested Tags 是对前三个标签库的扩展,允许标签之间进行嵌套,使得在处理复杂结构的 bean 时更加方便。例如,如果你有一个 bean 包含其他 bean,Nested Tags 可以帮助你轻松地访问嵌套 bean 的属性。 5. **Tiles ...
以下是对"struts常用标签及其用法"的详细阐述: 1. **显示数据标签**: - `html:` 标签:用于创建HTML表单元素,如`<html:text>`用于输入框,`<html:password>`用于密码框,`<html:submit>`用于提交按钮等。 - `...
这个压缩包“struts2常用的一些jar包.rar”包含了Struts2框架运行所必需的核心库和其他相关组件。下面将详细介绍Struts2框架及其核心组件。 Struts2是Apache软件基金会下的一个开源项目,它是基于MVC(Model-View-...
Java开发常用的ssh开发框架的struts的jar包使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用
Struts2是一个流行的Java web框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护、可扩展的Web应用程序的强大工具。这个压缩包包含了Struts2框架运行所需的一些核心jar包以及相关的源代码...
本资源包含了在日常开发Struts2应用时可能需要用到的常用架包。 首先,核心框架包是Struts2的核心部分,包括了控制器组件、拦截器、结果类型等关键功能。这个包通常命名为`struts2-core.jar`,它是所有其他模块的...