Servlet的两种部署方法

编程入门 行业动态 更新时间:2024-10-15 04:22:27

Servlet的<a href=https://www.elefans.com/category/jswz/34/1768716.html style=两种部署方法"/>

Servlet的两种部署方法

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

第一个Servlet程序

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

1.创建项目

此处要创建的是maven项目

maven:工程管理工具

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

观察项目目录:

2.引入依赖

servlet对应的jar包

<dependencies><!-- .servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency></dependencies>
<dependencies>标签是自己写上去的,这个标签是project顶级标签的子标签,如果有多个依赖,都往这个标签里依次粘贴即可。

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

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

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

3.创建目录结构

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

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

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

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

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"".dtd" ><web-app><display-name>Archetype Created Web Application</display-name>
</web-app>

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

把报红部分添加进去即可

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

4.编写代码

一个servlet类对应一个路径

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

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

5.打包程序

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

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

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

一个war包就是一个webapp

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

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

6.部署程序

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

7.验证

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

总结:

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

用Smart tomcat部署程序

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

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

下载插件

配置插件

运行

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

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

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

可能出现的问题

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

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

405:方法没有实现

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

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

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

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

更多推荐

Servlet的两种部署方法

本文发布于:2023-12-03 19:36:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657025.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:两种   方法   Servlet

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!