JSP Filter过滤器的简单实例.

公司做项目,一直在开发了SAP系统,.很没有做过JavaWeb项目了,.今天有点时间来复习下Servlet 和JSP ,已经Filter过滤器知识..

我们知道Filter过滤器,能为我们,

1)过滤字符..处理乱码.设置统一字符编码,

2)对用户登录的验证.

3)改变图片的格式.

4)做相应的压缩处理.等等..

 

新建JavaWeb项目,取名为:MyFristDemo.

在项目中:

建立 pack.java.filter 包,  建立一个Filter过滤器,取名为:MyFilter.java

建立 pack.java.servlet 包, 建立一个Servlet,取名为:MyServlet.java

 

 

下面是一个MyServlet.java文件,Myservelt需要继承 HttpServlet类,重写eservice方法,用来处理get和post请求.这里只是接收页面输入的字符,.并且显示的作用..并没有做其他的处理

 

public class MyServlet extends HttpServlet {
 /**
  * Destruction of the servlet. <br>
  */
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
 }

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out.flush();
  out.close();
  this.doPost(request, response);
 }
 
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  String username = request.getParameter("username");
  String password = request.getParameter("password");
  out.print(username+","+password);
  out.flush();
  out.close();
 }

}

下面是一个MyFilter文件. Filter 需要实现Filter接口..并且实现doFilter()方法.

 

public class MyFilter implements Filter {
 private FilterConfig filterConfig;
 private String enconfig;
 public void destroy() {
  // TODO Auto-generated method stub
  this.filterConfig=null;
  this.enconfig=null;
  System.out.println("过滤器销毁成功!");
 }
 
 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  // TODO Auto-generated method stub
  if (this.enconfig!=null) {
   request.setCharacterEncoding(this.enconfig);
   response.setCharacterEncoding(this.enconfig);
   System.out.println("过滤器处理中:"+this.enconfig);
  }
  //处理权交给下一个过滤器;
  chain.doFilter(request, response);
 }

 public void init(FilterConfig arg0) throws ServletException {
  // TODO Auto-generated method stub
  this.filterConfig=arg0;

 //获得,web.xml文件中配置languageconfig 的值,我在web.xml文件中配置了languageconfig 的值为:utf-8;
  this.enconfig=this.filterConfig.getInitParameter("languageconfig");
  System.out.println("过滤器初始化成功!");
 }
}


 

 

XML配置文件如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
 xmlns="http://java.sun.com/xml/ns/j2ee" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<filter> 
  <filter-name>MyFilter</filter-name>                          --过滤器名称的定义.(任意取)
  <filter-class>pack.java.filter.MyFilter</filter-class>    --指定到过滤器的package 和所在的Class文件

 <init-param>                                                               --初始参数配置. (在这里配置,目的是为了,在doFilter获得,
   <param-name>languageconfig</param-name>        --参数名 
   <param-value>utf-8</param-value>                         --参数值. 
  </init-param>
 </filter> 

 

 <filter-mapping>                                                           --过滤器映射.  
 <filter-name>MyFilter</filter-name>                             --过滤器名称 
 <url-pattern>/*</url-pattern>                                      --过滤所有文件,当然你也可以过滤某个文件下的文件.
 </filter-mapping> 
 


  <servlet>                                                                      --Servlet的配置,这里与上面差不多.不详细介绍.
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>pack.java.servlet.MyServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>


 

在新建JSP页面.

 

<form action="MyServlet" method="post">
    UserName:<input type="text" name="username" style="border:1px solid red"/><br/>
    PassWord:<input type="password" name="password" style="border:1px solid red"/><br/>
    <input type="submit" name="btnSubmit" value="Submit"/>
 </form> 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值