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

网站开发语音占比建设商务网站过程

网站开发语音占比,建设商务网站过程,济宁网站建设是什么意思,软件app开发定制目录 一、Servlet二、 Servlet入门2.1. 执行原理2.2. 实现Servlet接口重写其五个方法及其生命周期 三、Request请求对象3.1. 获取请求消息数据3.2. 获取请求头数据3.3. 获取请求体数据3.4. 设置编码3.5. 其他通用功能3.6. 请求转发(Forward)3.7. 转发共享数据 四、Response对象… 目录 一、Servlet二、 Servlet入门2.1. 执行原理2.2. 实现Servlet接口重写其五个方法及其生命周期 三、Request请求对象3.1. 获取请求消息数据3.2. 获取请求头数据3.3. 获取请求体数据3.4. 设置编码3.5. 其他通用功能3.6. 请求转发(Forward)3.7. 转发共享数据 四、Response对象4.1. response常用方法4.2. 重定向 五、ServletContext对象5.1 ServletContext对象获取方式5.2 获取MIME类型5.2 共享数据 六、Cookie对象6.1 Cookie介绍6.2 Cookie实现原理6.3 实现方式6.4 Cookie的细节 七、Session对象7.1 Session介绍7.2 实现原理7.3 Session实现7.4 Session的细节7.5 Session的特点 八、过滤器8.1 基本介绍8.2 过滤器实现原理8.3 实现步骤8.4 过滤器的生命周期8.5 过滤器配置8.6 过滤链(多个过滤器) 一、Servlet ServletServer Applet全称Java Servlet。是用Java编写的服务器端程序其主要功能在于交互式地浏览和修改数据生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口广义的Servlet是指任何实现了这个Servlet接口的类一般情况下人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从实现上讲Servlet可以响应任何类型的请求但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器 Servlet工作模式 ① 客户端发送请求至服务器 ②服务器启动并调用ServletServlet根据客户端请求生成响应内容并将其传给服务器 ③ 服务器将响应返回客户端 二、 Servlet入门 编写Servlet类 //WebServlet(/demo03) //使用继承Servlet接口的方式 public class ServletDemo01 implements Servlet {Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println(这里是初始化方法);}Overridepublic ServletConfig getServletConfig() {return null;}Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println(service执行了......);}Overridepublic String getServletInfo() {return ();}Overridepublic void destroy() {System.out.println(这里是销毁方法);} }//WebServlet(/demo02) //使用继承GenericServlet类的方式 public class ServletDemo02 extends GenericServlet {Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println(service方法执行了);} }//WebServlet(/demo03) //使用继承HttpServlet的方式 public class ServletDemo03 extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(执行了doget);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {} } web.xml配置文件 servlet!--Servlet的自定义名称--servlet-namedemo01/servlet-name!--Servlet资源的全限定路径--servlet-classcom.aoyezongguanjun.servlet.ServletDemo01/servlet-class /servlet servlet-mapping!--资源对应的Servlet--servlet-namedemo01/servlet-name!--资源路径--url-pattern/demo01/url-pattern /servlet-mappingservletservlet-namedemo02/servlet-nameservlet-classcom.tencent.servlet.ServletDemo02/servlet-class /servlet servlet-mappingservlet-namedemo02/servlet-nameurl-pattern/demo02/url-pattern /servlet-mappingservletservlet-namedemo03/servlet-nameservlet-classcom.tencent.servlet.ServletDemo03/servlet-class /servlet servlet-mappingservlet-namedemo03/servlet-nameurl-pattern/demo03/url-pattern /servlet-mapping2.1. 执行原理 当服务器收到客户端发送的请求后会解析对应的URL路径获取访问的Servlet的资源路径名称。tomcat会查询web.xml配置文件url-pattern内配置对应Servlet资源路径名称并且根据servlet-name的配置拿到Servlet类的全限定类名。tomcat根据Servlet的全限定类名通过反射获取Servlet对象然后调用其方法。 2.2. 实现Servlet接口重写其五个方法及其生命周期 init( )初始化方法当访问该servlet时会调用一次。注该方法只会被调用一次通常用于加载资源。我们在servlet标签下配置load-on-startup标签可以改变init()执行的时机当配置的是0或正整数时第一次被访问时才执行当配置负数时服务器启动时就会执行该方法。由init()方法只被执行一次说明Servlet是单例的可能存在线程安全问题。service()处理或响应客户端请求时执行每访问都会调用该方法。destroy()销毁方法服务器正常关闭时会调用该方法通常用于释放资源该方法只会被调用一次。getServletInfo()该方法用于获取 servlet 容器的名称和当前版本的信息。getServletConfig( ) 获取servlet配置对象。WebServlet注解 在Servlet3.0后支持注解配置Servlet不再需要web.xml文件了可以使用该注解将进行配置配置方式WebServlet(资源路径)。HttpServlet的doGet和doPost的执行原理。 HttpServlet继承了GenericServlet类实质还是重写了Service方法只是会根据不同的请求方式调用不同的方法。 三、Request请求对象 Request对象代表客户端的请求当客户端通过HTTP协议访问服务器时HTTP请求头中的所有信息都封装在这个对象中开发人员通过这个对象的方法可以获得客户这些信息。简单来说要得到浏览器信息就找HttpServletRequest对象。 3.1. 获取请求消息数据 获取请求方式String getMethod()获取请求虚拟路径String getContextPath()获取servlet路径String getServletPath()获取get请求方式参数String getQueryString()获取请求URIString getRequestURI()获取请求URLStringBuffer getRequestURL()获取协议及版本String getProtocol()获取客户机的IP地址String getRemoteAddr() 3.2. 获取请求头数据 获取请求头String getHeader(String name)获取所有请求头的名称 EnumerationString getHeaderNames()Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//请求地址http://localhost:8080/contextPath/demo03?usernamezhangsanString method req.getMethod();System.out.println(method);//GETString contextPath req.getContextPath();System.out.println(contextPath);// /contextPathString servletPath req.getServletPath();System.out.println(servletPath);// /demo03String queryString req.getQueryString();System.out.println(queryString);// usernamezhangsanString requestURI req.getRequestURI();System.out.println(requestURI);// /contextPath/demo03StringBuffer requestURL req.getRequestURL();System.out.println(requestURL.toString());// http://localhost:8080/contextPath/demo03String protocol req.getProtocol();System.out.println(protocol);// HTTP/1.1String remoteAddr req.getRemoteAddr();System.out.println(remoteAddr);// 0:0:0:0:0:0:0:1由于这里是本地调用如果是其他客户端调用会返回对应的IP地址String header req.getHeader(user-Agent);System.out.println(header);// PostmanRuntime/7.26.8EnumerationString headerNames req.getHeaderNames();ListString headerNameList new ArrayList();while (headerNames.hasMoreElements()){headerNameList.add(headerNames.nextElement());}System.out.println(String.join(;,headerNameList));//user-agent;accept;postman-token;host;accept-encoding;connection }3.3. 获取请求体数据 BufferedReader getReader()获取字符输入流只能操作字符数据ServletInputStream getInputStream()获取字节输入流可以操作所有类型数据 3.4. 设置编码 setCharacterEncoding(utf-8) 3.5. 其他通用功能 获取请求头参数通用方式不论get还是post请求方式都可以使用下列方法来获取请求参数 根据参数名称获取对应的参数值String getParameter(String name)根据参数名称获取参数值的数组String[] getParameterValues(String name)获取所有请求的参数名称EnumerationString getParameterNames()获取所有参数的map集合 MapString,String[] getParameterMap() 3.6. 请求转发(Forward) 工作原理转发是在服务器内部进行的用户发送的请求由一个Servlet接收后可以将请求内部转发给另一个Servlet或JSP处理最终将处理结果返回给用户。对于用户而言他们只发出了一次请求也只收到了一次响应。URL保持不变因为转发是在服务器内部进行的所以用户浏览器的地址栏URL不会发生变化。性能较高转发不涉及到客户端的重新请求因此通常比重定向快。共享请求数据在转发过程中原始请求和响应对象保持不变可以共享请求中的数据。实现步骤 通过request对象获取请求转发器对象RequestDispatchergetRequestDispatcher(String path)使用RequestDispatcher对象来进行转发forward(ServletRequest request,ServletResponse response)请求转发的特点浏览器地址栏路径不发生变化只能转发到当前服务器内部资源中转发是一次请求。req.getRequestDispatcher(/demo01).forward(req,resp);3.7. 转发共享数据 域对象一个有作用范围的对象可以在范围内共享数据 当浏览器访问浏览器时如果服务器需要进行请求转发服务器会转发到指定资源注意这次是服务器转发的用户端浏览器没有任何感知如果需要在转发时共享数据可以先将数据存储在Servlet转发域中将来转发请求指定资源时可以去转发域中获取共享的数据。转发资源响应后再响应到浏览器中该转发共享域也随之销毁。 Request域一般用于请求转发的多个资源中共享数据Request域的作用范围是一次请求。 方法 void setAttribute(String name,Object obj)存储数据Object getAttitude(String name)通过键获取值void removeAttribute(String name)通过键移除键值对 四、Response对象 Response是Web应用程序用来封装向客户端响应信息的是Servlet接口的service()方法的一个参数类型为javax.servlet.http.HttpServletResponse。客户端每次发送请求时服务器都会创建一个Response对象并传递给Servlet接口的service()方法来完成向客户端的响应工作。 4.1. response常用方法 设置响应状态码 setStatus(int httpStatusCode) 设置响应头 setHeader(String name,String value)//以附件形式打开响应体可以进行文件下载并且指定文件名称 resp.setHeader(content-disposition,attachment;filenamexxxxxx);setContentType(String MIME)//设置content-type响应头告诉浏览器以json的格式进行解析且编码方式是utf-8 resp.setContentType(text/json;charsetutf-8);设置响应体 获取字符输出流 PrintWriter getWriter()获取的流的默认编码方式是ISO-8859-1 /** * 输出字符到浏览器 */Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//表示将response的流编码方式为utf-8且告诉浏览器以json格式解析数据并且浏览器也是以utf-8编码方式解析数据 resp.setContentType(text/json;charsetutf-8); User user new User(); user.setUsername(张三); String json JSONArray.toJSONString(user); resp.getWriter().println(json); }获取字节输出流 ServletOutputStream getOutputStream() /** * 实现文件下载 */protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {ServletContext servletContext req.getServletContext();String imagePath servletContext.getRealPath(/img/JR史密斯.jpg);String mimeType servletContext.getMimeType(imagePath);resp.setHeader(content-type,mimeType);//读取文件获取文件输出流InputStream inputStream new FileInputStream(imagePath);//获取response字节流ServletOutputStream respOutputStream resp.getOutputStream();//建立缓冲区byte[] buffer new byte[1024 * 8];int len 0;//读写文件while ((len inputStream.read(buffer)) ! -1){respOutputStream.write(buffer,0,len);}inputStream.close();String fileName URLEncoder.encode(JR史密斯 System.currentTimeMillis(), UTF-8).replaceAll(\\, %20);//设置响应体resp.setHeader(Content-disposition, attachment;filename*utf-8 fileName .jpg);}4.2. 重定向 在Java Web开发中重定向Redirect是一种常见的技术用于将用户从一个URL地址自动重定向到另一个URL地址。这在很多情况下都非常有用例如在用户登录后将其重定向到其个人资料页面或者在进行某些操作后将其重定向到一个感谢页面。它通常用于以下情况 将用户从一个页面引导到另一个页面。更改或更新URL以反映新的资源位置。处理用户登录后的跳转。 重定向可以是临时的或永久的。临时重定向HTTP状态码为302通常用于暂时将用户导向另一个地址而永久重定向HTTP状态码为301则表示资源已永久移动到新的URL地址。 浏览器请求服务器指定资源如果该资源需要进行重定向会将这次请求的响应码设置为302且响应头location设置为重定向路径地址。当浏览器收到响应后会解析location设置的重定向路径地址然后重新发起一次新的请求去请求指定资源。 重定向实现 WebServlet(/AServletDemo ) public class AServletDemo extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // resp.setStatus(302); // resp.setHeader(location,req.getContextPath()/BServletDemo);//或者使用sendRedirect方法 //跳转路径规则判断定义的路径是给谁用的判断请求将来从哪儿发出 //给客户端浏览器使用需要加虚拟目录(项目的访问路径)//给服务器使用不需要加虚拟目录resp.sendRedirect(req.getContextPath()/BServletDemo);} }重定向的特点 重定向是两次请求两次响应。重定向前后浏览器的地址栏会发生变化。重定向前后的request对象不是同一个所以不能使用request对象来共享域。重定向前后的两个资源可以是来自不同的web应用甚至可以是不同的服务器。 五、ServletContext对象 ServletContext是Servlet规范中的一个对象它代表了当前Web应用程序的上下文Context。这个上下文包括了整个Web应用程序的信息可以被Web应用中的所有Servlet共享。可以将ServletContext看作是一个全局存储区用于存储和访问Web应用中的全局数据和资源。可以读取全局配置参数搜索当前工程目录下面的资源文件等。 5.1 ServletContext对象获取方式 通过Request对象获取 ServletContext servletContext req.getServletContext();通过HttpServlet获取 WebServlet(/demo04) public class ServletDemo04 extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) {ServletContext servletContext this.getServletContext();}5.2 获取MIME类型 MIME类型在互联网通信过程中定义的一种文件数据类型浏览器通常使用MIME类型而不是文件扩展名来确定如何处理URL因此Web服务器在响应头中添加正确的MIME类型非常重要。如果配置不正确浏览器可能会曲解文件内容网站将无法正常工作并且下载的文件也会被错误处理。比如给浏览器返回Json格式数据MIME类型就是application/json给浏览器返回excel的xlsx格式表格MIME类型就是application/vnd.openxmlformats-officedocument.spreadsheetml.sheet。 实现方法String getMimeType(String fileName) String mimeType this.getServletContext().getMimeType(列表.xlsx);5.2 共享数据 ServletContext域在整个Web应用程序中共享数据所有Servlet都可以访问。一旦获得了ServletContext对象您可以使用其域对象来存取数据。这可以通过以下方法之一来完成 setAttribute(String name,Object value)其中name是存储数据的名称value是数据的值。 servletContext .getServletContext().setAttribute(name,zhangsan);getAttribute(String name)获取数据。 String name (String)servletContext.getServletContext().getAttribute(name);removeAttribute(String name)删除数据 servletContext.getServletContext().removeAttribute(name);使用init-param元素在web.xml文件中配置全局参数以供整个Web应用程序使用。 ServletContext共享域生命周期 ServletContext域的生命周期与Web应用程序的生命周期相同。它在Web应用程序启动时创建而在Web应用程序关闭时销毁。这意味着在Web应用程序启动期间存储的数据将在整个应用程序的生命周期内保持不变。由于ServletContext域的数据在整个Web应用程序中可见因此要小心确保不要意外覆盖或混淆数据。 获取文件(服务器文件)的真实路径 String getRealPath(String path)//web目录下资源访问 String b servletContext.getRealPath(/b.txt); //WEB-INF目录下的资源访问 String c servletContext.getRealPath(/WEB-INF/c.txt); //src目录下的资源访问 String a servletContext.getRealPath(/WEB-INF/classes/a.txt);六、Cookie对象 6.1 Cookie介绍 Cookie 是一种在网站和应用程序中用于存储用户信息的小型文本文件。在一次会话的范围内的多次请求间共享数据。当用户访问一个网站或应用程序时该网站或应用程序会将一个包含用户信息的 Cookie 发送到用户的浏览器。浏览器会将该 Cookie 存储在用户的计算机上并在以后的访问中将该 Cookie 发送回网站或应用程序。 虽然 Cookie 对于提供个性化体验和方便用户来说非常有用但它们也引发了一些隐私和安全问题。例如第三方 Cookie 可以用于跟踪用户在多个网站上的活动可能会侵犯用户的隐私。出于隐私和安全的考虑现代浏览器通常允许用户控制哪些 Cookie 被接受和存储并提供了清除 Cookie 的选项。 会话浏览器第一次给服务器资源发送请求会话建立直到有一方断开为止一次会话中包含多次请求和响应。 6.2 Cookie实现原理 浏览器第一次请求服务器服务器如果需要设置Cookie会在响应头添加set-cookie的响应头值为键值对形式。如set-cookie:keyname。当浏览器收到服务器响应会去查询是否有set-cookie的响应头如果有会将响应头的值存储在浏览器中。当浏览器再次访问该服务器时会自定将cookie以请求头的格式发送给服务器具体格式为cookie:keyvalue。服务器收到请求后如果需要获取cookie可以解析请求头进行获取。 6.3 实现方式 添加cookie Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//创建cookie对象Cookie cookie1 new Cookie(username,zhangsan);Cookie cookie2 new Cookie(username2,zhangsan);//添加到响应头resp.addCookie(cookie1);resp.addCookie(cookie2);}获取cookie Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取cookieCookie[] cookies req.getCookies();for (Cookie cookie : cookies) {System.out.println(cookie.getName()cookie.getValue());}}6.4 Cookie的细节 Cookie一次可以创建多个创建多个cookie后请求头携带Cookie的格式为Cookie:usernamezhangsan; username2zhangsanCookie的存活时长默认是浏览器关闭后Cookie数据被销毁我们也可以使用cookie.setMaxAge(int seconds)执行cookie的存活时间当浏览器关闭后会自动持久化到浏览器中其中seconds参数正数表示存活时长(s)。负数(默认值)表示浏览器关闭后自动销毁。零表示立即删除cookie消息。在tomcat8之前Cookie中不能直接存储中文数据一般需要使用URL编码在tomcat8之后cookie支持中文数据但是特殊字符还是不支持建议使用URL编码存储使用URL编码解析。默认情况下一个服务器下多个web项目Cookie是不能共享的如果需要共享可以使用cookie.setPath(String path)设置Cookie的获取范围默认情况是设置当前的虚拟目录如果需要共享可以将path设置为/。如果多个tomcat服务器之间需要共享Cookie可以使用cookie.setDomain(String path)实现如果设置一级域名相同那么可以实现共享Cookie。如 setDomain(“.baidu.com”),那么tieba.baidu.com和news.baidu.com中cookie可以共享。浏览器对于单个Cookie大小限制4kb对于同一个域名下cookie总数限制20个。由于Cookie是存储在用户浏览器中所以数据安全性并不高。一般用于存储用户少量不太敏感的数据比如用户的登录信息和电商平台在不登陆的情况下加入购物车等功能。 七、Session对象 7.1 Session介绍 session在网络应用中称为“会话控制”是服务器为了保存用户状态而创建的一个特殊的对象。简而言之session就是一个对象用于存储信息。 Session类似于一个Map里面可以存放多个键值对是以key-value进行存放的。key必须是一个字符串value是一个对象 7.2 实现原理 当浏览器第一次发送请求时服务器会自动创建一个Session对象放到内存中并且指定唯一sessionId响应时服务器会将这个唯一的sessionId以响应cookie的方式响应给浏览器并且储存在浏览器。当浏览器第二次访问服务器时服务器会解析请求头是否携带这个cookie如果携带会根据cookie的sessionId去寻找执行sessionId的Session对象。 7.3 Session实现 向Session中存储数据。 HttpSession session req.getSession();ListUser users new ArrayListUser();User user new User();user.setUsername(use1);users.add(user);session.setAttribute(users,users);向Session中获取数据 HttpSession session req.getSession();ListUser userList (ListUser) session.getAttribute(users); 7.4 Session的细节 当客户端关闭后两次获取的Session并不是同一个对象如果需要获取的是同一个对象可以创建Cookie键为JSESSIONID设置最大存活时间让cookie持久化保存。 Cookie c new Cookie(JSESSIONID,session.getId()); c.setMaxAge(60*60); response.addCookie(c);当浏览器关闭时为防止session丢失tomcat在关闭之前会将Session钝化即将Session对象存储到硬盘上在tomcat启动后可以将其活化即读取硬盘重新加载到内存中。 Session在30分钟后默认失效或者使用session的invalidate()方法对session里的内容进行清空。我们也可以修改session的默认失效时间 session-configsession-timeout30/session-timeout /session-config7.5 Session的特点 session用于存储一次会话的多次请求是存储在服务器中的。session相对cookie来说相对安全session的数量个数和数据的大小没有限制。 八、过滤器 8.1 基本介绍 过滤器顾名思义就是对事物进行过滤的在Web中的过滤器当然就是对请求进行过滤我们使用过滤器就可以对请求进行拦截然后做相应的处理实现许多特殊功能。如登录控制权限管理过滤敏感词汇等。 8.2 过滤器实现原理 当服务器接受到浏览器发送请求会根据请求资源路径和过滤器WebFilter配置的拦截进行匹配当匹配不通过会绕过拦截器直接访问目标资源。当匹配通过时进入过滤器执行doFilter方法这里可以进行一些前置逻辑判断当符合某些放行规则后可以使用filterChain.doFilter(request,response)方法进行放行访问完目标资源后再次进入过滤器执行放行后的代码最后响应浏览器。细节过滤器Filter是在请求进入容器后但在进入servlet之前进行预处理请求结束是在servlet处理完以后。 8.3 实现步骤 基于注解配置过滤器 WebFilter(/user/*) public class ServletFilter1 implements Filter {//初始化方法Overridepublic void init(FilterConfig filterConfig) throws ServletException {Filter.super.init(filterConfig);}//拦截方法Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {System.out.println(ServletFilter1拦截器进行拦截了......);//放行filterChain.doFilter(request,response);System.out.println(执行之后......);}//销毁方法Overridepublic void destroy() {Filter.super.destroy();} }基于web.xml配置过滤器 filterfilter-namedemo1/filter-namefilter-classcom.aoyezongguanjun.filter.ServletFilter1/filter-class /filter filter-mappingfilter-namedemo1/filter-name!-- 拦截路径 --url-pattern/user/*/url-pattern /filter-mappingWebFilter(/user/*) public class ServletFilter1 implements Filter {//初始化方法Overridepublic void init(FilterConfig filterConfig) throws ServletException {Filter.super.init(filterConfig);}//拦截方法Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {System.out.println(ServletFilter1拦截器进行拦截了......);//放行filterChain.doFilter(request,response);System.out.println(执行之后......);}//销毁方法Overridepublic void destroy() {Filter.super.destroy();} }8.4 过滤器的生命周期 init在服务器启动后会自动创建Filiter对象然后调用init方法该方法只执行一次一般用于加载资源。doFIlter每次请求拦截时候都会执行该方法。destroy在服务器正常关闭后Filter对象会被销毁销毁前调用destroy方法该方法只会执行一次通常用于释放资源。 8.5 过滤器配置 具体路径资源/user/servletDemo1 只有访问/user/servletDemo1时过滤器才会执行。拦截目录/user/* 访问/user下的所有资源时过滤器才会执行。后缀名拦截*.jsp 访问所有后缀名为jsp资源时过滤器才会执行。拦截所有资源/* 访问所有资源过滤器都会执行。拦截方式配置可以设置dispatcherTypes属性 REQUEST默认值。浏览器直接请求资源FORWARD转发访问资源 * INCLUDE包含访问资源ERROR错误跳转资源ASYNC异步访问资源 可以使用web.xml的dispatcher标签配置过滤方式配置。 8.6 过滤链(多个过滤器) 当配置了多个过滤器匹配访问资源时候如过滤器1和过滤器2匹配过滤执行顺序为过滤器1-过滤器2-执行资源-过滤器2-过滤器1当配置多个过滤器后默认会按照类名的字符串比较值小的优先执行。如果使用的是web.xml的方式执行优先配置的先执行。
http://www.hkea.cn/news/14417291/

