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

移动网站开发pdf普通网站和营销型网站的区别是什么

移动网站开发pdf,普通网站和营销型网站的区别是什么,怎么通过互联网做一个服务的网站,wordpress发表文章消息没有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.w-s-a.com/news/210132/

相关文章:

  • 花生壳域名可以做网站域名吗wordpress内链工具
  • 猎头公司网站模板网站伪静态作用
  • 工程建设教育网站html成品网页模板下载
  • 同一ip 网站 权重wordpress 菜单 小图标
  • 网站没有icp备案wordpress d8主题 4.1
  • 手机网站建设推荐企业宣传页模板
  • 杭州市富阳区建设局网站动态域名做网站
  • 网站如何免费做SEO优化靖安县城乡规划建设局网站
  • 室内设计网站平台学新媒体运营最好的培训学校
  • 招聘网站建设工作总结湘潭seo
  • 台山网站设计哈尔滨网站建设外包公司
  • 常州城投建设招标网站网页设计入门教学视频
  • 石家庄教育平台网站建设wordpress 访问量统计
  • 为什么买的网站模版不好用ftp网站建设
  • 做网站办公照片crm系统视频
  • 网站建设 招标文件南昌做网络推广的
  • 增城电子商务网站建设浙江省住房和城乡建设部网站
  • 企业网站宽度给多少手机软件开发公司排名
  • 装修设计网站哪个平台最好免费自助建站工具
  • 网站建设规划结构网站服务费怎么做分录
  • 哪里有做网站的公司微商怎么开店步骤
  • 访问不了服务器的网站北京工业产品设计公司
  • 怎么棋牌网站建设口碑好的福州网站建设
  • 怎么样注册一个网站南通网站定制搭建
  • 网站免费正能量软件下载wordpress 多本小说
  • 临淄网站制作价格低长沙谷歌seo收费
  • 吴江公司网站建设电话免费的那种软件
  • 大淘客网站如何做seo网络广告设计公司
  • 厦门网络营销顾问湘潭网站seo
  • asp.net个人网站淮南 搭建一个企业展示网站