当前位置: 首页 > news >正文

专门做网站的公司叫什么上海外贸

专门做网站的公司叫什么,上海外贸,西宁做网站的公司旭云网络,自适应网站制作方案文章目录01 过滤器的简介02 使用过滤器进行乱码解决03 使用过滤器进行登陆的控制04 过滤器更多内容05 监听器实现日志记录06 监听器实现在线人数的统计07 其他监听器使用01 过滤器的简介 为什么使用过滤器#xff1f; 我们目前书写项目中遇到的问题#xff1f; A、目前使用的… 文章目录01 过滤器的简介02 使用过滤器进行乱码解决03 使用过滤器进行登陆的控制04 过滤器更多内容05 监听器实现日志记录06 监听器实现在线人数的统计07 其他监听器使用01 过滤器的简介 为什么使用过滤器 我们目前书写项目中遇到的问题 A、目前使用的baseServlet的优点就是方便可以进行乱码的统一的处理但是如果我们以后不使用servlet,那么我们在进行中文乱码处理的时候就需要在每一个servlet 中去书写但是比较麻烦。 B、在进行登陆拦截处理的时候我们需要把拦截的代码在每一个页面中重复的书写这样就会变的非常的麻烦。 最终的问题 重复的代码在项目中多次的使用书写。 解决方案 过滤器什么是过滤器? 02 使用过滤器进行乱码解决 Class文件 public class EncFilter implements Filter {//初始化方法 --执行一次String abc;Overridepublic void init(FilterConfig filterConfig) throws ServletException {//UTF-8abc filterConfig.getServletContext().getInitParameter(abc);}//服务请求方法---执行多次Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {//到达目标资源之前的处理操作req.setCharacterEncoding(abc);//执行下一个过滤器或者目标资源chain.doFilter(req,resp);//离开服务器之前的处理操作}//销毁--执行一次Overridepublic void destroy() {}web.xml 配置过滤范围 Filtername /Filtername ...03 使用过滤器进行登陆的控制 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request(HttpServletRequest) req;HttpServletResponse response(HttpServletResponse)resp;Object emp request.getSession().getAttribute(emp);String uri request.getRequestURI();String queryString request.getQueryString();System.out.println(uri--queryString); if(/sxtoa/login.jsp.equals(uri)||/sxtoa/servlet/EmployeeServlet?methodempLogin.equals(uri?queryString)){filterChain.doFilter(request,response);}else {if(empnull){//用户没有登陆 response.sendRedirect(request.getContextPath()/login.jsp);}else { //直接放行 --执行目标的资源filterChain.doFilter(request,response);}} }04 过滤器更多内容 问题1多个过滤器执行的顺序怎么确定 的顺序确定执行的顺序 问题2每个请求和响应都要经过过滤器吗 不是是否经过过滤器经过几个过滤器由过滤器的路径来定 /servlet/ / 问题3请求和响应时是不是分别将过滤器代码从头到尾执行一遍 不是请求时执行预处理操作响应时执行后处理操作 请求时过滤器的执行顺序如果是1,2,4响应时过滤器的执行顺序4,2,1 问题4在过滤器中能否跳转到项目的其他任意资源 可以 举例如果一个过滤器是进行权限验证没有登录就不让访问目标资源直接跳转到login.jsp 问题5重定向和转发是否经过过滤器 重定向经过 默认转发不经过因为是服务器端跳转。可以通过配置解决 05 监听器实现日志记录 监听器简介 监听器: 监听事件,处理事件的对象. 使用观察者设计模式实现的. 观察者设计模式: 分为三个角色, 分别是:事件源, 事件, 监听器. 事件: 就是发生的事情, 其中包含事件源 事件源: 发生事情的根源, 触发事件的资源(对象)(发生事件的场所) 监听器: 处理事件的逻辑., 根据事件,获取事件源,并处理事件. Servlet中的监听器 代码实现 public class LogListener implements ServletRequestListener {//监听请求销毁Overridepublic void requestDestroyed(ServletRequestEvent servletRequestEvent) {}//监听请求的发出Overridepublic void requestInitialized(ServletRequestEvent servletRequestEvent) {// XXX 在 XXX时间 访问 程序的XX位置ServletRequest servletRequest servletRequestEvent.getServletRequest();HttpServletRequest request(HttpServletRequest)servletRequest;//获得远程访问的IP地址String ip request.getRemoteAddr();//获得访问的时间String localeString new Date().toLocaleString();//程序的位置 servlet/uu?methodaddString requestURI request.getRequestURI();String queryString request.getQueryString();try {PrintWriter outnew PrintWriter(new FileWriter(D:/log.txt,true));out.println(用户:ip,在:localeString,访问了程序:requestURI?queryString);out.close();} catch (IOException e) {e.printStackTrace();}} }06 监听器实现在线人数的统计 public class OnLineListener implements HttpSessionListener,HttpSessionAttributeListener {Overridepublic void sessionCreated(HttpSessionEvent httpSessionEvent) {}Overridepublic void sessionDestroyed(HttpSessionEvent httpSessionEvent) {ServletContext application httpSessionEvent.getSession().getServletContext();Integer online (Integer) application.getAttribute(online);if(onlinenull){online0;}else {online--;}application.setAttribute(online,online)}Overridepublic void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) {if(emp.equals(httpSessionBindingEvent.getName())){//全局对象ServletContext application httpSessionBindingEvent.getSession().getServletContext();//获得当前的在线人数Integer online (Integer) application.getAttribute(online);if(onlinenull){//当前没人登陆online1;}else {//当前有人登陆online;}//把记录的值重新的设置到applicationapplication.setAttribute(online,online);}}Overridepublic void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) {}Overridepublic void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) {} }07 其他监听器使用 Override public void valueBound(HttpSessionBindingEvent httpSessionBindingEvent) {System.out.println(valueBound); } Override public void valueUnbound(HttpSessionBindingEvent httpSessionBindingEvent) {// req.getSession().invalidate();// req.getSession().removeAttribute(emp);System.out.println(valueUnbound); } /*** 如果想要实现序列化和反序列化需要在Context.xml中* Manager classNameorg.apache.catalina.session.PersistentManager saveOnRestarttrueStore classNameorg.apache.catalina.session.FileStore directoryE:\apache-tomcat-7.0.79\webapps//Manager如果对象想要实现序列化过程对象上必须实现 Serializable** **/ Override public void sessionWillPassivate(HttpSessionEvent httpSessionEvent) {System.out.println(sessionWillPassivate); } Override public void sessionDidActivate(HttpSessionEvent httpSessionEvent) { System.out.println(sessionDidActivate); }
http://www.huolong8.cn/news/189710/

