導航:首頁 > 凈水問答 > struts2過濾類怎麼寫

struts2過濾類怎麼寫

發布時間:2020-12-20 02:44:12

㈠ Struts2入口過濾器配置

本人試驗了一下配置成*.action index.jsp是可行的,不過一般情況下是配置成/*的 然後結合版struts.properties文件裡面的struts.action.extension(定義擴權展名,例如.do,.action等等,多個擴展名中間用逗號隔開)值使用,樓主你最好檢查下你的伺服器啟動日誌 看看項目是否正常啟動。

㈡ struts2過濾器

WEB.xml中配置struts2的代碼片段
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
'/*'是攔截所有的url,你這里可以配置你的過濾規則的啊(例如/*.jsp、/*_aaa.jsp等),但是版一般不需要修改的,改權了以後,擴展起來會給你帶來一些的不必要的麻煩的

㈢ struts2裡面怎麼寫class

class就寫到<action>標記里,

比如你有一個類,叫HelloAction,你放在actions這個包下,

然後你把上面那句中專的<action>標記改成:


<action name="hello" class="actions.HelloAction"/>


struts.xml一般都屬是手寫的,注意不要寫錯就可以了。


附上HelloAction的代碼:

packageactions;
publicclassHelloAction{
publicStringexecute(){
return"success";
}
}

㈣ java 怎麼重寫struts2 的strutsexecutefilter過濾器

在struts2中的攔截器的定義是先定義一個類實現Interceptor介面,重寫方法。下面是實現登錄驗證的攔截器。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="mystruts" extends="struts-default">
<interceptors>
<interceptor name="LoginInterceptors"class="com.kaishengit.interceptors.LoginInterceptors">
<param name="excludeName">execute,login,index</param>
<param name="sessionName">currUser</param>
</interceptor>
<interceptor-stack name="myInterceptors">
<interceptor-ref name="LoginInterceptors"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myInterceptors"></default-interceptor-ref>
<!-- 適用於所有的action -->
<global-results>
<result name="login" type="redirect">index.jsp</result>
</global-results>

<!-- AppAction -->
<action name="index" class="com..web.AppAction">
<result>/WEB-INF/views/index.jsp</result>

</action>
<action name="login" class="com.web.AppAction" method="login">

<result type="redirectAction">main</result>
<result name="input" type="">/WEB-INF/views/index.jsp</result>
</action>
</package>
</struts>
public class LoginInterceptors extends AbstractInterceptor{

private static final long serialVersionUID = 1L;
private String sessionName;
private String excludeName;
private List<String> list;
public List<String> strlsit(String str){
String[] s = str.split(",");
List<String> list = new ArrayList<String>();
for(String ss : s){
list.add(ss.trim());
}
return list;
}
@Override
public void init() {
list = strlsit(excludeName);
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
String actionName = invocation.getProxy().getActionName();
if(list.contains(actionName)){
//請求的是合法
return invocation.invoke();
}else {
//查看session
Map<String,Object> session = invocation.getInvocationContext().getSession();
User user = (User) session.get(sessionName);
if(user==null){
return "login";
}else {
return invocation.invoke();
}
}
}
public String getSessionName() {
return sessionName;
}
public void setSessionName(String sessionName) {
this.sessionName = sessionName;
}
public String getExcludeName() {
return excludeName;
}
public void setExcludeName(String excludeName) {
this.excludeName = excludeName;
}
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
}
當調用除了execute,login,index三個方法時,先驗證是否登錄,如果沒有登錄,調回登陸頁。
Action實現驗證參數值,先讓action繼承ActionSupport,
因為ActionSupport實現了Validateable介面,再
重寫。validateable方法。Validateable方法是空方法,當login方法調用前驗證是否空值,定義方法validateLogin(),
以後和業務有關的驗證方法定義都是validatexxx(),xxx是執行的業務方法。
public class AppAction extends ActionSupport implements SessionAware,ServletRequestAware {
private static final long serialVersionUID = 1L;
private Map<String,Object> session;
private HttpServletRequest request;
private User user;
private UserService userService = new UserService();

/**
* 去登錄頁面
* @return
*/
public String execute() {
return "success";
}

/**
* 登錄
* @return
*/
public String login() {
if(user==null){
return "login";
}else {

User loginUser = userService.login(user);
if(loginUser == null) {
return "login";
} else {
//Map<String,Object> session = ActionContext.getContext().getSession();
session.put("currUser", loginUser);

// = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
//HttpServletResponse response = (HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);

return "success";
}

}
}

public void setSession(Map<String, Object> session) {
this.session = session;
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}

