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

网络营销师资格证有什么用深圳网站关键字优化

网络营销师资格证有什么用,深圳网站关键字优化,app开发公司q1654534794下拉推广,wordpress建站双语目录 1. 创建项目 2. 引入依赖 3. 创建目录结构 3.1 在main目录下创建一个webapp目录 3.2 在webapp目录下创建一个WEB-INF目录 3.3 在WEB-INF目录下创建一个web.xml文件 3.4 在web.xml中进行代码编写 4. 编写代码 4.1 在java目录下创建类 4.2 打印hello worldhello world 4.2.1 在服务器控制台上打印 4.2.2 在客户端打印 4.2.3 在新建类的首行添加注解 5. 打包程序 6. 部署程序 7. 验证 8. 总结 8.1 使用项目模板创建项目 8.2 使用IDEA的Tomcat插件自动打包 8.3 smart tomcat的工作原理 8.4 关于context path 8.5 404页面 8.6 405页面 8.7 500页面 Servlet是一种实现动态页面的技术是一组tomcat提供的进行web开发API 注页面是分为动态页面与静态页面 静态页面页面内容始终固定不变纯HTML 动态页面页面内容随输入参数的不同而改变HTML数据构成 写一个Servlet程序部署到tomcat上通过浏览器访问得到一个hello world字符串 该程序需要7个步骤 1. 创建项目 此处需要创建一个maven程序了maven是一个“工程管理”工具其主要作用如下 ① 规范目录结构 ② 管理依赖如处理使用的第三方库③ 构建④ 打包⑤ 测试 注意查看maven的项目结构 2. 引入依赖 引入依赖即引入servlet对应的jar包 首先进入maven仓库搜索servlethttps://mvnrepository.com/ ​ 选中maven复制代码将其粘贴至pom.xml文件中 ​ 注意 1复制粘贴的代码是不包含dependencies标签的需要在project顶级标签下创建dependencies标签后将复制来的代码粘贴至该标签内 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdhello_servlet/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependencies!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependency/dependencies/project 也把这一段配置称为该依赖在maven仓库的坐标  2首次使用时字体颜色为红色说明尚未下载完成一般只要粘贴进来idea的maven就会自动刚出发依赖下载下载结束后则不再是红色字体如果长时间红色字体仍未变更可在右侧面板进行强制刷新 ​ ​ 3. 创建目录结构 虽然maven已经帮助我们自动地创建了一些目录但是还不够此处需要使用maven开发一个web程序还需要别的目录 3.1 在main目录下创建一个webapp目录 Directory ​ 3.2 在webapp目录下创建一个WEB-INF目录 方法同上Directory 3.3 在WEB-INF目录下创建一个web.xml文件 File 创建完毕后的src目录结构如下 ​ 3.4 在web.xml中进行代码编写 !DOCTYPE web-app PUBLIC-//Sun Microsystems, Inc.//DTD Web Application 2.3//ENhttp://java.sun.com/dtd/web-app_2_3.dtd web-appdisplay-nameArchetype Created Web Application/display-name /web-app 这段代码可以视为固定代码当前不需要进行调整 注1servlet程序和以往的代码相比有一个非常大的区别没有main方法 servlet程序类似没有发动机的车厢想要运行就要靠车头有带动而tomcat就是车头 将写好的servlet程序复制粘贴至webapps目录下就相当于是把车厢挂到车头后了。 tomcat识别其webapps目录下哪些车厢需要靠车头带动哪些不需要带动就是靠目录下的WEB-INF/web.xml 即web.xml文件的作用是让tomcat能够识别的当前代码为webapp并进行加载 2pom.xml的标红才是插件下载问题web.xml文件的标红很有可能是idea的误判判定代码是否正确的唯一方法是运行后查看结果 4. 编写代码 4.1 在java目录下创建类 此处以HelloServlet为例 ​ 注① HttpServlet类是servlet api里提供的现成的类写servlet代码一般都继承该类继承的主要目的是可以令新建的类针对HttpServelt进行功能扩展通过重写父类方法的方式实现 ② doGet方法就是一个根据请求计算响应的方法我们写的这个doGet方法不需要我们进行手动调用而是交给tomcat调用当tomcat收到get请求就会触发doGet请求 tomcat会构造好两个参数req和resp其中 req就是TCP socket中读出的字符串按照HTTP协议解析得到的对象这个对象中的属性与HTTP请求报文格式相对应是tomcat针对请求已经解析好构造好了的。 resp对象是一个空对象不是null只是new了个对象程序员的任务就是在doGet方法内部实现根据请求req计算响应respresp本质上是一个输出型参数 ③ 在新类继承HttpServlet类后输入doget并按下Tab键会自动生成一个默认格式此时在方法内部有super.doGet(req,resp)语句父类的doGet方法没有实际作用只是返回了一个错误页面故而这句需要注释掉 4.2 打印hello world 4.2.1 在服务器控制台上打印 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(hello world);} 4.2.2 在客户端打印 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().write(hello world);} 注1此处的resp.getWriter会获取到一个writer对象此处的writer对象是从属于resp对象的此时进行的write操作其实是在往resp的body部分进行写入等resp对象整个构造好了tomcat会统一转成HTTP响应的格式再写socket 2java中分字节流与字符流两类writer属于字符流的写操作。 流对象不不一定要写入网卡或硬盘也可以写入内存缓冲区取决于代码实现的细节 4.2.3 在新建类的首行添加注解 在新建类首行增加WebServlet(/hello)注解 整体编写完毕的完整代码如下 import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; WebServlet(/hello) // 令当前的HelloServlet类继承自HttpServlet类 public class HelloServlet extends HttpServlet {Override // 重写HttpServlet类的doGet方法protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 该语句只能实现在服务器的控制台中打印System.out.println(hello world);// 在客户端实现打印resp.getWriter().write(hello world);} } 注1注解是java中的特殊类注解可以针对一个类或放阿飞进行额外的解释说明赋予这个类或方法额外的功能或含义 2此处WebServlet注解的作用是把当前的类和一个HTTP请求的路径关联起来 3之前“doGet是tomcat收到GET请求的时候就会调用”这种说法其实并不准确具体是否要调用doGet还是得看当前GET请求的路径不同的路径可以触发不同的代码即关联到不同的类上 4一个Servlet程序中可以有很多Servlet类每个Serlet类都可以关联到不同的路径对应到不同资源因此此处的多个Servlet就实现了不同的功能 5路径与Servlet之间是一一对应的 5. 打包程序 1打包程序即把程序编辑好得到一些.class文件此例中只有一个文件一个.java文件对应一个.class文件将这些.class文件打成压缩包即可; 注jar就是一种.class构成的压缩包但此处要打的是war包 ① jar包只是一个普通的java程序 ② war则是tomcat专属的用来描述webapp的程序 2借助maven直接点击即可 第一步点击右侧maven展开maven面板选中package直接双击或右键运行均可 如果出现错误则页面会显示具体的错误信息如果运行一切顺利则页面如下 第二步打包完毕后包会生成在target目录下可在左侧目录栏查看 3默认情况下maven打的是jar包此处需要打war包故而需要微调一下pom.xml 点击pom.xml在project顶级标签下增加一个packaging标签和一个build标签 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdhello_servlet/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependencies!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependency/dependencies !--以下内容至末尾project标签前均为新增内容--packagingwar/packagingbuildfinalNamehello_servlet/finalName/build/project 其中packaging标签就是描述打哪种包 build标签中嵌套一个finalName标签该标签描述的是war包的名字可不指定但默认生成的名字会较复杂 此时重新操作maven的package选项在左侧目录栏可见一个新生成的war包 注这种手动打包和手动部署的操作也体现了开发与运行分离的思想直接使用IDEA的三角符号进行运行是本地运行而不是在另一个服务器上运行 6. 部署程序 部署程序即把刚打包好的war包拷贝到tomcat的webapps目录中即可 无论tomcat是在本机还是跨服务器都是这样拷贝拷贝完毕后启动tomcat即可 注1在windows环境下如果tomcat正在运行直接拷贝tomcat也能识别但是有可能存在bug。实际开发中tomcat基本都是在linux上运行的在linux上不存在bug。 2tomcat可以自动识别war包并进行解压缩 7. 验证 启动tomcat后在浏览器中输入url注意路径的写法 访问成功后页面如图 注1在浏览器中输入url后浏览器就偶早了一个对应的HTTP GET请求发给了tomcattomcat根据第一级路径确定了具体的webapp根据第二级路径确定了调用哪个类再通过GET / POST方法确定调用HelloServlet的哪个方法doGet或doPost等等 2也可以在服务器代码处看到日志tomcat处 8. 总结 上述步骤是使用Servlet最朴素的步骤也可以通过一些操作来简化上述过程 8.1 使用项目模板创建项目 时可以使用项目模板后续则不必手动创建目录结构了 但网络限制可能会导致模板下载不完整 8.2 使用IDEA的Tomcat插件自动打包 1. 打包与部署程序可以使用IDEA的Tomcat插件把Tomcat集成到IDEA中省去手动打包与部署的过程只需点击运行即可自动打包部署 基于tomcat插件自动打包部署适用于开发阶段频繁修改代码频繁验证 手动打包手动部署适用于上线阶段发布程序 2. IDEA提供了一些API可以让程序员开发插件对IDEA的功能进行扩展 3. tomcat插件的安装方式如下 4. 首次使用smart tomcat需要配置 1点击页面右上角的Add Configuration新增一个配置 2设置tomcat所在路径 确定后可看到右上角界面新增的配置 3点击三角符号运行即可 注1IDEA社区版按照上述方式即可安装tomcat插件IDEA专业版内置了Tomcat Server插件和Smart Tomcat功能差不多但不是一个插件但Smart Tomcat使用更方便 2如果由于网络问题在IDEA中无法直接安装插件可以去IDEA官网进行下载 5. 正常情况下点击运行后IDEA就会调用tomcat来运行程序了但是当前代码启动失败 可通过cmd查看端口情况 可通过任务管理器ctrlshiftesc查看进程Pid 关闭tomcat后再通过cmd查看8080端口情况 即8080端口当前没有进程占用 此时再运行smart tomcat即可运行成功 按照原路径打开即可显示hello world 注1不要通过IDEA控制台上的地址访问页面 该链接不包含servlet path直接点击访问是404页面 8.3 smart tomcat的工作原理 1. 查看tomcat的webapps目录下并没有因为使用smart tomcat就重新生成一个war 包原目录下的war包是先前使用tomcat打包的。 smart tomcat的工作原理不是自动拷贝war包即webapps目录内不变而是通过另一种方式启动tomcat。 2. tomcat支持启动时显式指定一个特定的webapp目录相当于让tomcat加载单个webapp运行 即tomcat直接调用tomcat让tomcat加载当前项目中的webapp目录 这个过程没有打war包、拷贝、解压缩的过程。 3. 此时程序是可以正常运行但像之前一些webapps下的一些已有的内容如欢迎页面就不存在了 8.4 关于context path 访问页面时在127.0.0.1:8080/后增加的第一级路径 如果是使用tomcat即直接拷贝war包的方式部署context path就是war包名目录名 如果是smart tomcat的方式部署context path是可以进行配置的默认是项目名 8.5 404页面 布置servlet程序的过程较为繁琐任何一步出现差错都会导致404页面易错点有 1url 的 context path 缺失或不匹配 2url 的 servlet path 缺失或不匹配 3web.xml文件内容错误 4webapp没有正确部署 5目录结构以及目录名、文件名错误 8.6 405页面 405页面表示对应的HTTP方法未实现 第一种情况 比如浏览器发了GET请求但代码中没有重写doGet就会出现405页面 在当前HelloServlet.java中注释掉doGet方法后运行再输入url访问页面就会出现405页面 第二种情况 super.doGet()没有注释掉运行后再按照原url访问页面也会出现405页面 因为super.doGet方法的内部实现就是返回405页面 8.7 500页面 500页面常常是由于Servlet程序抛异常导致的出现500页面时日志会明确说明异常调用栈 比如运行以下代码 import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;WebServlet(/hello) public class HelloServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String s null;System.out.println(s.length());} } 刷新页面 注还有一些其他的出错情况如 1空白页面 如果没有写resp.getWriter().writre()方法即没有给前端返回任何东西就会出现空白页面 2无法访问此网站 没有启动tomcat按原url访问页面就会提示无法访问此网站
http://www.sczhlp.com/news/161081/