相关文章:

  • 哪些网站可以做产品推广泰州网站建设搭建
  • 网站排名哪家好wordpress视频插件有哪些
  • 网站注册流程企业网站建设的心得
  • 怎样在百度做网站安阳 网站建设
  • 天津seo网站推广网站建设需要哪些东西
  • 苏州市吴江住房和城乡建设局网站科技网站导航
  • 什么视频直播网站做挣钱可以做动态图表的网站
  • 网站开发证有没有用青岛网站优化公司
  • 内容聚合网站开发教程网站建设那个最好
  • 快速免费做网站pmp培训
  • 三只松鼠电商网站建设辽宁建设工程信息网怎么上传业绩
  • 网站怎么做接口苏州seo排名公司
  • 网站建设全包广合肥网页制作
  • 建设咨询网站现在能不能去西安
  • 网站软文制作天津谁做网站
  • linux服务器WordPress建站教程电商公司网站建设财务核算
  • 重庆巴南区网站开发网站横幅广告代码
  • 百度首页网站的设计梧州网站制作公司
  • 互联网设计是做什么的seo优化软件oem
  • vs 2017c 怎么建设网站做淘客网站 知乎
  • 最新网站建设进程手机网站需要备案吗
  • 十大招聘网站排行榜wordpress修改后台管理地址=
  • 微网站建设要多少钱深圳vi设计手册
  • 广州网站制作是什么网站更新怎么做
  • 如何给网站设置关键词网站结构有哪几种
  • 哈尔滨网站建设方案开发php手机网站开发
  • 萝岗移动网站建设模板之家html
  • 网站开发读什么专业网页传奇游戏怎么注销
  • 昆明做网站公司有哪些哈尔滨网站优化推广公司
  • 网络营销推广为什么效果不好济南好的seo