实验五 Servlet过滤器

实验五 Servlet过滤器
实验五 Servlet过滤器

实验五 Servlet过滤器

一、实验目的

1、了解过滤器的作用;

2、掌握过滤器的开发与部署的步骤;

3、了解过滤器链。

二、实验原理

1、过滤器是web服务器上的组件,它们对客户和资源之间的请求和响应进行过

滤。

2、过滤器的工作原理是:当servlet容器接收到对某个资源的请求,它要检查是

否有过滤器与之关联。如果有过滤器与该资源关联,servlet容器将把该请求发送给过滤器。在过滤器处理完请求后,它将做下面3件事:

?产生响应并将其返回给客户;

?如果有过滤器链,它将把(修改过或没有修改过)请求传递给下一个过滤器;

?将请求传递给不同的资源。

当请求返回到客户时,它是以相反的方向经过同一组过滤器返回。过滤器链中的每个过滤器够可能修改响应。

3、过滤器API主要包括:Filter、FilterConfig和FilterChain接口。

三、实验要求

编写一个过滤器改变请求编码。

四、实验内容

1、编写loginform.html文件

这文件只要一条核心代码,即action="servlet/CheckParamServlet"用来

web.xml文件中对servlet名的匹配。

2、编写处理请求参数的Servlet,CheckParamServlet.java文件

这文件用来两个用来响应客户请求的两个方法,即doGet()和doPost()。

doPost()方法里的内容是执行doGet()方法,doGet()方法则是响应客户端的GET方法,具体实现如下:

1)、 String name = request.getParameter("name");

String pass = request.getParameter("pass");

response.setContentType("text/html;charset=gb2312");

获取从loginform.html传来的用户名和密码,并设置内容类型。

2)、PrintWriter out = response.getWriter();

out.println("Param Test ");

out.println("

你的用户名为:"+name+"

");

out.println("

你的口令为:"+pass+"

");

out.println("");

使用getWriter()方法返回PrintWriter()的对象out,输出用户名和密码。

3、编写过滤器EncodingFilter.java文件

1)、public void init(FilterConfig filterConfig)

对Filter初始化,获取该Filter的配置参数。

2)、public void doFilter(ServletRequest request,

ServletResponse response,

FilterChain chain)

如果得到的编码不为空,则设置request和response的编码用的字符集;

chain.doFilter(request, response);给请求放行。

3)、public void destroy() {

}

释放Fileter占用的资源。

4、在web.xml文件中配置过滤器

注意在配置过程中的/*是“/*”而不是“*/”。

五、实验中遇到的问题及解决方法

实验中遇到一个问题,问题的错误提示如下:

HTTP Status 404 - /test5/servlet/CheckParamServlet

问题原因是Servlet访问路径没有配置完整,如下

/CheckParamServlet

解决方法:配置完整路径,如下

/servlet/CheckParamServlet

六、实验小结

Filter主要用于对用户请求进行预处理和对服务器响应进行后处理,Filter 负责过滤的Web组件可以是Servlet、jsp、html。使用Filter过滤器使得Servlet 开发者能够在请求到达Servlet之前截取请求,在Servlet处理请求之后修改应答。

使用Filter的优点有:

1、能够在Servlet被调用前检查Request对象,修改Request header和

Request内容;

2、能够在Servlet被调用后检查Response对象,修改Request header和

Request内容。

附实验结果图:

图一

图二

图三

图四

Servlets+Jsp+实验4:Servlet容器模型

