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方法后就可以使用这写数据。