struts 访问servlet api (Servlet...Aware方式)

来源:互联网 发布:传奇霸业龙脉升级数据 编辑:程序博客网 时间:2024/06/05 00:25

    struts2 提供有Servlet...Aware接口来实现全局使用servlet api的目的,Aware接口常用下面三个:

  ServletRequestAware : 提供HttpServletRequest;

  ServletResponseAware : 提供HttpServletResponse;

  ServletContext:提供ServletContext;

 下面依然通过前两篇博客的登录例子来演示实现方法:

package com.cd.action;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.util.ServletContextAware;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;public class LoginAction implements ServletRequestAware,        ServletResponseAware,ServletContextAware{    //设置全局使用 servlet api    private HttpServletRequest request;    private HttpServletResponse response;    private ServletContext context;    /**     *  实现接口方法     */    @Override    public void setServletRequest(HttpServletRequest request) {        this.request = request;    }    @Override    public void setServletResponse(HttpServletResponse response) {        this.response = response;    }    @Override    public void setServletContext(ServletContext context) {        this.context = context;    }    public String login()  {        //直接使用request        Object username = request.getParameter("username");        Object password = request.getParameter("password");        if(username != null && password != null)        {            if("jack".equals(username)&&"jack".equals(password))            {                //获得session                HttpSession session = request.getSession();                session.setAttribute("username",username);                return  "success";            }            else            {                try                {                    //直接使用response                    response.getWriter().write("failed");                }                catch (IOException e)                {                    e.printStackTrace();                }                return  null;            }        }        else        {            try            {                //直接使用                response.getWriter().write("check input");            }            catch (IOException e)            {                e.printStackTrace();            }            return null;        }    }}


    xml配置文档,返回界面等和前边第一个登录例子一样就不贴出来了。


0 0
原创粉丝点击