相关文章:

  • 局域网内建立网站郑州发布紧急通告
  • 网站视频插件代码英雄联盟世界排名
  • 网站后台文章删了 怎么前台还有最近2019中文字幕mv免费看
  • 申请网站空间怎么做做网站会什么问题
  • 网站怎么做vga头深圳seo外包公司
  • 如何建设自己的淘宝客网站潍坊网站定制
  • 深圳好的网站建设公wordpress负载均衡
  • 群辉怎么做网站亚马逊雨林有多恐怖
  • 烟台搭建网站建设制作wordpress远程安装教程视频
  • linux增加网站冷色网站
  • wordpress微缩图seo职位是什么意思
  • 为什么词嵌入可以和位置编码相加
  • 解码红黑树
  • 10/3
  • wordpress子站外网视频网站做泥声控
  • 高端网站建设设计公司哪家好网站建设案例模板下载
  • 手机网站建站APP买个天猫店多少钱一个
  • 网站及推广做网站需要固定ip吗
  • 医院网站建设案例网站设计的主要机构有哪些?
  • ppt做会动彩字网站手机网站关键词优化
  • 天空台108网站找手工活带回家做介绍几个能进去的a站
  • 家居网站建设咨询网站空间多少钱一年
  • 甘肃网站建设企业推荐江都住房和建设局网站
  • 律师网站维护网站建设中图片是什么
  • 上海网站建设外包公司即商通网站建设推广
  • 磨床 东莞网站建设空间做网站
  • 网站建设中的背景图片模板北京 高端网站设计
  • 深圳网站建设(信科网络)网站开发方面的文献
  • 微信开发网站建设wordpress整合问答系统
  • 医院系统网站建设wordpress中英主题