Struts学习总结-(一)

一、Struts的概念

  1. struts是一个框架(frameset)
  2. struts是一个web框架
  3. 框架提高了程序的规范的同时,也约束了程序员写代码的自由

二、Struts的运行原理图

 

三、DispatchAction – 分派action

  1. 为了应对action过多的问题从而出现DispatchAction
  2. 把一类的请求放置到一个acton,易于维护和扩展
  3. struts-config.xml文件中的parameter用来区分功能,如:在提交表单或者跳转时把flag加上

    <form method="post" action="/Strust/loginAll.do?flag=LoginUser" autocomplete="on">

    <a href="/Strust/loginAll.do?flag=LoginOut">退出</a>

  4.flag后面的名字与dispatchAction类中定义的方法名相同,从而达到调用的效果

        5.*全局跳转

    struts-config.xml文件中:<global-forward  name=”golbal” path=””></global-forward>

    所谓全局跳转就是所有的action都能跳转到该页面

    所谓局部跳转就是指定action能跳转该页面

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.jinner.domain.Users;
import com.jinner.forms.userForm;
import com.jinner.service.UserService;

public class LoginClass extends DispatchAction {
    /**
     * @author 76429 
     *  使用分派action,需要自己重新命名函数
     */
    public ActionForward LoginUser(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        // 用于响应登录请求

        // 把form转为对应的UserForm对象
        userForm userForm = (userForm) form;
        System.out.println("用户名:" + userForm.getUserName());

        // 简单认证
        UserService userService = new UserService();
        Users user = new Users();
        user.setUsername(userForm.getUserName());
        user.setPassword(userForm.getPasswd());
        if (userService.checkUser(user)) {
            return mapping.findForward("success"); // 转发非重定向,request能用
        } else {
            return mapping.findForward("fail");
        }
    }

    public ActionForward LoginOut(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        // 用于响应退出请求
        //把session清空
        request.getSession().invalidate();
        return mapping.findForward("login");
    }
}
View Code
<action-mappings>
        <action path="/loginAll" name="userform"
            type="com.jinner.actions.LoginClass"
            parameter="flag">
            <!-- parameter用来区分用户的不同请求 (用于DispatchAction) -->

            <!-- 配置跳转 -->
            <!-- name为结果 -->
            <forward name="success" path="/WEB-INF/success.jsp"></forward>
            <forward name="fail" path="/WEB-INF/fail.jsp"></forward>
            <forward name="login" path="/WEB-INF/login.jsp"></forward>
        </action>
    </action-mappings>    
posted @ 2019-02-13 22:29  FirstJinner  阅读(188)  评论(0编辑  收藏  举报