struts2拦截器转化敏感字符

struts.xml
 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <package name="default" namespace="/" extends="struts-default">
       <interceptors>
         <interceptor name="message" class="com.sxt.interceptors.MessageInterceptor"/>
       </interceptors>
      <action name="msg" class="com.sxt.action.MessageAction">
       <result>MyJsp.jsp</result>
       <interceptor-ref name="message" />
       <interceptor-ref name="defaultStack"/>
      </action>
    </package>
</struts>  


MessageAction.java
   package action;
   import com.opensymphony.xwork2.ActionSupport;

public class MessageAction extends ActionSupport {
   
	private String msg;

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
	@Override
	public String execute() throws Exception {
		
		return SUCCESS;
	}
}

MessageInterceptor.java

  package interceptors;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.sun.xml.internal.stream.Entity;
import com.sxt.action.MessageAction;

public class MessageInterceptor extends AbstractInterceptor {

	
	//本文只使用了一个参数msg
	@Override
	public String intercept(ActionInvocation arg0) throws Exception {

	   String msg = "";
		Map<String, Object> map = ActionContext.getContext().getParameters();
		Iterator  it= map.entrySet().iterator();	
		 //下面代码为:取出每一个参数
		while( it.hasNext()){
		System.out.println("-----------");	
		Map.Entry<String, Object> mapentry= (Map.Entry<String, Object>) it.next();
		 // System.out.println(((String[])mapentry.getValue())[0]);
		  msg = ((String[])mapentry.getValue())[0];
		}
		System.out.println(msg);
	       //下面代码也可获取指定参数
              //  Map map = arg0.getInvocationContext().getParameters();
<span style="white-space:pre">	</span>     //<span style="white-space:pre">	</span>String[] message = (String[]) map.get("msg");
            //  msg = message[0];	
        

		String m =msg.replaceAll("TMD", "***");
		System.out.println(m);
		//将转换后的msg放入参数map
	    Map params = new HashMap();
		params.put("msg", m);
		arg0.getInvocationContext().setParameters(params);
              //或<span style="font-family: 微软雅黑, 'MS Sans Serif', sans-serif; font-size: 13px;">arg0.getInvocationContext().getParameters().put("msg",m);</span>
		return arg0.invoke();
	}

}

index.jsp
  //使用ajax标签局部刷新显示结果
  
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
<html>
   <sx:head/>
  <body>
   
    <form action="msg" >
           请输入:<input type="text" name="msg"/>
          <sx:submit targets="div1" value="提交"/>
    </form>
        <!-- sx:submit targets="div1"会将请求结果返回到div1 -->
        <sx:div id="div1"></sx:div>
            
  </body>
</html>

MyJsp.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<html>
  
  <body>
   输入的内容为:${msg}
  </body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值