【Java EE初阶二十三】servlet的简单理解

1. 初识servlet

Servlet 是一个比较古老的编写网站的方式,早起Java 编写网站,主要使用 Servlet 的方式,后来 Java 中产生了一个Spring(一套框架),Spring 又是针对 Servlet 进行了进一步封装,从而让我们编写网站变的更简单了;Spring 是基于 Servlet 来实现的,学了 Servlet 可以更好的理解 Spring,

(Spring 里面的某些功能,仍然要通过原生的 Servlet 的方式来触发)

Servlet的主要工作:

就是让程序员写一些类,然后把这些类给加载到 Tomcat 中,后续 Tomcat 收到 HTTP 请求 (来自于浏览器),就会执行到咱们上面写的代码,从而通过这些代码,完成一定的业务逻辑.

2. 简单的Servlet程序

2.1 初识servlet小程序

动手操作,先写一个最简单的 Servlet 的 hello world 程序;

学习目标: 编写 Servlet 代码,最终在浏览器上,能够展示出 hello world

1、创建项目

此处创建的是一种新的项目的形式,称为 Maven 项目,Maven 是 Java 中的一个构建工具(帮助你编译/打包代码的工具),因为以后涉及到的项目,可能会非常复杂,尤其是可能会有一系列的依赖关系。Maven 就可以解决上述问题,帮我们把依赖管理好,同时Maven 的打包功能也非常强大,且方便集成到自动化环境中;创建maven的图解如下所示:

maven 项目在首次创建的时候,会自动的从 maven 的网站上下载一些依赖的组件,下图是maven的目录结构:

不仅仅是 Servlet 可以使用 maven, 任何一个java 程序, 都可以使用 maven 来管理.
2、引入依赖

接下来要写的程序,会使用 Servlet,,Servlet 这个 api 是 tomcat 提供的.,而不是 jdk 提供的.(第三方库,不是 jdk 自带的,需要手动安装引入.之前搞 mysql 的时候,类似于mysql jdbc driver),使用 maven 就可以非常方便的解决上述问题.

1)、打开 maven 中央仓库,找到需要的 servlet 的 jar 包

2)、借助 maven, 自动下载上述依赖!

刚才 jar 包是被下载到哪里了呢?

maven 本地仓库,maven 就会在你的机器上搞一个目录,这个目录就会保存你这边下载好的这些 jar包;如下图所示;


3、创建目录

maven 项目是普适的,不仅仅局限于 Tomcat.而 Tomcat ,对于项目的目录结构,还有一些额外的要求;

webapp代码如下:

html 复制代码
<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
    <display-name>Archetype Created Web Application</display-name>
</web-app>

4、编写代码

在java 目录中,创建类:

继承是为了重写父类的方法:

关于服务器的主要逻辑:

代码识别分析:


5、打包程序

打包程序,把咱们的写好的代码打成 war 包.(Tomcat 需要有一个 war 包在上面),maven 就可以完成打包操作.

1)、修改 pom.xml, 设置打包的类型和包名字.

java 中更通用的发布方式.任何程序都可以打成 jar.其中jar 里最要就是 .class 文件;Tomcat 专属的压缩包是.war ,这里面不光有 .class,还有一些 tomcat 要求的配置文件 (web.xml 等),以及还有前端的一些代码(html, css,js);

2)、在右侧 maven 面板中,双击 package这个按钮.

等待一段时间,如下图所示:

如果看到这个字样,说明打包成功了!如果打包失败,在控制台中也会显示一些出错原因;

1)、打包操作,依赖了一些第三方的jar 包.maven 就会自动下载.但是如果下载过程中,网络不太顺畅,就容易出错,

2)、代码里有问题 (配置文件,pom.xml)

最后打包成功后就会出现如下target目标:


6、部署程序

把 war 拷贝到 webapps 目录中即可,启动 tomcat
7、验证程序.

通过浏览器,访问 tomcat,获取到咱们代码返回的 hello world

2.2 对于servlet的优化

如果我想改代码, hello world =>hello java,但是由于重复上述的七个过程太麻烦,所以要进行优化;

我们可以借助 IDEA 的插作,把 tomcat 集成到 IDEA中,此时,就可以通过IDEA一键式的重新打包部署了;所谓插件(plugin),IDEA 这样的程序,功能已经非常强了,但是即使如此,也无法保证 IDEA 就能面面俱到。所以插件的引入主要的目的如下:

1)希望 IDEA 功能能够多多益,2)又不希望 IDEA 过于臃肿,插件这样的机制,就能完美的解决上述问题.

为了让 Tomcat 集成进来, 就需要安装插件-->Smart Tomcat

1、下载插件

2、使用插件

运行结果如下所示:

当出现如下图所示的结果是我们的tomcat启动成功了:

综上所述,有了 smart tomcat 之后,修改代码的时候只需要修改后重新点击运行 tomcat,即可;

2.3 关于servlet的异常

2.3.1 出现 404

1)、ur 路径写错了

2)、 webapp 没有正确加载

比如,web.xml的内容不对;

3)、路径的正确写法

2.3.2 出现 405

1)、 方法没有被实现.(GET 请求,但是 Servlet 却没有重写 doGet);

2)、还有一个原因,也会引起 405,就是写的代码中,没有删掉 super.doGet();

代码如下:

3)、因为相应的格式已经不是合法的http了,就会导致解析出错;

2.3.3 出现 500

服务器内部错误,你写的代码抛出异常了,在日志或者响应中会带有异常信息;

2.3.4 出现空白页

这个时候,就需要检査, 服务器是否真的返回了带有正文的响应报文,浏览器显示的内容,就是 http 响应的正文;

2.3.5 出现无法访问此网站

这个情况就需要检查 tomcat 是否是正常工作;如果 tomcat 确实正常工作了,就需要检査,ip 和 端口号是否正确

ps:本次的内容就到这里了,如果大家感兴趣的话就请一键三连哦!!!

相关推荐
johnrui23 分钟前
JUC之AQS
java·开发语言·jvm
Full Stack Developme24 分钟前
Spring 模块介绍
java·后端·spring
多敲代码防脱发38 分钟前
Spring进阶(BeanFactory与ApplicationContext)
java·数据库·spring boot·后端·spring
吴声子夜歌1 小时前
Java——反射
java·反射
JAVA面经实录9171 小时前
完整版JVM 深度学习体系(二)
java·jvm
.ZGR.1 小时前
线程池相关知识及并发统计案例实现
java·开发语言
慕言手记1 小时前
IDEA 插件常用-2026版
java·ide·spring boot·intellij-idea·idea·intellij idea
颖火虫盟主1 小时前
Hello World MCP Server 实现总结
java·前端·python
iiiiyu1 小时前
⾯向对象和集合编程题
java·大数据·开发语言·数据结构·编程语言
超級二蓋茨1 小时前
asp.net core中JwtBearerEvents中几个事件的生命周期
java·服务器·asp.net