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
}
其他的和上面一樣
相關文章
- Java Web之Struts2訪問Servlet APIJavaWebServletAPI
- 007--在Struts2的Action中訪問Servlet API三種形式ServletAPI
- 直接透過ODBC API訪問SQL資料庫 (轉)APISQL資料庫
- 在servlet中如何訪問javabeanServletJavaBean
- Struts2實現訪問控制
- JavaWeb之Struts2訪問ServletAPIJavaWebServletAPI
- Servlet訪問WebService出現錯誤ServletWeb
- Struts2教程之三Action訪問方式
- 軟體設計模式系列之二十五——訪問者模式設計模式
- 透過API訪問HDFSAPI
- Golang 官網現在可以直接訪問了Golang
- Applet直接訪問資料庫 (轉)APP資料庫
- jboss設定web應用的訪問路徑,即直接域名+埠訪問Web
- 請問在spring的業務層如何直接訪問 session ?SpringSession
- 原來很多元素我們可以直接訪問
- java web中servlet、jsp、html 互相訪問的路徑問題JavaWebServletJSHTML
- Laravel API 允許跨域訪問LaravelAPI跨域
- 透過API訪問IE Cache (轉)API
- servlet寫服務端APIServlet服務端API
- SpringCloud 實戰:禁止直接訪問後端服務SpringGCCloud後端
- 限制web專案下某目錄的直接訪問Web
- Struts2 中jsp直接跳轉到actionJS
- 第二十五章:SpringBoot新增支援CORS跨域訪問Spring BootCORS跨域
- docker 中容器通過 API 互相訪問DockerAPI
- docker 中容器透過 API 互相訪問DockerAPI
- C# RESTful API 訪問輔助類C#RESTAPI
- 用連線池提高Servlet訪問資料庫的效率 (轉)Servlet資料庫
- servlet處理下載的問題,要考慮訪問量大時的效率問題Servlet
- 教你如何直接訪問php例項物件的private屬性PHP物件
- 你知道可以通過網址訪問的Servlet如何實現嗎?Servlet
- Holer實現外網訪問本地RESTful APIRESTAPI
- kubernetes使用http rest api訪問叢集之使用postman工具訪問 apiserverHTTPRESTAPIPostmanServer
- Windows 95/98下直接訪問實體記憶體 (轉)Windows記憶體
- C#基礎概念二十五問C#
- struts2 namespace問題namespace
- JavaScript 跨域訪問(API介面)實現原理分析JavaScript跨域API
- Python使用 Kubernetes API 訪問叢集PythonAPI
- Confluence6匿名訪問遠端APIAPI