javaEE知识总结加实战样例(4)

2018-12-29 21:53

//判断session是否是新的 boolean isNew = session.isNew();

4. ServletContext接口

ServletContext接口的使用和JPS的内置对象

application非常相似。application对象其实就是ServletContext接口的一个实例,不过实例化过程是自动的,无需自定义

在Servlet中application中必须通过HttpServlet接口中的getServletContext()方法获得。

HttpSession接口和ServletContext接口的实例:

// 设置编码

response.setContentType(\); // 新建输出对象,是结果输出

PrintWriter out = response.getWriter();

// 接受请求参数

String username = request.getParameter(\); String password = request.getParameter(\);

//建立session

HttpSession session = request.getSession(); session.setAttribute(\, username);

//建立application

ServletContext application= getServletContext();

public void service(HttpServletRequest request, HttpServletResponse

throws ServletException, IOException {

response)

}

application.setAttribute(\, password);

out.println(session.getAttribute(\)); out.println(application.getAttribute(\)); out.println(\你好这里是service方法\); out.flush(); out.close();

Filter开发

Filter的中文名为过滤器的意思,借助filter我们可以

实现以下功能:

过滤非法文字和信息 设置统一字符编码 对用户进行登录验证 改变图片文件格式 对相应做压缩处理

对XML的输出使用XSLT来进行转换

在Servlet2.3之后,如果要添加Filter,只需在web.xml

中配置Filter相关设置。可以方便的为web项目添加新的filter或修改现有的Filter,而不需要修改现有的servlet,JSP和现有的静态页面代码。

Filter和Servlet类似,也是java中的一个类,所以添

加方式和普通的java类相同。自定义的Filter必须实现Filter接口。还必须实现Filter中的init()方法,doFilter()

方法和destroy()方法。其中init()方法和destroy()方法分别是初始化和销毁时调用。doFilter()方法负责过滤所有的处理代码都放在该方法中,doFilter()方法接受三个参数,分别是request,response,chain。其中request,response用来传递给下一个Filter或者JSP和servlet, chain则通过doFilter()方法来调用下一个Filter,获得调用原始的JPS,servlet等其他内容。 Demo:

package cn.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 FirstFilter implements Filter {

public void init(FilterConfig arg0) throws ServletException { public void doFilter(ServletRequest request, ServletResponse }

FilterChain chain) throws IOException, ServletException {

response,

System.out.println(\执行过滤!\); //调用下一个filter或原始内容

chain.doFilter(request, response);

public void destroy() {

System.out.println(\销毁方法!\); }

}

System.out.println(\初始化方法!\); }

若想执行在web.xml里配置是少不了的,在web.xml中

添加元素,其中包括两个子元素分别为,用来定义Filter名称和filter指定的类名。在web.xml中添加一个元素,其中包括两子元素用来指定过滤的URL。其中”/*”用来过滤所有的URL。 Filter的生命周期

Filter和Servlet相似也具有生命周期,Filter从生成到销

毁必须经过如下几个步骤:

1.生成Filter并通过init()方法来进行初始化。

2.过滤用户请求,调用doFilter()方法。

3.调用destroy()方法进行销毁,并通过垃圾收集器进行收集清理。 常用的Filter 1.非法文字过滤器

首先通过Filter类中的doFilter()方法的request参

数来获得用户的输入。然后对输入的文字进行判断和处理 ,如替换非法文字,提示输入的是非法文字,要求重新输入等。最后通chain的doFilter方法来调用下一个Filter,获得原始的jsp或servlet等其他内容。

一个完整的DEMO Filter文件:

package cn.servlet;

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 javax.servlet.http.HttpServletRequest;

public class FirstFilter implements Filter {

//如果字符串不为空

if(username != null){

//如果不含非法文字z,调用下一个filter或原始内容 if(username.indexOf(\

//调用下一个filter或原始内容

chain.doFilter(request, response); /*

* request.getRequestDispatcher(\取得一个 * RequestDispatcher,一个请求分发器对象,它的方法

public void doFilter(ServletRequest request, ServletResponse

FilterChain chain) throws IOException, ServletException {

response,

System.out.println(\执行过滤!\

//接受要过滤的字符串

String username = null;

username = request.getParameter(\public void destroy() {

System.out.println(\销毁方法!\}

} else {


javaEE知识总结加实战样例(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《秦始皇陵兵马俑》教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: