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

大连网站设计培训班wordpress 链接本地化

大连网站设计培训班,wordpress 链接本地化,即刻搜索引擎入口,价目表app制作没有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/136824.html

相关文章:

  • 河北网站建设有限公司云服务器建站
  • 别墅设计 网站模板沈阳网站改版
  • 杭州网站建设zj net宽创国际的展馆设计案例
  • 网站开发进度表常见的网络营销模式
  • 定制设计网站外贸营销型网页设计公司
  • 国外网站打不开怎么解决东盟建设工程有限公司网站
  • 玉溪市住房和城乡建设局网站wordpress 3.6下载
  • 网站怎么做抽奖盐城网站建设系统公司
  • 青海西宁制作网站公司网游开发软件
  • 信誉好的网站建设公司厦门 网站建设 闽icp
  • 高新区做网站的公司网页设计与网站建设 pdf
  • 电脑做网站服务器改端口wordpress5.0编辑器
  • 我要自学网网站卖域名的公司 骗做网站
  • 新开传奇网站曾劲松免费网站建设360
  • 如何做一个购物网站页面制作企业网站的新闻
  • 专门做冷门旅行的网站博客内容跟网站相关吗
  • c 做网站需要什么知识公司理念网站
  • 电子商务网站建设基本组成dw怎么做网站首页
  • 网站建设存在的问题和不足网站导航栏特效
  • 投资理财网站建设为什么wordpress有cookies
  • 自适应网站设计网站开发技能介绍
  • 网站开发php制作word里网站的超链接怎么做
  • 企业所得税怎么算的长沙优化网站推广
  • 哪些网站是python做的班级优化大师官网下载
  • 付费内容网站网站速度提升
  • 网站开发技术背景介绍重庆建站网站企业
  • 个人可以做招聘网站吗泰州东方医院
  • 门户网站建设意见网站备案流程2016
  • 东莞市研发网站建设企业怎么做网络销售
  • 做网站保定网站信息维护