这个是struts的原理之一
controller截获所有的客户请求,然后判断,转发给相应的处理页面截获方式是通过接口代理实现的。
controller截获所有的客户请求,然后判断,转发给相应的处理页面截获方式是通过接口代理实现的。
解决方案 »
- jquery的ajax请求struts2的方法返回json数据,ajax请求问题。
- 请教(Exception in thread "main" org.hibernate.MappingException: Unknown entity)
- spring security
- 如何在ant 脚本中如何设置jdk的路径
- 请问何如使用Servicemix的FTP组件
- 关于hibernate-Memcached的几点疑问?
- 怎样通过取得参数列表
- java直接连接mysql数据库
- 高分!不够再加!求一个接口程序!
- 求 java写的 俄罗斯方块的 源代码 急需 (提供下载者 均给分)
- 关于EJB的问题???
- EJB和RMI的疑惑?
呵呵,STRUTS成黑客软件了。
1.用filter解决汉字编码及禁止页面缓存 (不用再在每个页面里去加那几行代码了):
package beanservlettest;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;public class servfilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {
try {
request.setCharacterEncoding("GB2312");//设置编码
((HttpServletResponse)response).setHeader("Pragma","No-cache");
((HttpServletResponse)response).setHeader("Cache-Control","no-cache");
((HttpServletResponse)response).setHeader("Expires","0");//禁止缓存
//自己添加的代码就这上面四行,其它的都是Jbuilder自动生成的:)
filterChain.doFilter(request, response);
}
catch(ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
}
catch(IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}
//Clean up resources
public void destroy() {
}
}下面是在web.xml里的配置:
(我的是Jbuilder自动生成的)
<filter>
<filter-name>servfilter</filter-name>
<filter-class>beanservlettest.servfilter</filter-class>
</filter>
<filter-mapping>
<filter-name>servfilter</filter-name>
<url-pattern>/*</url-pattern> ///这里表示对整个网站都有效
</filter-mapping>
这是在服务器端截获,不是在Internet中的某一点上监听用户。
struts的原理就是这样,你自己去看看资料吧。