Servlet的两种部署方法

Servlet是实现动态页面的技术,是tomcat给Java提供的原生的进行web开发的api

第一个Servlet程序

写一个servlet程序,部署到tomcat上,通过浏览器访问,得到hello world字符串

1.创建项目

此处要创建的是maven项目

maven:工程管理工具

作用:规范目录结构、管理依赖、构建、打包、测试

Servlet的两种部署方法_第1张图片

观察项目目录:

Servlet的两种部署方法_第2张图片

2.引入依赖

servlet对应的jar包

Servlet的两种部署方法_第3张图片

Servlet的两种部署方法_第4张图片

Servlet的两种部署方法_第5张图片


       
       
           javax.servlet
           javax.servlet-api
           3.1.0
           provided
       

   
标签是自己写上去的,这个标签是project顶级标签的子标签,如果有多个依赖,都往这个标签里依次粘贴即可。

进行到这里,另外一种创建的方式

Servlet的两种部署方法_第6张图片

同样的引入依赖的方法也会变化,这次可以直接在重新新创建的项目中找到

在里面添加我们的关于servlet-api的

Servlet的两种部署方法_第7张图片

3.创建目录结构

(1)在main目录下(和Java并列)创建一个webapp目录

(2)在webapp下创建一个WEB-INF目录

(3)在WEB-INF目录下创建web.xml文件

Servlet的两种部署方法_第8张图片

(4)给web.xml里添加内容




    Archetype Created Web Application

Servlet的两种部署方法_第9张图片

粘贴进去固定的这串代码后发现URI未识别

Servlet的两种部署方法_第10张图片

把报红部分添加进去即可

Servlet的两种部署方法_第11张图片

这段内容是固定的,直接复制粘贴即可。

4.编写代码

一个servlet类对应一个路径

这里的HelloServlet类继承HttpServlet类。在下面的代码中,只需要打出doGet方法,idea会自动生成该方法,自带的第一行super不需要,将其删掉。

Servlet的两种部署方法_第12张图片

这里的注解是Java中特殊的类,Java专门定义了一种“语法糖”,对一个类/方法,进行额外的解释说明。赋予这个类/方法额外的功能/含义。此处的@WebServlet作用是把当前的类和一个HTTP请求的路径关联起来。

5.打包程序

把程序编译好(得到一些.class文件)

在把这些.class文件打印成一个压缩包(比如jar包)

此处打包成war包,war包,war是tomcat专属的用来描述webapp的程序

一个war包就是一个webapp

Servlet的两种部署方法_第13张图片

Servlet的两种部署方法_第14张图片

打包完成后,包会生成在target目录

Servlet的两种部署方法_第15张图片

默认情况是jar包,需要调整成war包。

Servlet的两种部署方法_第16张图片

Servlet的两种部署方法_第17张图片

Servlet的两种部署方法_第18张图片

6.部署程序

把打包好的war拷贝到tomcat的webapps目录中即可

Servlet的两种部署方法_第19张图片

7.验证

打开浏览器,输入url,访问写好的代码。

Servlet的两种部署方法_第20张图片

总结:

在浏览器地址栏输入url后,浏览器就构造了一个HTTP GET请求,发送给了tomcat,tomcat根据一级路径确定具体的webapp,根据二级路径,确定了调用哪个类。GET/POST方法确定调用HelloServlet的哪个方法。

用Smart tomcat部署程序

上述过程可以简化(打包和部署程序的过程),使用idea的tomcat插件自动打包部署。

插件:对现有功能进行扩展

下载插件

Servlet的两种部署方法_第21张图片

Servlet的两种部署方法_第22张图片

配置插件

Servlet的两种部署方法_第23张图片

Servlet的两种部署方法_第24张图片

运行

Servlet的两种部署方法_第25张图片

再次点击运行,运行成功:

Servlet的两种部署方法_第26张图片

浏览器访问,结果和上面手动打包得到的结果一样。

工作原理:smart tomcat没有自动打包war包、拷贝war包、解压缩war包,而是指定了另一个特定的webapp目录,tomcat去加载这个webapp运行。(注意:smart tomcat部署直接访问到当前要访问的项目路径,所以看不见欢迎页面;手动war包的方式部署,路径是war包名)

可能出现的问题

404:找不到页面/未被允许访问页面

原因:路径写错;webapp部署错误(文件名、路径、位置错误,web.xml内容错误)

405:方法没有实现

原因:方法写错、没写;super代码没有删干净

500:代码抛出异常,日志中会显示哪行代码出错

出现空白页:代码里面没有写resp.getWriter.write()

无法访问此网站:tomcat未启动

你可能感兴趣的:(JavaEE,web,servlet,1024程序员节)