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不需要重启启动,自动热加载
关于JAVAweb的一些东西
猜你喜欢
转载自www.cnblogs.com/wangjianly/p/10339327.html
今日推荐
周排行