4 实验四 Servlet容器模型 一.实验目的 1. 掌握Web应用程序的DD文件web.xml的配置方法和作用; 2. 掌握如何通过ServletConfig获取Servlet的初始化参数; 3. 掌握ServletContext的概念,如何获得ServletContext对象; 4. 掌握如何通过RequestDispatcher转发请求。 二.实验内容 1. 建立一个名为bookstore的Web应用程序 在Tomcat的webapps目录下,建立一个如下所示的目录结构: |- bookstore |- html (包含所有的HTML文件) |- jsp (包含所有的JSP文件) |- images (包含所有的GIF、JPEG和BMP图象文件) |- index.html (默认的HTML文件) |- WEB-INF |-classes ├ lib ├ web.xml 图4.1 bookstore应用程序的目录结构 这样就建立了一个名为bookstore的Web应用程序,本实验后面的题目都在该应用程序下面完成。 2. 使用ServletConfig检索Servlet的初始化参数 【步骤1】编写ConfigDemoServlet程序,内容如下: package com.demo; import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class ConfigDemoServlet extends HttpServlet{ String servletName=null; ServletConfig config=null; String email=null; String telephone=null; public void init() { config = getServletConfig(); servletName = config.getServletName(); email = config.getInitParameter("email"); telephone = config.getInitParameter("telephone"); } public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{

jsp-servlet题库(附答案)

1.B 编写一个Filter,需要() A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口 2.D 自定义标签的配置文件放在________ A. WebRoot B. lib C. classes D. WEB-INF 3. ABC 有关会话跟踪技术描述正确的是( )(多选) A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端。 B. 关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。 C. 在禁用Cookie时可以使用URL重写技术跟踪会话。 D. 隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示。 4.C 在J2EE中,重定向到另一个页面,以下()语句是正确的 A. request . sendRedirect(“http :// www . svse . com . cn”); B. request . sendRedirect(); C. response . sendRedirect(“http: // www . svse . com . cn”); D. response .sendRedirect(); 5.B EL表达式,${10 mod 3},执行结果为( ) A. 10 mod 3 B. 1 C. 3 D. null 6. C 自定义标签的作用是( ) A. 编写和使用方便 B. 规定是这样的,如果不用,别人会说我们不专业 C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发 D. 连数据库 7.B request.getRequestDispatcher().forward(request,response)称之为( ) A. 流转 B. 转发 C. 重定向 D. 导航 8. BCD 有关Servlet的生命周期说法正确的有( ) (多选) A. Servlet的生命周期由Servlet实例控制。 B. init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext 接口的对象。 C. service()方法响应客户端发出的请求。 D. destroy()方法释放Servlet实例。 9.B 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是()。(选择一项) Public class Servlet1 extends HttpServlet{ public void init() throws ServletException{ } public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("hello!"); } A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello!

java过滤器

在基于 JSP 页面系统设计开发中,经常有一批页面需要对用户的身份进行验证,只有合法的用户才可以访问这些页面。显然可以在每个页面中添加身份验证,但这样做会给编程造成很大的麻烦,而且增加多余的代码。那么,如何解决JSP 页面用户身份验证呢? 二、JSP 页面中用户身份验证分析 在有多个用户使用的 JSP 系统中,为了保障系统的隐秘性安全性,就需要对登录系统的用户进行身份验证以保证用户身份的合法性。一个用户首次登录系统后会在session 对象中留下它的标识[1],就可以利用这个标识来完成各个JSP页面的用户身份验证。为了避免每个页面都进行身份验证而出现的麻烦,这里将通过Servlet 过滤器对JSP 页面统一进行身份验证。 三、用户身份验证的设计思路和技术要点 1、设计思路 Servlet 过滤器验证用户是围绕session 对象进行的。首先是实现用户登录的功能,在用户登录成功后产生一个session 标识;然后创建Servlet 过滤器,判断标识值是否正确,如果正确则通过验证,否则将给出提示信息并跳转到用户登录页面。 2、技术要点 使用 Servlet 过滤器实现JSP 页面中用户身份验证,首先必须实现Filter 接口,且重写doFilter() 方法,由doFilter() 方法去处理过滤业务;其次,在web.xml 文件中配置Servlet 过滤器,指定过滤器的名称、过滤器包所在类的名称及过滤器的映射范围等[2]。 四、JSP 页面中用户身份验证的实现 1、用户身份合法性确认 为了能够使用 Servlet 过滤器实现用户对JSP 页面访问的合法性验证,首先需要根据用户登录号和密码等与数据库中的信息相比较,若能匹配成功,则是用户登录成功,就用session 对象存储该用户的标识;然后再由Servlet 过滤器实现对用户访问的各个页面的过滤。存储用户登录成功的session 标识的核心代码为:session.setAttribute("user", 用户登录号 )。 2、Servlet 过滤器的实现 用 Servlet 过滤器实现用户身份验证的关键代码如下: package hzu.util.filters; public class UserFilter extends HttpServlet implements Filter { private FilterConfig filterConfig; public void init(FilterConfig filterConfig) throws ServletException{ this.filterConfig=filterConfig;

实验四 Servlet的应用

实验四Servlet的应用 实验要求: 用Servlet来完成实验三的所有任务,即先登录,然后留言,再显示留言。采用JSP+JavaBean+Servlet开发模式。 实验步骤如下: 1.创建登录页面login.jsp <%@page language="java"import="java.util.*"pageEncoding="gb2312"%>

用户名:
口令:
2.创建处理登录的Servlet:DoLogin.java,过程如下: 选择项目中src文件夹,New Servlet,弹出Create a new Servlet对话框,设置如下(05为项目名称)

单击next后,见下图,只对Servlet/Jsp Mapping URL :作如下修改,单击finish.

此时,web.xml中应存在如下Servlet配置信息: ServletExample firstServlet DoLogin servlet.DoLogin DoLogin /DoLogin 其中,/DoLogin行表明,该Servlet可以用这个URL 访问, http://localhost:8080/05/DoLogin

servlet笔试题

Servlet笔试题 一、选择题(20题,40分, 多选题选不全或选错都不得分。) 1.销毁一个session对象,应当调用下面哪一个方法() A. session.invalidate() B. session.expunge() C. session.destroy() D. session.end() 2.以下哪个说法是正确的?(多选)( ) A. 每个Http请求对应一个单独的ActionServlet实例 B. 对于每个请求访问HelloAction的Http请求,struts框架只创建一个单独的HelloAction实例 C. 每个子应用对应一个单独的RequestProcessor实例 D. 每个子应用对应一个单独的web.xml文件 3.在J2EE中,Servlet从实例化到消亡是一个生命周期。下列描述不正确的是()。 A. 在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束 Servlet就消亡了 B. init()方法是容器调用的Servlet实例的第一个方法 C. 在包容器把请求传送给Servlet之后,和在调用Servlet实例的doGet或者doPost 方法之前,包容器不会调用Servlet实例的其他方法 D. 在Servlet实例消亡之前,包容器调用Servlet实例的destroy()方法 4. 编写Servlet 的doPost方法时,需要抛出异常为()。 A. ServletException, IOException B. ServletException, RemoteException C. HttpServletException, IOException D. HttpServletException, RemoteException 5. 在Servlet里,能实现重定向的两个方法是()。 A. 运用javax.servlet.http.HttpServletRequest接口的sendRedirect方法 B. 运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法 C. 运用javax.servlet.RequestDispatcher接口的forward方法 D. 运用javax.servlet.ResponseDispatcher接口的forward方法 6. HTTP协议的全称是()。 A. Hyper Transport Text Protocol B. Hyper text Transport Protocol C. Hyper Transfer Text Protocol D. Hyper text Transfer Protocol

使用Servlet过滤器实现用户登录验证

package Filters;import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class LogOrNot implements javax.servlet.Filter { private FilterConfig config; private String logon_page; private String home_page; public void destroy() { config = null; } public void init(FilterConfig filterconfig) throws ServletException { // 从部署描述符中获取登录页面和首页的URI config = filterconfig; logon_page = filterconfig.getInitParameter("LOGON_URI"); home_page = filterconfig.getInitParameter("HOME_URI"); System.out.println(home_page); if (null == logon_page || null == home_page) { throw new ServletException("没有找到登录页面或主页"); } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rpo = (HttpServletResponse) response; javax.servlet.http.HttpSession session = req.getSession(); try { req.setCharacterEncoding("utf-8"); } catch (Exception e1) { e1.printStackTrace(); } String userId = (String) session.getAttribute("UserId"); String request_uri = req.getRequestURI().toUpperCase();// 得到用户请求的URI String ctxPath = req.getContextPath();// 得到web应用程序的上下文路径 String uri = request_uri.substring(ctxPath.length()); // 去除上下文路径,得到剩余部分的路径

Servlet实验任务

实验二 Servlet基础 一、实验目的 1、理解Servlet的作用、生命周期及相应接口所包含的方法。 2、掌握通过继承HttpServlet类来创建Servlet的方法。 二、实验类型 设计型 三、实验内容 首先运行教材或实验指导书上的一些例子程序,然后自己编写Servlet,能够接收客户端输入的两个整数,并将这两个数相加的结果显示出来。 四、预备知识 1、示例项目1 打开实验室计算机上的NetBeans6.8或者MyEclipse,选择菜单的“文件”——>“新建项目…”——>“Web应用程序”,然后给项目取一个名字,一路默认下去(同时注意观察编译器每一步做出了什么设置),并注意在此过程中,在“配置servlet部署”这一步时,在“将信息添加到部署描述符(web.xml)”前面的方框打勾。最后一步选择“完成”。会发现在NetBeans左边的“项目”窗口中生成了所创建的项目。 右键点击项目名,选择“新建”——>“servlet…”,根据提示,一步一步创建一个servlet。Servlet 的代码为: import java.io.*; import .*; import javax.servlet.*; import javax.servlet.http.*; public class First extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println("Servlet First"); out.println(""); out.println(""); out.println("

Hello World

"); out.println(""); out.println(""); out.close(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response);

jsp+servlet实例

jsp+servlet实例 开发环境myeclipse+tomcat6 1、先创建web project,项目名为RegisterSystem, 2、在WebRoot 目录下创建login.jsp文件,只需修改body中的内容,如下所示:

username:
password:
3、在scr目录下的com.ht.servlet编写AcountBean.java文件,代码如下:package com.ht.servlet; public class AccountBean { private String username = ""; private String password = ""; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { ername = username; } } 4、在scr目录下的com.ht.servlet编写servlet类CheckAccount.java文件,代码如下: package com.ht.servlet; import java.io.IOException;

Servlet过滤器使用

Servlet过滤器使用(javax.servlet.Filter)作者:本站原创发布时间:2010-06-10来源:JA V A中文网点我投稿 教程由JA V A中文网整理校对发布() 过滤器(Filter)的概念 过滤器位于客户端和web应用程序之间,用于检查和修改两者之间流过的请求和响应。 在请求到达Servlet/JSP之前,过滤器截获请求。 在响应送给客户端之前,过滤器截获响应。 多个过滤器形成一个过滤器链,过滤器链中不同过滤器的先后顺序由部署文件web.xml中过滤器映射的顺序决定。 最先截获客户端请求的过滤器将最后截获Servlet/JSP的响应信息。 过滤器的链式结构 可以为一个Web应用组件部署多个过滤器,这些过滤器组成一个过滤器链,每个过滤器只执行某个特定的操作或者检查。这样请求在到达被访问的目标之前,需要经过这个过滤器链。 实现过滤器 在Web应用中使用过滤器需要实现javax.servlet.Filter接口,实现Filter接口中所定义的方法,并在web.xml中部署过滤器。 public class MyFilter implements Filter { public void init(FilterConfig fc) { //过滤器初始化代码 } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) { //在这里可以对客户端请求进行检查 //沿过滤器链将请求传递到下一个过滤器。 chain.doFilter(request, response); //在这里可以对响应进行处理 } public void destroy( ) { //过滤器被销毁时执行的代码 } } Filter接口

实验Servlet容器模型

实验4 Servlet容器模型 一、实验目的 1. 掌握Web应用程序的DD文件的配置方法和作用; 2. 掌握如何通过ServletConfig获取Servlet的初始化参数; 3. 掌握ServletContext的概念,如何获得ServletContext对象; 4. 掌握如何通过RequestDispatcher转发请求。 二、实验原理 Web应用程序有严格定义的目录结构,它需要一个称为部署描述文件的文件来配置。对应用程序的每个Servlet,可以在中定义若干个初始化参数,然后通过ServletConfig对象获取这些参数。 ServletContext对象表示该应用程序的环境,通过该对象可以获得应用程序范围的初始化参数、容器版本信息、资源的URL、在其中存放共享数据以及登录日志等。 三、实验内容与步骤 (一)名为bookstore的Web应用程序的目录结构 在Tomcat的webapps目录下,项目目录结构如下所示。 |- bookstore |- html (包含所有的HTML文件) |- jsp (包含所有的JSP文件) |- images (包含所有的GIF、JPEG和BMP图象文件) |- (默认的HTML文件)

|- WEB-INF |-classes ├ lib ├ 图 bookstore应用程序的目录结构 这样就建立了一个名为bookstore的Web应用程序,本实验后面的题目都在该应用程序下面完成。 (二)使用ServletConfig检索Servlet的初始化参数 【步骤1】编写ConfigDemoServlet程序,内容如下: package .*; import .*; import .*; import class ConfigDemoServlet extends HttpServlet{ String servletName=null; ServletConfig config=null; String email=null; String telephone=null; public void init() { config = getServletConfig(); servletName = (); email = ("email"); telephone = ("telephone"); } public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ ("text/html;charset=gb2312"); PrintWriter out = (); (""); ("Servlet名称:"+servletName+"
"); ("Email地址:"+email+"
");

最新Servlet面试题

1.销毁一个session对象,应当调用下面哪一个方法() A. session.invalidate() B. session.expunge() C. session.destroy() D. session.end() 2.以下哪个说法是正确的?(多选)( ) A. 每个Http请求对应一个单独的ActionServlet实例 B. 对于每个请求访问HelloAction的Http请求,struts框架只创建一个单独的HelloAction实例 C. 每个子应用对应一个单独的RequestProcessor实例 D. 每个子应用对应一个单独的web.xml文件 3. 在J2EE中,Servlet从实例化到消亡是一个生命周期。下列描述不正确的是()。 A. 在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束 Servlet就消亡了 B. init()方法是容器调用的Servlet实例的第一个方法 C. 在包容器把请求传送给Servlet之后,和在调用Servlet实例的doGet或者doPost 方法之前,包容器不会调用Servlet实例的其他方法 D. 在Servlet实例消亡之前,包容器调用Servlet实例的destroy()方法 4. 编写Servlet 的doPost方法时,需要抛出异常为()。 A. ServletException, IOException B. ServletException, RemoteException C. HttpServletException, IOException D. HttpServletException, RemoteException 5. 在Servlet里,能实现重定向的两个方法是()。 A. 运用javax.servlet.http.HttpServletRequest接口的sendRedirect方法 B. 运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法 C. 运用javax.servlet.RequestDispatcher接口的forward方法 D. 运用javax.servlet.ResponseDispatcher接口的forward方法 6. HTTP协议的全称是()。 A. Hyper Transport Text Protocol B. Hyper text Transport Protocol C. Hyper Transfer Text Protocol D. Hyper text Transfer Protocol 7. MVC设计模式包含模型层、视图层和控制器层,在下列组件中扮演控制器角色的是()。 A. Servlet B. JSP C. JavaBean D. HTML 8. 在javax.servlet.http.*API中,HttpServlet的()方法用来处理客户端的请求。 A. Init()

实验六 Servlet过滤器的使用

实验六Servlet过滤器的使用 一、实验目的 1. 了解过滤器的作用; 2. 掌握过滤器的开发与部署的步骤; 3. 了解过滤器链。 二、实验原理 过滤器是web服务器上的组件,它们对客户和资源之间的请求和响应进行过滤。 过滤器的工作原理是:当servlet容器接收到对某个资源的请求,它要检查是否有过滤器与之关联。如果有过滤器与该资源关联,servlet容器将把该请求发送给过滤器。在过滤器处理完请求后,它将做下面3件事: ?产生响应并将其返回给客户; ?如果有过滤器链,它将把(修改过或没有修改过)请求传递给下一个过滤器; ?将请求传递给不同的资源。 当请求返回到客户时,它是以相反的方向经过同一组过滤器返回。过滤器链中的每个过滤器够可能修改响应。 过滤器API主要包括:Filter、FilterConfig和FilterChain接口。 三、实验内容与步骤 编写一个过滤器改变请求编码。 【步骤1】编写一个loginform.html文件,代码如下: 使用过滤器改变请求编码

请输入用户名和口令:

用户名:
口令:

Servlet 实验报告

软件学院设计性实验报告 专业:JAVA 年级/班级: 09计算机2班 2011—2012学年第一学期课程名称Java EE框架指导教师周运 姓名张盈盈学号8888 实验地点过街楼机房B区实验时间9月29日5-8节 项目名称编写一个Servlet应用实验类型设计性 一、实验目的 1.掌握Servlet应用,熟悉web开发的MVC模式。 2.了解servlet工作的流程,servlet的作用。 3.掌握servlet的方法init(),destory(),doget(),dopost(); 二、实验仪器或设备 1.计算机一台 2.MyEclipse软件 三、总体设计(设计原理、设计方案及流程等) A:设计原理: 1.servlet相当于MVC模式中的C控制器。 2.作为服务器或监听程序并响应客户请求。 3.后台业务逻辑处理,对后台数据的操作、对组件模型的操作。 4.servlet有专有的方法init(),destory(),doget(),dopost(); B:设计方案及流程: 设计一个登陆页面,用户提交后,将数据提交给action,Servlet来控制处理,判断用户名、密码是否正确,根据不同的结果返回不同的信息。再进行部署测试,运行。 四、实验步骤(包括主要步骤、代码分析等) 1.创建一个web项目命名为myproject。 2.创建登陆页面index.jsp代码如下: 注:由于css是写在页面里面的,此处省略不写,css代码见电子稿。 <%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <% String errormessage=(String)request.getAttribute("errormessage"); if(errormessage==null){ errormessage= ""; } %>

java web 过滤器

传智播客java web 过滤器 今日学习Servlet的过滤器部分,百闻不如一见。以后我在课后做练习时,发现多个Servlet 之间转发容易产生问题。 详细出处参考:/article/21017.htm根本不利于使用,Servlet应该本是为简化工作而创造的啊!我当时觉得是我的设计框架产生了问题。第二天我便问方老师,确实是使用上有些问题。比如,显示访问计数,我把它单独写成了一个Servlet,什么地方需要它时,便由那个Servlet.include引用计数的Servlet。但这样总会产生一些问题和使用上的不便。比如include的Servlet必须使用相同的流,如果使用forward后任何输出都无效了。 方老师当时建议,把有些功能写到一起。但最后提到了过滤器,那时我便对过滤器产生了兴趣,今日也终于一睹芳容!让人十分喜欢! ServletFilter,Servlet过滤器: Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter 技术可以对web服务器管理的所有web资源:Jsp, Servlet, 静态图片文件或静态html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 ServletAPI提供了一个Filter接口,实现这个接口的Servlet就是一个过虑器。过虑器在WEB 应用访问流程中如下: 由图可见,只要我们编写了过滤器,可以对一切访问WEB应用的连接进行过滤。比如,用户访问权限、统一WEB编码… Filter是如何实现拦截的? 实现了Filter接口的Servlet是过滤器,因为Filter接口有一个doFilter(ServletRequest request, ServletResponse response, FilterChain chain)方法,只要用户访问我们在web.xml中配置的映射目录,服务器便会调用过滤器的doFilter方法。我们在这里实现过虑功能代码,当我们调用chain.doFilter(request, response);方法时,将请求反给服务器服务器再去调用相当的Servlet。如果我们不调用此方法,说明拒绝了用户的请求。 Filter开发入门: 在WEB应用中添加一个过滤器,有两步工作需要完成: 1.编写实现了Filter接口的Servlet——过滤器。 2.在web.xml中配置过滤器: (1). 标签添加器 (2). 注册过滤器的映射目录(过滤目录),与注册Servlet一样。 在实际WEB应用中,我们可能需要编写多个过虑器,比如:1.统一WEB编码的过滤器(过虑所有访问)2.用户访问权限管理。这样,用户的访问需要选经过过滤器1过滤然后再经过过滤器2过滤。doFilter中有一个FilterChain参数,这个参数是服务器根据web.xml中配置的过滤器,按照先后顺序生成的过滤器链。当我们在doFilter方法中调用chain.doFilter(request, response);方法时,服务器会查找过滤链中是否还有过滤器,如果有继续调用下一个过滤器,如果没有将调用相应的Servlet处理用户请求。 Filter接口的其他细节: 1.Filter的Init(FilterConfig filterConfig)方法: 与Servlet的Init方法一样,在创建时被调用,之后被保存在内存中直至服务器重启或关闭时Filter实例才会被销毁。与Servlet不同之处在于,服务器启动时就会实例化所有Filter,而Servlet中有当用户第一次访问它时才会被实例化。我们通过在web.xml使用对Filter配置的初始化参数,可以通过FilterConfig来获得。

广东商学院 web开发实验项目五 Servlet技术开发实验-Web-

实验报告 课程名称Web开发技术 实验项目名称实验项目五 Servlet技术开发实验 班级与班级代码(2012-2013-1)-113283-11006-2 实验室名称(或课室)实验楼403 专业2010信息管理与信息系统1班任课教师傅清波 学号: 姓名: 实验日期:2012 年 11 月 13 日 广东商学院教务处制

姓名实验报告成绩 评语: 指导教师(签名) 年月日说明:指导教师评分后,实验报告交院(系)办公室保存。

实验项目五Servlet技术开发实验 一、实验目的 1、了解和掌握Servlet接口的使用方法; 2、掌握Servlet的配置方法; 3、掌握Web监听的常用的方法; 4、掌握Web应用过滤器的开发方法。 二、实验内容 参照教材第7章内容,完成一个Servlet程序的开发和配置过程。参照教材第8 章内容,创建Web监听和过滤程序。 三、实验原理 Servlet技术原理、Web监听和过滤原理。 四、实验环境 电脑主机CPU intel core i5-2450m、RAM 6G,操作系统Windows 7 64位,开发工具Myeclipse8.5。 五、实验步骤 (一)Servlet程序的开发和配置过程 1、打开Myeclipse8.5软件,新建一个web工程“jsp56”; 图1:新建“jsp56”工程

2、在src文件夹下新建一个com包; 图2:新建“com”包 3、在com包下新建一个servlet,配置如下图,输入源代码并保存; 图3:新建servlet并配置

图4:输入源代码 4、运行工程“jsp56”,在浏览器中输入链接http://127.0.0.1:8080/jsp56/hello 访问; (二)创建Web监听 1、在com包下新建一个MyServletContextListener类,输入代码并保存; 图5:新建MyServletContextListener类

JSP+JavaBean+Servlet工作原理实例讲解

JSP+JavaBean两层结构的开发应该是比较熟悉的,也比较好理解。 但是有一点必须要清楚就是用户通过浏览器来发送网页的请求,此请求到达服务器后在服务器端查找对应的网页,如果是首次请求(第二次就不用解释执行了),对于JSP来说要生成Servlet,然后通过Servlet引擎来执行Servlet,把调用JavaBean的结果嵌入到页面中返回给用户的浏览器。 JSP+JavaBean+Servlet三层结构的实质是多了一个Controller:Servlet来分发客户端浏览器的请求。如果把起控制器作用的Servlet的作用理解为对客户端的请求进行预处理对理解Servlet 将有很大的帮助。通过web.xml配置文件可以找到用户请求和特定的Servlet的对应关系,每个Servlet都有一个特定的Servlet对象与之对应,所以说处理用户请求的就是一个继承自HttpServlet的Servlet对象。 与具体的Servlet对象关联,第二部分主要用来配置请求由哪个Servlet处理,Servlet名字的关联,处理请求就与具体Servlet处理对象关联起来,比如说,客户端浏览器发来/newsmain的请求,它由ms1 servlet进行处理,通过ms1就能找到相对应的serlet对象news.FirstAction,即/newsmain->ms1->news.FirstAction,这也就是配置文件的意义所在。到现在懂得了用户/newsmain请求会被news.FirstAction类的对象进行处理,所以说,要看懂程序就要看懂FirstAction

通过这个实现可以看到,当服务器收到客户端请求执行News.SearchNewsTitle(db)的操作,然后把返回值通过session.setAttribute放到session里,然后通过resp.sendRedirect(target)间接转移到newsMain.jsp,这样在newsMain.jsp里通过session.getAttribute函数就可以得到在存储在session里的对应值。 回过头来就容易看出JSP+JavaBean两层结构和JSP+JavaBean+Servlet三层结构的不同了,两层结构必须把预处理放在JSP中进行,比如说News.SearchNewsTitle(db),三层结构先把预处理在Servlet里进行了,然后相当于把这个处理结果通过Session返回给JSP,让JSP更关注于界面的显示。

JavaWeb应用实例servlet实现oracle基本增删改查(精)

Java Web 应用实例 servlet实现oracle 基本增删改查 分类:JAVA WEB应用实例2012-08-31 16:51 3515人阅读评论(0 收藏举报 /a542214712/article/details/7924444 很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的,所以从今天开始,我将与大家分享一下我学JAVA WEB写的一些小实例,我个人是不太喜欢书本上的晦涩的概念的,所以我花了更多的时间在一些应用实例上,我觉得这样的学习方式很适合我,由简到繁,由浅入深 废话不多话,开始我们的第一个实例: servlet实现oracle 基本增删改查 开发环境:JDK7 +Myeclipse10+tomcat7.0+oracle 11g 首先附上数据库创建脚本: [sql]view plaincopy 1. create table student( 2. id VARCHAR2(50 PRIMARY KEY NOT NULL, 3. name varchar2(50 NOT NULL, 4. calssGrent varchar2(50 NOT NULL , 5. result varchar(12 NOT NULL 6. ; 7. insert into student(id,name,calssGrent,result values(perseq.nextval,'张三 ','33','98' 下图为代码结构图和功能演示界面做的比较糟糕只为实现功能:

MMC_01.java 页面 //主界面提供添加,修改删除的方法 [java]view plaincopy 1. package org.lsy.servlet; 2. 3. import java.io.IOException; 4. import java.io.PrintWriter; 5. import java.sql.Connection; 6. import java.sql.DriverManager; 7. import java.sql.ResultSet; 8. import java.sql.Statement;

相关文档
最新文档