Struts2中Action访问Servlet API

来源:互联网 发布:网络基础知识入门 编辑:程序博客网 时间:2024/05/11 01:14

Struts2的Action如何访问Servlet API呢,WEB应用中通常需要访问的Servlet API就是HttpServletRequest、HttpSession和ServletContext,这三个接口分别代表JSP内置对象中的request、session和application。下面介绍一种简单的方式访问Servlet API。即使用struts2内置静态对象ServletActionContext访问Servlet API,这个类包含了几个静态方法。

static PageContext getPageContext():取得web应用的PageContext对象

static HttpServletRequest getRequest():取得web应用的HttpServletRequest对象

static HttpServletResponse getResponse():取得web应用的HttpServletResponse对象

static ServletContext getServletContext():取得web应用的ServletContext对象

在JSP页面中新建一个form表单提交用户名密码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title>  </head>    <body><form action="<%=path %>/loginAction.action" method="post">用户名:<input type="text" name="username"/><br>密码:<input type="password" name="password"/><br><input type="submit" value="提交"/></form>  </body></html>
新建一个Action类
package com.action;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import javax.servlet.jsp.PageContext;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{@Overridepublic String execute() throws Exception {HttpServletRequest request=ServletActionContext.getRequest();//取得HttpServletRequest对象HttpServletResponse response=ServletActionContext.getResponse();//取得HttpServletResponse对象PageContext pageContext=ServletActionContext.getPageContext();//取得PageContext对象ServletContext context=ServletActionContext.getServletContext();//取得ServletContext对象HttpSession session=request.getSession();//通过上面的request获得HttpSession对象String username=request.getParameter("username");//获得表单提交的usernameSystem.out.println(username);return SUCCESS;}}
struts.xml配置

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <package name="userLogin" namespace="/" extends="struts-default">    <action name="loginAction" class="com.action.LoginAction">    <result>/index.jsp</result>    </action>        </package></struts>
这样即可在Action中获得Servlet API并通过API获得表单提交的数据



0 0
原创粉丝点击