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

做海报有什么好的网站推荐做网站大

做海报有什么好的网站推荐,做网站大,北京博洛尼装饰公司,自建网站的劣势没有servlet能单独存在。在当前的现代Web应用中#xff0c;许多组件都是在一起协作共同完成一个目标。怎么让这些组件共享信息#xff1f;如何隐藏信息#xff1f;怎样让信息做到线程安全#xff1f; 1 属性和监听者 1.1 初始化 容器初始化一个servlet时#xff0c;会为… 没有servlet能单独存在。在当前的现代Web应用中许多组件都是在一起协作共同完成一个目标。怎么让这些组件共享信息如何隐藏信息怎样让信息做到线程安全 1 属性和监听者 1.1 初始化 容器初始化一个servlet时会为这个servlet建一个唯一的ServletConfig。容器从web.xml 配置文件中“读出”servlet初始化参数并把这些参数交给ServletConfig。然后把ServletConfig传递给servlet的init()方法。 一旦参数置于ServletConfig中就不会再读了除非重写部署了servlet。 1.1.1 上下文初始化参数 上下文初始化参数与servlet初始化参数很类似只不过上下文参数对整个Web应用可用而不只针对一个servlet。 public class InitServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {ServletConfig servletConfig getServletConfig();String servletName servletConfig.getInitParameter(servletName);ServletContext servletContext getServletContext();String contextName servletContext.getInitParameter(contextName);resp.setCharacterEncoding(gbk);PrintWriter writer resp.getWriter();writer.println(servlet初始化参数: servletName);writer.println(上下文初始化参数: contextName);writer.close();} } web-app xmlnshttp://java.sun.com/xml/ns/j2eexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsdversion2.4servletservlet-nameinitServlet/servlet-nameservlet-classservlet.InitServlet/servlet-classinit-paramparam-nameservletName/param-nameparam-valueinitServlet/param-value/init-param/servletcontext-paramparam-namecontextName/param-nameparam-valueday01/param-value/context-paramservlet-mappingservlet-nameinitServlet/servlet-nameurl-pattern/init/url-pattern/servlet-mapping/web-app web.xml  1.2 监听者 接口 使用场景 ServletContextAttributeListener 监听Web应用上下文中是否增加、删除或替换了一个属性。 HttpSessionListener 监听会话的创建。 ServletRequestListener 用户请求监听。 ServletRequestAttributeListener 监听请求增加、删除或替换属性。 HttpSessionBindingListener 属性类对象在绑定到一个会话或从会话删除时触发给属性类对象。 HttpSessionAttributeListener 监听会话增加、删除或替换属性。 ServletContextListener 监听Web应用上下文创建或销毁。 HttpSessionActivationListener 监听会话迁移到另一个JVM。 表 servlet常见的8种监听者 public class MyAtt implements HttpSessionBindingListener {Overridepublic void valueBound(HttpSessionBindingEvent event) {System.out.println(myAtt 添加到: event.getSession());}Overridepublic void valueUnbound(HttpSessionBindingEvent event) {System.out.println(myAtt 移除);} }public class MyHttpSessionAttributeListener implements HttpSessionAttributeListener {Overridepublic void attributeAdded(HttpSessionBindingEvent event) {System.out.println(添加session属性 event.getName() ,其值为: event.getValue());}Overridepublic void attributeRemoved(HttpSessionBindingEvent event) {System.out.println(删除session属性 event.getName() ,其值为: event.getValue());}Overridepublic void attributeReplaced(HttpSessionBindingEvent event) {System.out.println(替换属性 event.getName() ,其值为: event.getValue());}}public class MyHttpSessionListener implements HttpSessionListener {Overridepublic void sessionCreated(HttpSessionEvent event) {System.out.println(有个会话被创建了: event.getSession());}Overridepublic void sessionDestroyed(HttpSessionEvent event) {System.out.println(有个会话被销毁了: event.getSession());} }public class MyServletContextAttributeListener implements ServletContextAttributeListener {Overridepublic void attributeAdded(ServletContextAttributeEvent event) {System.out.println(添加上下文属性 event.getName() ,其值为: event.getValue());}Overridepublic void attributeRemoved(ServletContextAttributeEvent event) {System.out.println(删除上下文属性 event.getName() ,其值为: event.getValue());}Overridepublic void attributeReplaced(ServletContextAttributeEvent event) {System.out.println(替换上下文属性 event.getName() ,其值为: event.getValue());} }public class MyServletContextListener implements ServletContextListener {Overridepublic void contextInitialized(ServletContextEvent event) {System.out.println(上下文创建 event.getServletContext());}Overridepublic void contextDestroyed(ServletContextEvent event) {System.out.println(上下文销毁: event.getServletContext());}}public class MyServletRequestAttributeListener implements ServletRequestAttributeListener {Overridepublic void attributeAdded(ServletRequestAttributeEvent event) {System.out.println(添加请求属性 event.getName() ,其值为: event.getValue());}Overridepublic void attributeRemoved(ServletRequestAttributeEvent event) {System.out.println(删除请求属性 event.getName() ,其值为: event.getValue());}Overridepublic void attributeReplaced(ServletRequestAttributeEvent event) {System.out.println(替换请求属性 event.getName() ,其值为: event.getValue());} }public class MyServletRequestListener implements ServletRequestListener {Overridepublic void requestDestroyed(ServletRequestEvent event) {System.out.println(请求被销毁: event.getServletRequest());}Overridepublic void requestInitialized(ServletRequestEvent event) {System.out.println(请求初始化: event.getServletRequest());} } 监听者  public class ListenerServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setAttribute(reqAtt,hello req);req.getSession().setAttribute(sessionAtt, hello session);req.getSession().setAttribute(binding,new MyAtt());getServletContext().setAttribute(contextAtt, hello context);} } web-app xmlnshttp://java.sun.com/xml/ns/j2eexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsdversion2.4servletservlet-namelistenerServlet/servlet-nameservlet-classservlet.ListenerServlet/servlet-class/servletservlet-mappingservlet-namelistenerServlet/servlet-nameurl-pattern/listener/url-pattern/servlet-mappinglistenerlistener-classlistener.MyHttpSessionAttributeListener/listener-class/listenerlistenerlistener-classlistener.MyHttpSessionListener/listener-class/listenerlistenerlistener-classlistener.MyServletContextAttributeListener/listener-class/listenerlistenerlistener-classlistener.MyServletContextListener/listener-class/listenerlistenerlistener-classlistener.MyServletRequestAttributeListener/listener-class/listenerlistenerlistener-classlistener.MyServletRequestListener/listener-class/listener/web-app web.xml  2 会话管理 Web服务器没有短期记忆。 HttpSession对象可以保存跨同一个客户多个请求的会话状态即与一个特定客户的整个会话期间HttpSession会持久存储。对于会话期间客户做的所有请求都可以用HttpSession存取。 2.1 容器几乎做cookie的所有工作 除了必须告诉容器创建或使用一个会话其他工作比如生成会话ID、创建新的cookie对象、把会话ID放到cookie中、把cookie设置为响应的一部分以及从请求中的cookie得到会话ID将这个会话ID与一个现有会话匹配等工作都是由容器完成。 HttpSession session request.getSession(); // 在响应中发送一个会话cookie 执行完上面后容器会负责余下的事情你什么也不用做。 HttpSession session request.getSession(); // 从请求得到会话id。 执行完上面后容器会负责余下的事情找到与该ID匹配的会话没有则创建一个新会话。 图 执行request.getSession()后的响应与请求 当cookie被禁时URL重写是一条后路:如果客户端不接受cookie可以把URL重写作为一条后路。当然在实际开发中这种方法很少使用。 2.2 删除会话 删除会话有两种方式(不包括结束应用) 1设置超时时间setMaxInactiveInterval() 指定对于这个会话客户请求的最大间隔时间秒。 也可以在web.xml中配置单位是分钟 session-config session-timeout15session-timeout /session-config 2结束会话invalidate() 2.3 会话迁移 在部署分布式Web应用时容器可能会负载均衡取得客户的请求把请求发送到多个JVM上。例如每次客户请求时有可能到达同一个servlet到不同实例。 只有HttpSession对象及其属性会从一个VM移到另一个VM。 每个VM中有一个ServletContext,每个VM上的每个servlet有一个ServletConfig。但是对于每个Web应用的一个给定会话ID只有一个HttpSession对象而无论应用分布在多少个VM上。
http://www.dnsts.com.cn/news/40291.html

