欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

说说Action和Jsp页面交互的那些事

程序员文章站 2022-05-05 08:46:57
...

* 啰嗦

       今天必须在台面上做一下批评(交给你们了)与自我批评。之前写博客,好像过于注重形式了,啰里啰嗦的。而且太过于注重写的博客是否可以让别人理解(表达上,非技术,小编仍是学习中的小鸟~),之后,小编要及时改正,重新审视了一下写博客的目的,给自己阶段性的学习一个总结;记录思维闪现的那一瞬间;重要的是自己看明白就好了,当然如果与路过的小伙伴产生共鸣,临表涕临。当然自己也尽量用简洁的语言把事情说明白,这里与君共勉。


* action与jsp握手

       之前小编会先说原理,然后甩demo,今天我们换一个思路,先上demo宏观把握以下。jsp( javasever Pages)页面我们结合熟悉asp(action sever pages)这样就明白很多了,主要的作用显示,用户直接看到的。
    action呢?这里小编想到的就是控制了,jsp页面的带着用户输入的参数,经过action处理,action想想之后会告诉服务器做一个什么样的回应,通过一个参数,决定要显示那个jsp画面。

    我们先看一下jsp中是如何操作的,背景输入用户名,密码,登录:

<form method="post" action="${pageContext.request.contextPath }/adminUser_login.action" target="_parent" name='theForm' onsubmit="return validate()">
  <table cellspacing="0" cellpadding="0" style="margin-top: 100px" align="center">
  <tr>
    <%--<td><img src="${pageContext.request.contextPath}/images/login.gif" width="178" height="256" border="0" alt="SHOP" /></td>--%>
    <td style="padding-left: 50px">
      <table>
      <tr>
        <td>管理员姓名:</td>
        <td><input type="text" name="username" /></td>
      </tr>
      <tr>
        <td>管理员密码:</td>
        <td><input type="password" name="password" /></td>
      </tr>

      <tr>
        <td>&nbsp;</td>
        <td><input type="submit" value="进入管理中心" class="button"/></td>
      </tr>
      </table>
    </td>
  </tr>
  </table>
  <input type="hidden" name="act" value="signin" />
</form>

    看看action中我们是如何处理的,

/**
 * 后台管理的action--viola--2018年1月19日20:56:48
 * Created by Viola on 2018/1/19.
 */
public class AdminUserAction extends ActionSupport implements ModelDriven<AdminUser>{
    /**模型驱动需要使用的对象*/
    private AdminUser adminUser=new AdminUser();
    @Override
    public AdminUser getModel() {
        return adminUser;
    }

    /**注入service*/
    private AdminUserService adminUserService;

    public void setAdminUserService(AdminUserService adminUserService) {
        this.adminUserService = adminUserService;
    }

    /**
     * 管理员登录--viola--2018年1月19日21:11:50
     * @return
     */
    public String login(){
        //登录方法
        AdminUser exitAdminUser=adminUserService.login(adminUser);
        if (exitAdminUser ==null){
            //登录失败
            //显示错误信息
            this.addActionError("亲,您输入的用户名或密码错误!");
            return "loginFail";
        }else{
            //登录成功
            //将用户信息存入session
            ServletActionContext.getRequest().getSession().setAttribute("exitAdminUser",exitAdminUser);
            return "loginSuccess";
        }
    }
}

    我先不想说这里是如何如何,我想说说,浮现在我脑子里的问题:为什么action中可以接受到用户名和密码?jsp怎么传过去的?登录成功,这条闭合的回线是如何实现的?ModelDriven<>是什么?session如何将值传到jsp页面上供用户查看?联想到了值栈也是可以的,这两个的区别是什么?addActionError这个信息也可以显示到jsp页面吗?
    亲们可以先过一下这样的问题,希望我们会有思维的碰撞~下面开始说说我对这些问题找的答案是什么~


* struts

       


* 3.1 action


* 3.2 模型驱动


* 3.3 值栈/session


* 3.4 s标签