struts2访问Servlet API的三种方式

ActionContext访问servlet


login.jsp
<form action="ActionContextTest" method="post">
    用户名<input type="text" name="name"> <br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="提交"><br>
</form>

Action

public class ActionContextTest extends ActionSupport {
    private String name;
    private String password;

    public String execute() {
        ActionContext context = ActionContext.getContext();
        /*获取表单数据*/
        System.out.println(context.getParameters());
        /*Set获取遍历*/
        Map map = context.getParameters();
        Set<String> sets = map.keySet();
        for (String set : sets) {
            System.out.println(set + "--" + map.get(set));
        }

        /*entrt获取遍历*/
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        Map<String, Object> session = (Map<String, Object>) context.getSession();
        for (Map.Entry entry : entrySet) {
            System.out.println(entry.getKey() + "==" + entry.getValue());
        }
        return "success";
    }
}

success.jsp

<%
    String name;
    ActionContext context=ActionContext.getContext();
    Map httpsession=context.getSession();
    Set<String> sets=httpsession.keySet();
    for(String set:sets){
        out.print(set);
        out.print("<br>");
        out.print(httpsession.get(set));
        out.print("<br>");
    }
%>

***Aware方式访问Servlet

login.jsp

<form action="ServletRequestAwareTest" method="post">
    用户名<input type="text" name="name"> <br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="提交"><br>
</form>

action

public class ServletRequestAwareTest extends ActionSupport implements ServletRequestAware, ServletContextAware {

    private HttpServletRequest request;
    private ServletContext servletContext;
    private ServletResponse servletResponse;
    private String name, password;

    public void setServletRequest(javax.servlet.http.HttpServletRequest request) {
        this.request = request;
    }

    public void setServletContext(ServletContext var1) {
        this.servletContext = var1;
    }


    public String execute() throws Exception {

        name = request.getParameter("name");
        password = request.getParameter("password");

        request.setAttribute("name", name);
        request.setAttribute("password", password);
        return "aware";
    }

}

success.jsp

<%
    out.print("name:"+request.getAttribute("name"));
    out.print("<br>");
    out.print("password:"+request.getAttribute("password"));
%>

ServletActionContext方式访问

login.jsp

<form action="ServletActionContextTest" method="post">
    用户名<input type="text" name="name"> <br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="提交"><br>
</form>

action

private String name;
private String password;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String execute() throws Exception {

    ServletActionContext.getRequest().setAttribute("name",name);
    ServletActionContext.getRequest().setAttribute("password",password);
    return "servletactioncontext";
}

success.jsp

<%
    out.print("name:"+request.getAttribute("name"));
    out.print("<br>");
    out.print("password:"+request.getAttribute("password"));
%>

三种方式都可以用getter、setter方法获取表单数据,action中的命名要和表单中的命名一样才能实现,申明了同名变量自动生成getter\setter方法后就可以使用这写数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值