zoukankan      html  css  js  c++  java
  • 关于JAVAweb的一些东西

    1、Servlet
        1.Servlet访问URL映射配置
            <servlet>
                <servlet-name>ServletDemo1</servlet-name>
                <servlet-class>gacl.servlet.study.ServletDemo1</servlet-class>
            </servlet>
    
            <servlet-mapping>
                <servlet-name>ServletDemo1</servlet-name>
                <url-pattern>/servlet/ServletDemo1</url-pattern>
            </servlet-mapping>
        2.如果在<servlet>元素中配置了一个<load-on-startup>元素,那么WEB应用程序在启动时,就会装载并创建Servlet的实例对象、以及调用Servlet实例对象的init()方法。
        3.Servlet的线程安全问题
            *使用全局变量会存在线程安全问题
            1.synchronized 会使任务排队
            2.SingleThreadModel  引擎将以单线程模式来调用其service方法。
        4.ServletConfig讲解
            1.配置Servlet初始化参数(通过ServletConfig获取Servlet的初始化参数)
                <servlet>
                    <servlet-name>ServletConfigDemo1</servlet-name>
                    <servlet-class>gacl.servlet.study.ServletConfigDemo1</servlet-class>
                    <!--配置ServletConfigDemo1的初始化参数 -->
                    <init-param>
                        <param-name>name</param-name>
                        <param-value>gacl</param-value>
                    </init-param>
                </servlet>
            2.ServletContext对象:WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
            3.ServletContext的应用
                1.多个Servlet通过ServletContext对象实现数据共享
                2.获取WEB应用的初始化参数(web.xml配置)
                    <context-param>
                        <param-name>url</param-name>
                        <param-value>jdbc:mysql://localhost:3306/test</param-value>
                    </context-param>
                    Servlet的方法调用
                        ServletContext context = this.getServletContext();
                3.用servletContext实现请求转发
                    ServletContext context = this.getServletContext();//获取ServletContext对象
                    RequestDispatcher rd = context.getRequestDispatcher("/servlet/ServletContextDemo5");//获取请求转发对象(RequestDispatcher)
                    rd.forward(request, response);//调用forward方法实现请求转发
                4.利用ServletContext对象读取资源文件
                    1.response.setContentType("text/html;charset=UTF-8");目的是控制浏览器用UTF-8进行解码;
    2、Filter简介
        1.Servlet提供了一个Filter接口,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter;
        2.Filter链
            在一个web应用中,可以开发编写多个Filter,这些Filter组合起来称之为一个Filter链。
        3.Filter的部署
            1.注册Filter
                <filter>
                    <description>FilterDemo02过滤器</description>
                    <filter-name>FilterDemo02</filter-name>
                    <filter-class>me.gacl.web.filter.FilterDemo02</filter-class>
                    <!--配置FilterDemo02过滤器的初始化参数-->
                    <init-param>
                        <description>配置FilterDemo02过滤器的初始化参数</description>
                        <param-name>name</param-name>
                        <param-value>gacl</param-value>
                    </init-param>
                    <init-param>
                        <description>配置FilterDemo02过滤器的初始化参数</description>
                        <param-name>like</param-name>
                        <param-value>java</param-value>
                    </init-param>
                </filter>
            2、映射Filter
                <!--映射过滤器-->
                <filter-mapping>
                    <filter-name>FilterDemo02</filter-name>
                    <!--“/*”表示拦截所有的请求 -->
                    <url-pattern>/*</url-pattern>
                    <dispatcher>REQUEST</dispatcher>
                    <dispatcher>FORWARD</dispatcher>
                </filter-mapping>
                <dispatcher> 子元素可以设置的值及其意义:
                REQUEST:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问时,
                        那么该过滤器就不会被调用。
                INCLUDE:如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
                FORWARD:如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。
                ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。
    
    3、listener        
        1.JavaWeb中的监听器,监听ServletContext,HttpSession和ServletRequest这三个域对象
        2.监听ServletContext域对象的创建和销毁(ServletContextListener )
            1.当ServletContext对象被创建时,激发contextInitialized (ServletContextEvent sce)方法。
            当ServletContext对象被销毁时,激发contextDestroyed(ServletContextEvent sce)方法。
            **ServletContext域对象创建和销毁时机:
            创建:服务器启动针对每一个Web应用创建ServletContext
            销毁:服务器关闭前先关闭代表每一个web应用的ServletContext
            2.在web.xml文件中注册监听器
                <listener>
                    <description>ServletContextListener监听器</description>
                    <!--实现了ServletContextListener接口的监听器类 -->
                    <listener-class>me.gacl.web.listener.MyServletContextListener</listener-class>
                </listener>
        3.监听HttpSession域对象的创建和销毁(HttpSessionListener )
            1.创建一个Session时,激发sessionCreated (HttpSessionEvent se) 方法
            销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se) 方法。     
              
            2.在web.xml文件中注册监听器
                <!--注册针对HttpSession对象进行监听的监听器-->
                <listener>
                    <description>HttpSessionListener监听器</description>
                    <listener-class>me.gacl.web.listener.MyHttpSessionListener</listener-class>
                </listener>
                <!-- 配置HttpSession对象的销毁时机 -->
                <session-config>
                    <!--配置HttpSession对象的1分钟之后销毁 -->
                    <session-timeout>1</session-timeout>
                </session-config>
        4.监听ServletRequest域对象的创建和销毁(ServletRequestListener )
            1.Request对象被创建时,监听器的requestInitialized(ServletRequestEvent sre)方法将会被调用
            Request对象被销毁时,监听器的requestDestroyed(ServletRequestEvent sre)方法将会被调用
             ***ServletRequest域对象创建和销毁时机:
                创建:用户每一次访问都会创建request对象
                销毁:当前访问结束,request对象就会销毁
            2.在web.xml文件中注册监听器
                <listener>
                    <description>ServletRequestListener监听器</description>
                    <listener-class>me.gacl.web.listener.MyServletRequestListener</listener-class>
                </listener>        
        5.虚拟路径的发布
            <Context path="/world" docBase ="D:hello" reloadable="true"/>
            reloadable:一般设置为true后,tomcat不需要重启启动,自动热加载        
                
                
  • 相关阅读:
    有向图的连通性
    P6149 [USACO20FEB]Triangles S
    P6148 [USACO20FEB]Swapity Swapity Swap S
    RabbitMQ六中工作模式-主题模式
    turbine 集群聚合监控
    RabbitMQ六中工作模式-路由模式
    RabbitMQ六中工作模式-发布和订阅模式
    RabbitMQ六中工作模式-工作模式
    RabbitMQ六中工作模式-简单模式
    feign 声明式客户端接口
  • 原文地址:https://www.cnblogs.com/wangjianly/p/10339327.html
Copyright © 2011-2022 走看看