Struts2 直接訪問Servlet API(二十五)
1.通過IOC方式直接訪問Servlet API
1.action
strust.xml
login.jsp
success.jsp
2.採用非IOC直接訪問Servlet API
其他的和上面一樣
在Struts2中,通過,Ioc方式將Serlvet物件注入到Action中,具體實現是一組介面覺得,要採用Ioc方式,必須在Action中實現一下介面:
ApplicationAware :以Map型別向Action中注入儲存在ServletContext中的Attribute集合。
SessionAware: 以Map型別向Action注入儲存在HttpSerssoin中的Attribute集合
CookiesAwate:以Map型別向Action中注入Cookie中的資料集合。
ParameterAware:向Action中注入請求引數集合。
1.action
package com.sh.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;
public class IocAction extends ActionSupport implements ServletRequestAware{
private HttpServletRequest request;
private String loginName;
private String loginPassword;
private String message;
public String checkLogin(){
HttpSession session=request.getSession();
session.setAttribute("login", this.loginName);
return SUCCESS;
}
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request=request;
}
// get set
}
strust.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="default" extends="struts-default"> <action name="iocAction" class="com.sh.action.IocAction" method="checkLogin"> <result name="success">/success.jsp</result> <result name="login">/login.jsp</result> </action> </package> </struts>
login.jsp
<body>
<center>
<h3>
<s:text name="loginTitle"/>
${popedom}
${error}
</h3>
<s:form action="iocAction" method="post">
<s:textfield name="loginName" label="loginName" />
<s:textfield name="loginPassword" label="loginPassword"/>
<s:submit label="loginBtn" />
<s:token/>
</s:form>
</center>
</body>
success.jsp
<body>
讀取session中的資訊:${sessionScope.login}
讀取application中的資訊:${applicationScope.login}
</body>
2.採用非IOC直接訪問Servlet API
除了ActionContext 類。Struts2還提供了名稱為ServletActionContext的輔助類來獲取Servlet API,這是非IOC的方式,其靜態方法有,getPageContext(),getRequest(),getResponse,getServletContext().
package com.sh.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class noIocAction extends ActionSupport{
private String loginName;
private String loginPassword;
private String message;
public String checkLogin(){
HttpServletRequest request=ServletActionContext.getRequest();
HttpSession session=request.getSession();
session.setAttribute("login", this.loginName);
return SUCCESS;
}
//get set
}
其他的和上面一樣
相關文章
- 007--在Struts2的Action中訪問Servlet API三種形式ServletAPI
- Struts2教程之三Action訪問方式
- 軟體設計模式系列之二十五——訪問者模式設計模式
- 透過API訪問HDFSAPI
- 原來很多元素我們可以直接訪問
- SpringCloud 實戰:禁止直接訪問後端服務SpringGCCloud後端
- Laravel API 允許跨域訪問LaravelAPI跨域
- Python使用 Kubernetes API 訪問叢集PythonAPI
- 安裝pbootcms後訪問後臺/admin.php可以,但是直接訪問首頁就404bootPHP
- kubernetes使用http rest api訪問叢集之使用postman工具訪問 apiserverHTTPRESTAPIPostmanServer
- Kubernetes API訪問鑑權之Basic模式API模式
- Confluence6匿名訪問遠端APIAPI
- docker 中容器通過 API 互相訪問DockerAPI
- docker 中容器透過 API 互相訪問DockerAPI
- C# RESTful API 訪問輔助類C#RESTAPI
- JAVAEE框架學習——Struts2——Action API 使用Java框架API
- 教你如何直接訪問php例項物件的private屬性PHP物件
- JavaWeb開發基礎Servlet APIJavaWebServletAPI
- 你知道可以通過網址訪問的Servlet如何實現嗎?Servlet
- Holer實現外網訪問本地RESTful APIRESTAPI
- kubernetes之使用http rest api訪問叢集HTTPRESTAPI
- Windows 10將可直接訪問Linux系統下的檔案WindowsLinux
- JavaScript 跨域訪問(API介面)實現原理分析JavaScript跨域API
- 07@在物件內部儘量直接訪問例項變數物件變數
- 【Thinkphp6】api介面使用apipost等工具可以正常訪問,專案中訪問報跨域問題PHPAPI跨域
- windows系統配置nginx環境執行pbootcms訪問首頁直接404的問題WindowsNginxboot
- #SpringMVC:使用原生的Servlet API #HttpServletRequest、HttpServletResponse @FDDLCSpringMVCServletAPIHTTP
- Windows 直接訪問 WSL2 路徑並直接進行讀寫操作,許可權不足解決方法Windows
- 微軟Cortana現漏洞:可繞過鎖屏密碼直接訪問網站微軟密碼網站
- 使用Bucket4j限制Spring API的訪問速率 - BaeldungSpringAPI
- kubernetes實戰篇之通過api-server訪問dashboardAPIServer
- API開發中如何使用限速應對大規模訪問API
- 【Gin-API系列】Gin中介軟體之鑑權訪問(五)API
- 在kubernetes 叢集內訪問k8s API服務K8SAPI
- servlet 呼叫jdbc 出現得問題ServletJDBC
- 【struts2】
- github-schenkd/nginx-ui:Nginx UI可直接透過介面訪問和修改Nginx配置GithubNginxUI
- github-schenkd/nginx-ui:Nginx UI可直接通過介面訪問和修改Nginx配置GithubNginxUI
- Gitlab怎麼使用訪問令牌訪問Gitlab