栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

javaweb 高级Servlet

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javaweb 高级Servlet

实现第一个Filter
首先在Eclipse中创建一个名为chapter08的Web项目,然后在该项目的src目录下创建一个名为pidan.filter包,最后在该包下创建一个名为MyServlet的Servlet 类,该类用于访问时在浏览器中输出“Hello MyServlet”。

在web.xml文件中对Servlet进行如下配置

启动Tomcat 服务器,在浏览器的地址栏中输入地址http://localhost:8080/chapterO8/MyServlet

在cn.itcast包中创建一个名为MyFilter的Fiter类,该类用于拦截MyServlet程序。

过滤器程序与Servlet程序类似,同样需要在 web.xml文件中进行配置,从而设置它所能拦截的资源

重新启动Tomcat 服务器,在浏览器访问MyServlet

Filter映射
在chapter08项目的pidan.filter包中,创建一个名为ForwardServlet的Servlet类,该类用于将请求转发给first.jsp页面

在web.xml文件中,配置ForwardServlet信息

在WebContent目录中创建一个first.jsp页面,该页面用于输出内容

在pidan.filter包中,创建一个过滤器ForwardFiter.java,该过滤器专门用于对first.jsp页面进行拦截

在web.xml文件中,配置过滤器的映射信息,拦截first.jsp页面

启动Tomcat 服务器,在浏览器访问ForwardServlet

重新启动Tomcat服务器,在浏览器访问ForwardServlet

Filter链
(1) 在 chapter08 项目的cn.itcast.chapter08.filter 包中新建两个过滤器 MyFilter01 和MyFilter02


为了防止其他过滤器影响此次Filter链的演示效果,请先在web.xml文件中注释掉其他过滤器的配置信息。然后,将MyFilter01和MyFilter02过滤器的映射信息配置在MyServlet配置信息前面

重新启动Tomcat服务器,在浏览器地址栏中输入“http://localhost:8888/chapter08/MyServlet”

MyServlet首先被MyFilter01拦截了,打印出MyFilter01中的内容,然后被MyFilter02拦截,直到MyServlet被MyFilterO2放行后,浏览器才显示出MyServlet中的输出内容。

FilterConfig接口
在 chapter08项目的pidan.filter包中创建过滤器MyFilter03,来获取 web.xml中设置的参数

在 web.xml文件中配置过滤器信息。由于Filter链中各个Filter的拦截顺序与它们在web.xml文件中元素的映射顺序一致,因此,为了防止其他Filter影响MyFilter03的拦截效果,这里将MyFilter03映射信息配置在web.xml文件最前端

重新启动Tomcat服务器,在浏览器访问MyServlet,控制台窗口中显示的结果如图

Filter实现用户登录

  1. 编写User类
    在chapter08项目中创建pidan.entity包,在该包中编写User 类,该类用于封装用户的信息

    (1)在chapter08项目的WebContent根目录中,编写login.jsp页面,该页面用于创建一个用户登录的表单,这个表单需要填写用户名和密码,以及用户自动登录的时间

    在chapter08项目的WebContent根目录中,编写index.jsp页面,该页面用于显示用户的登录信息。如果没有用户登录,在index.jsp页面中就显示一个用户登录的超链接。如果用户已经登录,在 index.isp页面中显示登录的用户名,以及一个注销的超链接

    在上述JSP文件中使用了JSTL标签库,因此,项目中应添加JSTL标签库的支持JAR包(jstl.jar和standard.jar)。

    编写LoginServlet类
    在chapter08项目的包中,编写LoginServlet类,该类用于处理用户的登录请求。如果输入的用户名和密码正确,则发送一个用户自动登录的cookie,并跳转到首页;否则会提示输入的用户名或密码错误,并跳转至登录页面login.jsp让用户重新登录

    在chapter08项目的cn.itcast.chapter08.filter包中,编写LogoutServlet类,该类用于注销用户登录的信息。在这个程序中首先会将Session会话中保存的User对象删除,然后将自动登
    录的cookie删除,最后跳转到index.jsp

    在chapter08项目的pidan.filter包中,编写AutoLoginFilter类,该类用于拦截用户登录的访问请求,判断请求中是否包含用户自动登录的cookie。如果包含,则获取cookie中的用户名和密码,并验证用户名和密码是否正确。如果正确,则将用户的登录信息封装到User对象存入Session域中,完成用户自动登录

    在web.xml文件中,配置所有相关Servlet及AutoLoginFilter过滤器信息。由于要拦截用户访问资源的所有请求,因此,将过滤器元素拦截的路径设置为“/”

    最后的实现效果如下


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/641934.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号