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

wordpress hook大全西安优化外包

wordpress hook大全,西安优化外包,wordpress 10万pv,wordpress音乐插件百度云简介 web#xff1a;全球广域网#xff0c;也称万维网(www)#xff0c;能够通过浏览器访问的网站 JavaWeb#xff1a;是用Java技术来解决相关web互联网领域的技术栈 JavaWeb技术栈 B/S架构#xff1a;Browser/Server#xff0c;浏览器/服务器架构模式#xff0c;它的… 简介 web全球广域网也称万维网(www)能够通过浏览器访问的网站 JavaWeb是用Java技术来解决相关web互联网领域的技术栈 JavaWeb技术栈 B/S架构Browser/Server浏览器/服务器架构模式它的特点是客户端只需要浏览器应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器获取Web资源服务器把Web资源发送给浏览器即可 好处易于维护升级服务器端升级后客户端无需任何部署就可以使用到新的版本 静态资源HTML、CSS、JavaScript、图片等。负责页面展现 动态资源Servlet、JSP等。负责逻辑处理 数据库负责存储数据 HTTP协议定义通信规则 Web服务器负责解析HTTP协议解析请求数据并发送响应数据 HTTP 概念HyperText Transfer Protocol超文本传输协议规定了浏览器和服务器之间数据传输的规则 HTTP协议特点: 1. 基于TCP协议面向连接安全 2.基于请求-响应模型的一次请求对应一次响应 3. HTTP协议是无状态的协议对于事务处理没有记忆能力。每次请求-响应都是独立的。         缺点多次请求间不能共享数据         优点速度快 请求数据格式 格式 请求数据分为3部分如下图所示 1. 请求行请求数据的第一行。其中GET表示请求方式(请求方式有7种POST也是其中一种)/表示请求资源路径HTTP/1.1表示协议版本         2.请求头第二行开始格式为key : value形式。         3.请求体POST请求的最后一 部分存放请求参数 常见的HTTP请求头 Host表示请求的主机名User-Agent浏览器版本例如Chrome浏览器的标识类似Mozilla/5.0 ..Chrome/79IE浏览器的标识类似Mozilla/5.0 (Windows NT ... like GeckoAccept表示浏览器能接收的资源类型如text/*、image/*或者*/*表示所有Accept-Language表示浏览器偏好的语言,服务器可以据此返回不同语言的网页Accept-Encoding表示浏览器可以支持的压缩类型例如gzip、deflate等 GET请求和POST请求区别 GET请求请求参数在请求行中没有请求体。POST请求请求参数在请求体中。 GET请求请求参数大小有限制POST没有 相应数据格式 格式  响应数据分为3部分(如下图所示) 1.响应行响应数据的第一行。 其中HTTP/1.1表示协议版本200表示响应状态码OK表示状态码描述         2.响应头第二行开始格式为key : value形式         3.响应体最后一部分。 存放响应数据 响应状态码 状态码分类说明1xx响应中--临时状态码表示请求已经接受告诉客户端应该继续请求或者如果它已经完成则忽略它2xx成功--表示请求已经被成功接收 处理已完成3xx重定向一重定向到其它地方它让客户端再发起一个请求以完成整个处理。4xx客户端错误--处理发生错误 责任在客户端如客户端的请求一个不存在的资源 客户端末被授权禁止访问等5xx服务器端错误--处理发生错误 责任在服务端如服务端抛出异常路由出错HTTP版本不支持等 状态码大全https://cloud.tencent.com/developer/chapter/13553 *常见的相应状态码 状态码英文描述解释200 OK客户端请求成功即处理成功这是我们最想看到的状态码302Found指示所请求的资源已移动到由Location响应头给定的URL浏览器会自动重新访问吧。隐式重定向304Not Modified告诉客户端你请求的资源至上次取得后服务端并未更改你直接用你本地缓存吧。隐式重定向400Bad Request客户端请求有语法错误不能被服务器所理解403Forbidden服务器收到请求但是拒绝提供服务比如没有权限访问相关资源404Not Found请求资源不存在一般是URL输入有误或者网站资源被删除了428Precondition Required服务器要求有条件的请求告诉客户端要想访问该资源必须携带特定的请求头429Too Many Requests太多请求可以限制客户端请求某个资源的数量配合Retry-After(多长时间后可以请求)响应头一起使用431Request Header Fields请求头太大服务器不愿意处理请求因为它的头部字段太大。请求可以在减少请求头域的大小后重新提交。405Method Not Allowed请求方式有误比如应该用GET请求方式的资源用了POST500Internal Server Error服务器发生不可预期的错误。服务器出异常了赶紧看日志去吧503Service Unavailable服务器尚未准备好处理请求服务器刚刚启动还未初始化好511Network Authentication Required客户端需要进行身份验证才能获得网络访问权限 常见的HTTP响应头 Content-Type表示该响应内容的类型例如text/htmIimage/jpeg Content-Length表示该响应内容的长度(字节数) Content- Encoding表示该响应压缩算法例如gzip Cache-Control指示客户端应如何缓存例如max-age300表示可以最多缓存300秒 Tomcat Web服务器 Web服务器是一个应该程序 (软件) 对HTTP协议的操作进行封装使得程序员不必直接对协议进行操作让Web开发更加便捷。主要功能是“提供网上信息浏览服务” 常见服务器软件Tomcat、jetty、WebLogic、WebSphere 简介 Tomcat是Apache软件基金会一个核心项目 是一个开源免费的轻量级Web服务器支持Servlet/JSP少量JavaEE规范。 JavaEEJava Enterprise Edition, Java企业版。 指Java企业级开发的技术规范总和。包含13项技术规范JDBC、JNDI、 EJB、 RMI、JSP、 Servlet、 XML、 JMS、 Java IDL、 JTS、JTA、 JavaMail、 JAF Tomcat也被称为Web容器、Servlet容器。 Servlet 需要依赖于Tomcat才能运行 官网https://tomcat.apache.org/ 基本使用 下载官网下载 安装绿色版直接解压即可 卸载直接卸载删除目录即可 启动双击bin\startup.bat ​ 配置修改启动端口号conf/server.xml *HTTP协议默认端口号为80如果将Tomcat端口号改为80则将来访问Tomcat时将不用输入端口号 Tomcat部署项目将项目放到webapps目录下即部署完成 *一般JavaWeb项目会被打成war包然后将war包放到webapps目录下Tomcat会自动解压缩war文件 IDEA中创建Maven Web项目 Web项目结构 Maven Web项目结构开发中的项目 部署的JavaWeb项目结构开发完成可以部署的项目 编译后的Java字节码文件和resources的资源文件放到WEB-INF下的classes目录下 pom.xml中依赖坐标对应的jar包放入WEB-INF下的Iib目录下 创建项目 使用骨架  骨架项目模板 选择web项目骨架,创建项目删除pom.xml中多余的坐标补齐缺失的目录结构 不使用骨架 选择web项目骨架创建项目pom.xml中添加打包方式为war补齐缺失的目录结构: webapp IDEA中使用Tomcat 集成本地Tomcat将本地Tomcat集成到Idea中然后进行项目部署即可 IDEA中使用Tomcat-Tomcat Maven插件pom.xml添加Tomcat插件使用Maven Helper插件快速启动项目选中项目右键-- Run Maven -- tomcat7:run Servlet Servlet是Java提供的一门动态web资源开发技术 Servlet是JavaEE规范之一其实就是一个接口将来我们需要定义Servlet类实现Servlet接口并由web服务器运行Servlet 快速入门 1.创建web项目导入Servlet依赖坐标 dependenciesdependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependency /dependencies 2.创建定义一个类实现Servlet接口并重写接口中所有方法并在service方法中输入一句话 3.配置在类上使用WebServlet注解配置该Servlet的访问路径 WebServlet(/study) public class StudyServlet implements Servlet {Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println(hello);}Overridepublic void init(ServletConfig servletConfig) throws ServletException {}Overridepublic ServletConfig getServletConfig() {return null;}Overridepublic String getServletInfo() {return null;}Overridepublic void destroy() {} } 4.访问启动Tomcat浏览器输入URL访问该Servlet Servlet执行流程 Servlet由web服务器创建Servlet方法由web服务器调用。 Servlet生命周期 对象的生命周期指一个对象从被创建到被销毁的整个过程 Servlet运行在Servlet容器(web服务器)中其生命周期由容器来管理分为4个阶段 1.加载和实例化默认情况下当Servlet第一 次被访问时 由容器创建Servlet对象              2.初始化在Servlet实例化之后容器将调用Servlet的init()方法初始化这个对象 完成一些如加载配置文件、创建连接等初始化的工作。该方法只调用一次         3. 请求处理每次请求Servlet时Servlet容器都会调用Servlet的service()方法对请求进行处理。         4.服务终止当需要释放内存或者容器关闭时容器就会调用Servlet实例的destroy()方法完成资源的释放。在destroy()方法调用之后 容器会释放这个Servlet实例该实例随后会被Java的垃圾收集器所回收 * 可以通过配置参数设置对象创建的时机 WebServlet(value /study, loadOnStartup 1) //负整数第一次被访问时创建Servlet对象 //0或正整数服务器启动时创建Servlet对象数字越小优先级越高 *Servlet方法 初始化方法在Servlet被创建时执行只执行一次 void init(ServletConfig config) 提供服务方法每次Servlet被访问 都会调用该方法 void service(ServletRequest req, ServletResponse res) 销毁方法当Servlet被销毁时调用该方法。在内存释放或服务器关闭时销毁Servlet void destroy() 获取ServletConfig对象 ServletConfig getServletConfig() 获取Servlet信息(比如作者、版本、版权) String getServletlnfo() Servlet体系结构 开发B/S架构的web项目都是针对HTTP协议所以自定义Servlet会继承HttpServlet。 HttpServlet使用步骤继承HttpServlet重写doGet和doPost方法 HttpServlet原理获取请求方式并根据不同的请求方式调用不同的doXxx方法 WebServlet(/pro) public class ServletPro extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(get);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(post);} } urlPattern配置 Servlet要想被访问必须配置其访问路径(urlPattern)  一个Servlet可以配置多个urlPattern WebServLet(urlPatterns {/demo1, /demo2}) urlPattern配置规则精确匹配、目录匹配、扩展名匹配、任意匹配 精确匹配 配置路径WebServle(/user/aaa) 访问路径localhost:8080/study/user/aaa 目录匹配当与精确匹配相同时优先精确匹配 配置路径WebServle(/user/*) 访问路径localhost:8080/study/user/aaa localhost:8080/study/user/bbb 扩展名匹配路径不能以 / 开头 配置路径WebServle(*.txt) 访问路径localhost:8080/study/user/aaa.txt localhost:8080/study/user/bbb.txt 任意匹配/* 优先级高于 / 配置路径WebServle(/)   WebServle(/*) 访问路径localhost:8080/study/user/aaa localhost:8080/study/user/bbb / 和 /* 区别: 当我们的项目中的Servlet配置了/ 会覆盖掉tomcat中的DefaultServlet当其他的url-pattern都匹配不上时都会走这个Servlet 当我们的项目中配置了 /*意味着匹配任意访问路径 优先级精确路径 目录路径 扩展名路径 /* / XML配置方式 Servlet从3.0版本后开始支持使用注解配置3.0版本前只支持XML配置文件的配置方式 步骤1. 编写Servlet类 2.在web.xml中配置该Servlet !--配置全类名-- servLetservlet-namestudy/servLet-nameservlet-classcom.GLATY.web.servLet.StudyServlet/servLet-class /servlet!--Servlet访问路径-- servLet -mappingservLet-namestudy/servLet-nameurL-pattern/study/url-pattern /servLet-mapping Request 获取请求数据 继承体系 Tomcat需要解析请求数据封装为request对象并且创建request对象传递到service方法中 使用request对象查阅JavaEE API文档的HttpServletRequest接口 获取请求数据 请求数据分为3部分请求行、请求头、请求体 请求行 GET/request-demg/req1?usernamezhangsan HTTP/1.1 方法介绍String getMethod()获取请求方式GETString getContextPath()获取虚拟目录(项目访问路径)/request-demoStringBuffer getRequestURL()获取URL(统一资源定位符)http://localhost:8080/request-demo/req1String getRequestURI()获取URl(统以资源标识符) /request-demo/req1String getQueryString()获取请求参数(GET方式)username zhangsanpassword123 Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取请求行数据System.out.println(req.getMethod());System.out.println(req.getContextPath());System.out.println(req.getRequestURL());System.out.println(req.getRequestURI());System.out.println(req.getQueryString()); } 请求头 User-Agent: Mozilla/5.0 Chrome/91.0.4472.106 方法介绍String getHeader(String name)根据请求头名称获取值 Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取请求头数据user-agent浏览器的版本信息System.out.println(req.getHeader(user-agent)); } 请求体 usernamesuperbabypassword123 方法介绍ServletInputStream getInputStream()获取字节输入流BufferedReader getReader()获取字符输入流 Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取post请求体//获取流BufferedReader br req.getReader();//读取数据System.out.println(br.readLine()); } 使用通用方式获取请求参数 方法介绍MapString, String[ ] getParameterMap()获取所有参数Map集合String[ ] getParameterValues(String niame)根据名称获取参数值(数组)String getParameter(String name)根据名称获取参数值(单个值) 这样写代码时如果通过get和post要进行的操作一样可以减少重复的代码(如下) WebServlet(/pro3) public class StudyServlet3 extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {MapString, String[] map req.getParameterMap();for (String temp : map.keySet()) {String[] out map.get(temp);for (String out0 : out) {System.out.print(out0 );}}}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req,resp);} } 请求参数中文乱码处理 请求参数如果存在中文数据则会乱码。原因是因为tomcat进行URL解码时用的是字符集ISO-8859-1 如果是post只需要在获取数据前设置字符输入流的编码为UTF-8即可字符输入流的编码默认为。 方法介绍setCharacterEncoding() ;设置字符输入流的编码 req.setCharacterEncoding(UTF-8); 如果是get可以先将数据转换成字节数据然后再转为字符串即可(该方法也适用于post) byte[] bys out0.getBytes(StandardCharsets.ISO_8859_1); //StandardCharsets.ISO_8859_1 也课写为ISO-8859-1 String str new String(bys, StandardCharsets.UTF_8); Tomcat8.0之后已经将GET请求乱码问题解决设置默认的解码方式为UTF-8  请求转发 请求转发(forward)一种在服务器内部的资源跳转方式 实现方式 req.getRequestDispatcher(资源B路径 ).forward(req, resp); 请求转发资源间共享数据使用Request对象 方法介绍void setAttribute(String name, Object o)存储数据到request域中Object getAttribute(String name)根据key获取值void removeAttribute(String name)根据key删除该键值对 请求转发特点: 浏览器地址栏路径不发生变化只能转发到当前服务器的内部资源一次请求 可以在转发的资源间使用request共享数据 Response 设置响应数据 设置相应数据功能介绍 响应数据分为3部分: 1.响应行HTTP/1.1 200 OK 方法介绍void setStatus(int sc)设置响应状态码 2. 响应头Content-Type: text/html 方法介绍void setHeader(String name, String value)设置响应头键值对 3. 响应体htmlheadheadbody/body/html 方法介绍PrintWriter getWriter()获取字符输出流ServletOutputStream getOutputStream()获取字节输出流 重定向 重定向(Redirect)一种资源跳转方式 实现方式先设置相应状态码302然后设置响应头location resp. setStatus (302); resp. setHeader( location,另一个资源的路径); resp.setStatus(302); resp.setHeader(location, /studyServlet/study); 简化方式 resp. sendRedirect(另一个资源的路径); resp.sendRedirect(/studyServlet/study); 重定向特点 浏览器地址栏路径发生变化可以重定向到任意位置的资源(服务器内部、外部均可)两次请求不能在多个资源使用request共享数据 路径问题 浏览器使用需要加虚拟目录(项目访问路径) 服务端使用不需要加虚拟目录 动态获取虚拟目录 String context req.getContextPath(); String context req.getContextPath(); resp.sendRedirect(context /study); 响应字符数据 1.通过Response对象获取字符输出流 PrintWriter writer resp.getWriter(); 2.写数据 writer.write(内容); resp.setHeader(content-type, text/html);//告诉浏览器这是HTML文本默认是纯文本 PrintWriter writer resp.getWriter(); writer.write(h1abc/h1); 写数据默认用的是ISO-8859-1而不是UTF-8如果要输入汉语需要更换格式 resp.setContentType(text/html;charsetutf-8);//告诉浏览器这是HTML文本,并设置使用UTF-8字符集写数据 PrintWriter writer resp.getWriter(); writer.write(h1你好/h1); 响应字节数据 1.通过Response对象获取字符输出流 ServletOutputStream outputStream resp.getOutputStream(); 2.写数据 outputStream.write(字节数据); IOUtils工具类使用 1.导入坐标 dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.9.0/version /dependency 2.使用 IOUtils.copy(输入流, 输出流); FileInputStream fis new FileInputStream(src/main/webapp/a.jpg); ServletOutputStream os resp.getOutputStream(); IOUtils.copy(fis, os); //导包时要导apache的 JSP 概念Java Server Pages, Java服务端页面 一种动态的网页技术其中既可以定义HTML、JS、CSS等静态内容还可以定义Java代码的动态内容 JSP HTMLJava JSP的作用简化开发避免了在Servlet中直接输出HTML标签 快速入门 导坐标 dependencygroupIdjavax.servlet.jsp/groupIdartifactIdjsp-api/artifactIdversion2.2/versionscopeprovided/scope /dependency 建文件 在webapp目录下创建jsp文件 写标签代码 bodyh1Hello/h1% System.out.println(^_^);% /body 原理 JSP本质上是一个Servlet4 JSP在被访问时由JSP容器(Tomcat)将其转换为Java文件(Servlet)在由JSP容器(Tomcat)将其编译最终对外提供服务的其实就是这个字节码文件 脚本 JSP脚本用于在JSP页面内定义Java代码 JSP脚本分类: %...%内容会直接放到_jspService()方法之中%...%内容会放到out.print()中 作为out.print()的参数%!...%内容会放到_jspService(方法之外被类直接包含 缺点 由于JSP页面内既可以定义HTML标签又可以定义Java代码造成了以下问题 书写麻烦特别是复杂的页面阅读麻烦复杂度高运行需要依赖于各种环境, JRE, JSP容器JavaEE...占内存和磁盘JSP会自动生成java和.class文件占磁盘运行的是.class文件占内存调试困难出错后需要找到自动生成的.java文件进行调试不利于团队协作前端人员不会Java后端人员不精HTML... EL表达式 Expression Language表达式语言用于简化JSP页面内的Java代码 主要功能:获取数据 语法: ${expression} ${things} 获取域中存储的key为brands的数据 先写Java代码  WebServlet(/pro4) public class StudyServlet4 extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//准备数据ListThing things new ArrayList();things.add(new Thing(name1, 1));things.add(new Thing(name2, 2));things.add(new Thing(name3, 3));//存储到request域中req.setAttribute(things, things);//转发到jsp文件中req.getRequestDispatcher(study.jsp);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req, resp);} } JavaWeb中的四大域对象: page当前页面有效request当前请求有效session当前会话有效application当前应用有效 el表达式获取数据会依次从这4个域中寻找直到找到为止 JSTL标签 JSP标准标签库(Jsp Standarded Tag Library) 使用标签取代JSP页面上的Java代码 快速入门 % page contentTypetext/html;charsetUTF-8 languagejava % % taglib prefixc urihttp://java.sun.com/jstl/core% %--prefix后的属性可以任意填写一般写c--% html headtitleTitle/title /head body /body /html if标签 用来完成逻辑判断替换Java  if else c:if testtrue %--如果test的值为true则会显示标签内的内容如果为false则不显示--%h1true/h1 /c:if forEach标签 forEach标签 forEach相当于for循环 items被遍历的容器 var遍历产生的临时变量 varStatus遍历状态对象index从0开始count从1开始 begin开始数 end结束数 step步长 c:forEach items${things} varThingtr aligncentertd${Thing.id}/tdtd${Thing.name}/td/tr /c:forEachc:forEach begin0 end2 step1 vari${i} /c:forEach MVC模式和三层架构 MVC MVC是一种分层开发的模式 其中 MModel, 业务模型处理业务 VView,视图界面展示 CController控制器处理请求调用模型和视图 MVC好处 职责单一互不影响 有利于分工协作 有利于组件重用 三层架构 数据访问层对数据库的CRUD基本操作 业务逻辑层对业务逻辑进行封装组合数据访问层层中基本功能形成复杂的业务逻辑功能 表现层接收请求封装数据调用业务逻辑层响应数据
http://www.zqtcl.cn/news/28568/