//get set

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public void validateLogin() {
if(user==null){
return;
}
System.out.println("================validateLogin==========");
if("".equals(user.getUsername())||user.getUsername()==null){
addFieldError("userName", "名稱必填");
}
if("".equals(user.getPassword())||user.getPassword()==null){
addFieldError("password", "密碼不能空");
}
}
public void validate() {
System.out.println("==========================");
}
}
在頁面上寫<s:fielderror fieldName="userName" theme="simple"/>

<s:fielderror fieldName="password" theme="simple"/>
得到驗證信息

㈤ struts2 上傳過濾文件類型

在struts.xml中對於一些陌生的類型文件上傳,不太確定。我習慣在上傳的action中添加方法,判斷類型內的方法。

//定義文容件名稱
String fileFileName;
//獲取文件類型
String type = fileFileName.substring(fileFileName.lastIndexOf('.') + 1);
//判斷文件是否是圖片類型
if(type.equals("apk"){
裡面寫你的內容
}

㈥ struts2過濾器可以過濾什麼

WEB.xml中配置struts2的代碼片段
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
'/*'是攔截所有的url,你這里可以配置你的過濾規則的啊(例如/*.jsp、/*_aaa.jsp等)專,但是一般不屬需要修改的,改了以後,擴展起來會給你帶來一些的不必要的麻煩的

㈦ eclipse下 struts2.2的過濾器類 是什麼

照意思理解就是過濾啦!你的頁面提交的數據提交給這個類……讓這個類進行處理!這個類就是對這些數據進行過濾……

㈧ struts2中如何用過濾器處理中文亂碼

<!-- 亂碼過濾器 -->
<filter>
<filter-name>CharaterencodeFilter</filter-name>
<filter-class>com.CharaterEncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharaterencodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

放在web.xml里
相應的類也給你
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
public class CharaterEncodeFilter implements Filter {
private FilterConfig config = null;

public void destroy() {
this.config = config;
}

public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
config = null;
}

}

㈨ 使用struts2.1需要編寫過濾器嗎

項目中使用來Struts2同樣需要源在web.xml配置過濾器,用來截取請求,轉到Struts2的Action進行處理。
注意:如果在2.1.3以前的Struts2版本,過濾器使用org.apache.struts2.dispatcher.FilterDispatcher。否則使用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。從Struts2.1.3開始,將廢棄ActionContextCleanUp過濾器,而在StrutsPrepareAndExecuteFilter過濾器中包含相應的功能。
三個初始化參數配置:
config參數:指定要載入的配置文件。逗號分割。
actionPackages參數:指定Action類所在的包空間。逗號分割。
configProviders參數:自定義配置文件提供者,需要實現ConfigurationProvider介面類。逗號分割。

㈩ Java框架Struts2的攔截器和過濾器有什麼區別

過濾器,是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的
action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者
struts的action前統一設置字元集,或者去除掉一些非法字元.

攔截器,是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。

攔截器與過濾器的區別:

  1. 攔截器是基於java的反射機制的,而過濾器是基於函數回調。
  2. 攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
  3. 攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
  4. 攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。
  5. 在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次

執行順序:過濾前 - 攔截前 - Action處理 - 攔截後 -
過濾後。個人認為過濾是一個橫向的過程,首先把客戶端提交的內容進行過濾(例如未登錄用戶不能訪問內部頁面的處理);過濾通過後,攔截器將檢查用戶提交數據的驗證,做一些前期的數據處理,接著把處理後的數據發給對應的Action;Action處理完成返回後,攔截器還可以做其他過程(還沒想到要做啥),再向上返回到過濾器的後續操作。

閱讀全文

與struts2過濾類怎麼寫相關的資料

熱點內容
蒸餾水兌爽膚水補水 瀏覽:243
張家口污水泵有哪些 瀏覽:980
進戶供暖過濾網什麼樣 瀏覽:597
蓮蓬頭水垢堵塞 瀏覽:401
雷沃拖拉提升器加油門才能升起 瀏覽:376
水垢和檸檬酸反應方程式 瀏覽:134
昆明第三污水廠 瀏覽:684
紅醋洗水垢可以么 瀏覽:586
飲水機加熱聰明座溢水什麼原因 瀏覽:178
格力凈水器怎麼編號 瀏覽:754
家用熱門凈水器排名哪個牌子好 瀏覽:845
花盆樹脂模具 瀏覽:188
創星和森森過濾桶哪個比較好 瀏覽:621
深汕合作區污水處理廠 瀏覽:381
過濾器生產國家標准 瀏覽:183
凈水器長時間沒用不出水怎麼解決 瀏覽:268
小米凈化器自己關機怎麼回事 瀏覽:259
吡咯可以減壓蒸餾嗎 瀏覽:977
都勻市污水處理廠什麼時候開工 瀏覽:410
艾柯蒸餾水儀器 瀏覽:561