第8章JavaServlet基础(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
过滤器
包含在javax.servlet和javax.servlet.http包 主要有以下三个接口 javax.servlet.Filter:定义了三个方法
பைடு நூலகம்
– public void init(FilterConfig filterConfig) throws ServletException :初始化方法 – public void doFilter( doPost(HttpServletRequest
测验
1.在D:/test目录下有一个名为hello.jsp 的JSP页面,希望用户可以通过虚拟目 录hello访问该页面,请你写出操作的完 整步骤。 2.简要叙述数据库操作的基本步骤,其 中涉及了哪几个Java类,起何作用?
测验
3.这是部分JSP代码,标出对应标号的JSP元素名称 <%@ page contentType="text/html;charset=GB2312" %> //1 <HTML><BODY bgcolor=yellow> // 2 <%! int add(int x,int y) // 3 { return x+y; } int sum; // 4 %> <%out.println("调用add方法计算200与123之和:");// 5 sum=add(200,123); %> <%=sum%> // 6 </BODY></HTML>
第8章 Java Servlet基础
课程目标
掌握如何编写和使用Servlet
– 理解掌握init()、service()、doPost()和 doGet()方法
理解Servlet的工作原理和生命周期 学会在Servlet中使用session和请求转 发 了解Servlet的应用:过滤器(Filter)
过滤器
部署: web.xml
– <filter>元素:
• <filter-name>过滤器的名字 • <filter-class>过滤器的完整类名 <filter> <filter-name>SimpleFilter</filter-name> <filter-class>star.moon.SimpleFilter</filterclass> </filter>
过滤器
<filter-mapping>元素
– <filter-name>:在<filter>元素中定义的过滤器名字 – <url-pattern>or<servlet-name>:任选,过滤器关 联的URL样式或对应的Servlet – 0..4 dispatcher:
• REQUEST:用户直接访问页面时,Web容器会调用过滤 器 • INCLUDE:通过RequestDispatcher的include()方法访问 目标文件时,调用过滤器 • FORWARD:通过RequestDispatcher的forward()方法访 问目标文件时,调用过滤器 • ERROR:通过声明式异常处理机制调用目标文件时,过 滤器将被调用
过滤器
举例: SimpleFilter.java
package star.moon; import java.io.*; import javax.servlet.*; public class SimpleFilter implements Filter { //init方法 //doFilter方法 //destroy方法 }
过滤器
javax.servlet.FilterConfig
– 类似于ServletConfig,是过滤器初始化是 传递信息的。由容器实现,作为参数传入 Filter的init方法
javax.servlet.FIlterChain
– 由容器实现,作为参数传入Filter的doFilter 方法,使用FilterCHain对象调用下一个过 滤器,若为最后一个则调用目标文件
过滤器
定义
– 驻留在服务器端的Web组件,截取客户端和 目的资源间的请求和响应信息,对这些信息 进行过滤
Web容器 过 滤 器 (…) 过 滤 器 (1) 过 滤 器 (2) 目 标 文 件
浏览器
过滤器在Web应用程序中的位置
过滤器
主要应用
– 对用户请求进行统一认证 – 对用户发送的请求进行记录和审核 – 对用户发送的数据进行过滤或替换 – 转换图像格式 – 对请求和响应进行加解密处理 – 。。。
request,HttpServletResponse response, FilterChain chain) throws IOException, ServletException:客户端
请求目标文件时就会调用与此目标文件相关联的 doFilter()方法 – public void destroy()方法
过滤器
<filter-mapping> <filter-name>SimpleFilter</filter-name> <url-pattern>/test.jsp</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> 注:若访问所有的则是/*
过滤器
public void init(FilterConfig filterConfig) throws ServletException { }
public void destroy(){}
过滤器
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { response.setContentType("text/html; charset=GB2312"); PrintWriter out=response.getWriter(); out.println("before doFilter()"); chain.doFilter(request, response); out.println("after doFilter()"); out.close(); }