相关文章:

  • 小程序 网站 开发hishop官网
  • 网站页面引导怎么做湘潭网站建设选择磐石网络
  • 赶集网站建设多少钱wordpress自定义内容管理
  • 哈尔滨网站建设招聘宁夏网站建设中
  • 建设网站都需要下载那些软件做宾馆网站
  • 自己做网站要固定ip万网查询本地公网ip地址
  • 自己制作一个网站北京名片设计制作
  • 网站建设与管理实训心得市场监督管理局管什么
  • wordpress建站插件网站域名的作用是什么意思
  • 网站的域名都有哪些问题绵阳科技网站建设
  • 网站建设人员岗位设置青岛北方现货交易平台代理
  • 小说网站虚拟主机wordpress虚拟主机加速
  • 注册网站大全seozhun
  • 渭南网站建设与维护专业制作公众号公司
  • 动态asp.net网站开发建设工程询价网站有哪些
  • 做网站用虚拟主机好不好wordpress wpenqueuescript
  • 公司做网站设计的wordpress裁剪缩略图
  • 网站 盈利模式怎么检查网站死链
  • 网站建设工单系统制作公司网站的作用
  • 网站建设流程和方法wordpress直播网站主题
  • 网站建设是什么专业大连门户网站开发
  • 网站静态和动态那个好Divi wordpress 下载
  • 网站建设 海拉尔网站建设明细价单
  • 网站没有备案可以做seo优化吗广西建设厅办事大厅网站
  • 南京网站销售seo研究中心怎么了
  • 单页网站建设服务好的商家百度推广登录首页网址
  • 酒网站建设wordpress 版权信息
  • 网上有做口译的网站么wordpress模板带数据库
  • 无锡做网站6百度站长链接提交
  • 怎么自己做五合一网站网站权重高 做别的关键词