24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > Java开发

struts框架基础:框架搭建、获取参数、获取作用域

2017-07-11 20:36:00 东方博宜 阅读

1、框架

框架:半成品,封装了某些设计模式!

JQuery,封装了js的常见操作!

Struts:实现了MVC设计模式的框架,并提供web开发的常见功能!

Hibernate:实现了DAO设计模式的框架!

Spring:让我们的程序更加灵活的一个框架!

 

2struts

实现了MVC设计模式的框架,并提供web开发的常见功能!

入门案例:

第一步:添加struts框架

图片.png

 

添加完struts之后,我们项目多了如下的内容:

aStruts.xml文件

bjar包的引用

cweb.xml中的过滤器的配置

  <filter>

    <filter-name>struts2</filter-name>

    <filter-class>

        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

    </filter-class>

  </filter>

  <filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>*.action</url-pattern>

  </filter-mapping>

第二步:编程程序代码

index.jsp

    <a href="login.action">用户登陆</a>

    <br />

    <a href="reg.action">用户注册</a>

 

 

UserAction

/**

 * 负责用户信息处理的中转控制层

 */

public class UserAction {

 

    /**

     * 处理登陆请求

     * @return

     */

    public String checkLogin(){

        System.out.println("处理登陆请求!");

        return null;

    }

   

    public String checkReg(){

        System.out.println("处理注册请求!");

        return null;

    }

}

 

Struts.xml

    <!-- package包的定义,name可以自定义 -->

    <package name="mystruts1" extends="struts-default" namespace="/">

      

       <!-- 配置xx.action的请求访问xx类的xx方法 -->

       <!-- name对应页面的请求的名称 -->

       <action name="login" class="com.user.action.UserAction" method="checkLogin"></action>

      

       <!-- reg.action -->

       <action name="reg" class="com.user.action.UserAction" method="checkReg"></action>

</package>

 

 

3、参数的获取和页面跳转

Aaction类获取参数:配置和前端页面同名的属性,并为属性提供getset方法!

B、跳转:

方法return一个字符串,通过这个字符串匹配struts.xml中的action节点的result子节点来确认跳转到的页面和跳转方式(重定向、forward跳转)!

 

例子:

index.jsp

        <h1 align="center">用户登陆</h1>

   

    <!-- methodget表示以url带参数的形式,post表示以隐藏的方式带参数提交 -->

        <form action="login.action" method="post">

            <p>

                用户名:

                <input type="text" name="username" />

                *

            </p>

 

            <p>

                密码:

                <input type="password" name="password" />

                *

            </p>

 

            <p>

                <input type="submit" value="提交" />

                <input type="reset" value="重置" />

            </p>

        </form>

 

UserAction

/**

 * 负责用户信息处理的中转控制层

 */

public class UserAction {

 

    /**

     * 处理登陆请求

     * @return

     */

    public String checkLogin(){

        String r = "fail";

        System.out.println("处理登陆请求!" + this.username + "" + this.password);

       

        if(this.username != null && this.username.equals("管理员") && this.password != null && this.password.equals("123321")){

            r = "success";

        }

        return r;

    }

   

    //配置和前端页面参数同名的属性

    private String username;

    private String password;

    public String getUsername() {

        return username;

    }

 

    public void setUsername(String username) {

        this.username = username;

    }

 

    public String getPassword() {

        return password;

    }

 

    public void setPassword(String password) {

        this.password = password;

    }

   

}

 

main.jsp

         欢迎登陆!

 

struts.xml

    <!-- package包的定义,name可以自定义 -->

    <package name="mystruts1" extends="struts-default" namespace="/">

      

       <!-- 配置xx.action的请求访问xx类的xx方法 -->

       <!-- name对应页面的请求的名称 -->

       <action name="login" class="com.user.action.UserAction" method="checkLogin">

          <!-- resultname对应返回值的名字,type对应跳转类型(默认值:dispatcher) -->

          <result name="success">/main.jsp</result>

          <!-- type="redirect"表示重定向 -->

          <result name="fail" type="redirect">/index.jsp?msg=fail</result>

       </action>

    </package>

 

学习框架的几个层次:

A、学习如何使用框架

B、思考为什么这么设计,这样设计的好处在哪里?

C、尝试用基础知识实现部分框架的设计!

 

4struts中获取作用域

A、通过ServletActionContext类来获取

UserAction

    /**

     * 处理登陆请求

     * @return

     */

    public String checkLogin(){

        String r = "fail";

        System.out.println("处理登陆请求!" + this.username + "" + this.password);

       

        if(this.username != null && this.username.equals("管理员") && this.password != null && this.password.equals("123321")){

            //获取request

            HttpServletRequest request = ServletActionContext.getRequest();

            //获取HttpSession

            HttpSession session = request.getSession();

            //获取application

            ServletContext application = ServletActionContext.getServletContext();

           

            request.setAttribute("welcomemsg", "欢迎您访问本系统!");

            session.setAttribute("usermsg", username);

            application.setAttribute("bignews", "今晚大暴雨,请注意!!!");

           

            r = "success";

        }

        return r;

    }

 

main.jsp

         欢迎登陆!

    <br />

    获取作用域的值:

    <br />

    ${requestScope.welcomemsg}

    <br />

    ${sessionScope.usermsg}

    <br />

    ${applicationScope.bignews}

 

注意:属性的值默认存储在request作用域中!


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2017 www.czos.cn