Strtus2访问Servlet的API 三种方式

不一样的地方就是下图所示:

--------------------------------------------以下是具体代码过程-----------------------------------------

以下是demo1.jsp代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>Strtus2 访问Servlet的API</h3><br>
<h3>方式一:完全解耦和方式</h3><br>
<form action="${ pageContext.request.contextPath }\requestDemo1.action" method="post">
姓名:<input type="text" name="name"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
<h3>方式二:使用原生的方式访问</h3><br>
<form action="${ pageContext.request.contextPath }\requestDemo2.action" method="post">
姓名:<input type="text" name="name"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
<h3>方式三:接口注入的方式</h3><br>
<form action="${ pageContext.request.contextPath }\requestDemo3.action" method="post">
姓名:<input type="text" name="name"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
</body>
</html>

以下是demo2.jsp代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>成功的标志</h1>
${ reqName }
${ sessName }
${ appName }
</body>
</html>

在struts.xml中

新建以下类和xml

以下是RequestDemo1的代码:

package demo1;

import org.apache.struts2.dispatcher.HttpParameters;
import org.apache.struts2.dispatcher.Parameter;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class RequestDemo1 extends ActionSupport {
private static final long serialVersionUID = 7010536980663323289L;
@Override
public String execute() throws Exception {
ActionContext context = ActionContext.getContext();
HttpParameters map = context.getParameters();
System.out.println(map);
for(String key : map.keySet()) {
Parameter parameter = map.get(key);
System.out.println("key:" + key + " value:"+ parameter);
}
context.put("reqName", "reqValue");
context.getSession().put("sessName", "sessValue");
context.getApplication().put("appName", "appValue");
return SUCCESS;
}
}

以下是RequestDemo2的代码:

package demo1;

import java.util.Arrays;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class RequestDemo2 extends ActionSupport {
private static final long serialVersionUID = 7010536980663323289L;
@Override
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
Map<String, String[]> map = request.getParameterMap();
for(String key : map.keySet()) {
String[] values = map.get(key);
System.out.println("key:" + key + " value:"+ Arrays.toString(values));
}
request.setAttribute("reqName","reqValue");
request.getSession().setAttribute("sessName", "sessValue");
request.getServletContext().setAttribute("appName","appValue1");
ServletActionContext.getServletContext().setAttribute("appName","appValue2");
return SUCCESS;
}
}

以下是RequestDemo3的代码:

package demo1;

import java.util.Arrays;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.util.ServletContextAware;

import com.opensymphony.xwork2.ActionSupport;

public class RequestDemo3 extends ActionSupport implements ServletRequestAware,ServletContextAware{
private static final long serialVersionUID = 7010536980663323289L;
private HttpServletRequest request;
private ServletContext context;
@Override
public String execute() throws Exception {
Map<String, String[]> map = request.getParameterMap();
for(String key : map.keySet()) {
String[] values = map.get(key);
System.out.println("key:" + key + " value:"+ Arrays.toString(values));
}
request.setAttribute("reqName","reqValue");
request.getSession().setAttribute("sessName", "sessValue");
context.setAttribute("appName","appValue1");
return SUCCESS;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setServletContext(ServletContext context) {
this.context = context;
}
}

猜你喜欢

转载自www.cnblogs.com/PengeStudy/p/10266215.html