相关文章:

  • 网站布局方案wordpress 外链图片自动
  • 顺德顺的网站建设网页设计心得体会结尾
  • 学校网站模板图片网页设计实训报告总结1000字免费
  • 番禺做网站网站建设可用性的五个标准
  • 网站静态模板下载跨境商城网站建设
  • 招聘网站开发需求分析重庆哪里做网站
  • 用vs2010做网站导航企业建站用什么软件
  • wp建站优化英文网站建设szjijie
  • 郑州高端做网站百度注册入口
  • 婚纱网站建设案例latex wordpress 怎么用
  • 任县网站建设公司深圳网站建设网站运营
  • 免费国外建站学校学不到网站建设
  • 织梦怎么做单页网站做网站原型现成的框架
  • 商标设计网站免费保定seo网络推广
  • 怎么购买网站空间和域名品牌推广策划方案怎么写
  • 郴州做网站ku0735网站系统分析的步骤有哪些
  • ipv6网站建设东营网站建设收益高
  • 设计公司网站案例网站建设的技能有哪些方面
  • 数据集网站1个亿用户的服务器多少钱
  • 网上商城网站建设方案书三门峡市建设项目备案网站
  • 私人做的不错的网站个人网站建设规划书
  • 黄页网站推广公司做网站的把网站写成一行
  • 中国没公司怎么做网站企业邮箱账号
  • 网站备案背景南京网站建设的公司
  • 理财网站开发迅睿cms模板
  • 做网站在哪儿买空间win2008sr怎么用iis做网站
  • 网站多条件筛选 html在网上那里能接单做网站
  • 宜昌网站建设哪家好五八同城最新招聘信息
  • 网页制作什么主题好深圳seo专家
  • 手机网站页面模板wordpress文章页幻灯片