首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

servler filter 学习记要

2012-10-29 
servler filter 学习记录String str request.getParameter(message)//参数System.out.println(str)r

servler filter 学习记录

String str = request.getParameter("message");//参数System.out.println(str);request.setAttribute("username", "over");//属性//跳转方法1,浏览器地址栏变成了目标页面的url//到了目标页面之后,request内的参数值,属性值丢失了//response.sendRedirect("/PrjFu8/result.jsp");//跳转方法2,浏览器地址栏没有变成目标页面的url//相当于在服务器内部将目标页面的输出送给客户端,request内的参数值,属性值没有丢失//ServletContext application = this.getServletContext();//RequestDispatcher rd = application.getRequestDispatcher("/result.jsp");//rd.forward(request, response);//<jsp:forward>标签/* * 如果在A页面有一些内容要在B页面显示,但是如果内容数量较大,并且是暂态数据 * 可以将内容不要放在session内,放在request内,用跳转方法2跳转到B页面显示,节省内存 * 跳转方法1相当于重新在客户端输入目标页面地址,重新请求 * 方法2相当于服务器内部的跳转 * 如果要跳转到服务器以外的url,必须使用方法1 * *///表示将目标页面的代码插入到这里运行response.setCharacterEncoding("gb2312");ServletContext application = this.getServletContext();RequestDispatcher rd = application.getRequestDispatcher("/result.jsp");rd.include(request, response);//读取全局参数ServletContext application = this.getServletContext();String value1 = application.getInitParameter("GlobalParam");System.out.println(value1);//读取局部参数String value2 = this.getInitParameter("LocalParam");System.out.println(value2);



filter
package filter;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;public class EncodingFilter implements Filter {public EncodingFilter(){System.out.println("过滤器构造函数");}private String encodingName;public void init(FilterConfig fc) throws ServletException {//初始化函数,服务器运行能自动运行一次System.out.println("过滤器init函数");//fc.getServletContext().getInitParameter(arg0)得到全局参数encodingName = fc.getInitParameter("encodingName");//得到局部参数}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {//每次提交都会运行System.out.println("过滤器doFilter函数");request.setCharacterEncoding(encodingName);//解决中文问题//过滤器是在提交到达处理模块之前运行,所以这里要将请求向后传递chain.doFilter(request, response);}public void destroy() {//消亡时运行System.out.println("过滤器destroy函数");}}


xml 设置
<!--  注册过滤器   --> - <filter>  <filter-name>EncodingFilter</filter-name>   <filter-class>filter.EncodingFilter</filter-class> - <init-param>  <param-name>encodingName</param-name>   <param-value>gb2312</param-value>   </init-param>  </filter>- <!--  配置过滤器要过滤的对象   --> - <filter-mapping>  <filter-name>EncodingFilter</filter-name>   <url-pattern>/*</url-pattern> - <!--  可以写一个url路径   -->   </filter-mapping>

热点排行