相关文章:

  • 巨人科技网站建设颍泉网站建设
  • 如何获取网站域名证书宁德市城乡建设网站
  • 东莞网站建设做公司wordpress评分管理
  • 购物网站开题报告wordpress导航菜单图标
  • 网页转向网站电子上网站开发
  • 深圳狮子会网站微信小程序登录页面
  • 普集网站开发营销管理
  • 丰台怎样做网站网络舆情处置方案
  • 网站开发者收入来源想自己做网站做推广
  • 信用门户网站建设规范曲周住房和城乡建设局网站
  • 大连专业做网站有什么网站做生鲜配送的
  • 建设标准 免费下载网站有哪些免费做网站
  • 网站简繁体转换代码书籍页面设计模板
  • 做一个模板网站多少钱vps建设网站需要条件
  • 网站源码安装步骤包装技术支持 东莞网站建设
  • 网站seo诊断技巧浙江注册公司网站
  • 东营兴通建设工程公司网站深圳建站公司哪个济南兴田德润简介
  • 兰州网站建设怎样做网站的快捷方式
  • 怎么用flash做网站织梦做的网站被黑了
  • 个人网站模板html做网站大概要多久
  • 网站搬家图片怎么做营销师是做什么的
  • 应聘网站开发题目商务网页设计与制作 百度百科
  • 烟台网站推广优化怎么在网站做推广
  • 公司网站做首页大图宝安沙井邮政编码
  • 网站开发职务山西建设网官方网站
  • 怎么免费永久创建网站无广告长沙商城网站建设报价公示
  • 网站建设学费多少钱网站建设合伙合同
  • 邯郸网站设计注册网页怎么做网站地图
  • 晋城市公用事业建设局网站中国建设工程信息网招标公告
  • 深圳专业建站平台seo交流论坛