Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)

文章结构

1.相关web结构的理解

2.安装配置步骤关问题

3.相关核心文件的安装以及原理说明

4.原理的大概说明

5.我遇到的问题及处理方法

1.相关web结构的理解

首先要理解servle是什么,必须大体理解整个web应用的体系流程(基于B/S架构)。
1.浏览器-服务器-数据库(三层大体结构)
2、浏览器向服务器建立连接请求后,数据在应用层利用http协议打包成数据包,发送到web服务器上(在我们这里,后期简单指Tomcat),在web上拆包以后发现是一个servlet请求,他会对应寻找相关动态请求的处理类,也就是我们java代码继承HttpServlet的servlet里面去处理,后期就是balaba,可能涉及到数据库的数据的回传等等,再回到这个类里面处理,再交给前端。
3.整体来说servlet就是对web动态资源的处理,经过我们重写java提供的Httpservlet部署在Tomcat服务器上的应用程序。
这里有前辈详细总结

https://blog.csdn.net/zj12352123/article/details/80576748

2.安装配置步骤

Idea下建立Maven项目
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第1张图片暂时不用管他,直接下一步
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第2张图片填上团伙和项目名字~~
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第3张图片然后我们看到以下的目录结构
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第4张图片
简单说下这个目录结构及相关文件的理解
1.pom.xml文件主要负责对整个项目用到的jar包的管理,这也是为什么我们要使用maven来实现我们的程序(JAVASE也可以直接安装tomcat。。)后期好管理jar包,避免jar包冲突的麻烦事。
2.java目录下我们就是存放源代码,resource目录下是我们编译过的class文件。test测试使用。
3.到目前位置我们还没见到web的影子。再加web框架支持。
加入web框架
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第5张图片Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第6张图片多出的文件目录结构
wen-inf放web核心配置文件-web.xml(涉及到后期,数据从浏览器过来以后对数据分发处理问题),jsp的首页我们先删除
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第7张图片

然后我在java目录下建立一个包,后期存放我们写的servlet文件
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第8张图片
加入Tomcat
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第9张图片Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第10张图片
记得在Deployment下把我们的项目加进来(我理解就是一个部署过程,不然数据过来没办法进行处理)
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第11张图片这块记得把这个名字改的简单写(后面涉及到我们在浏览器中的路径复杂度)
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第12张图片

浏览器的默认选择就不用说了 记住下面的路径(到时候会弹出来,不记得也行) 端口前期尽量不要冲突(后期遇到问题就在这个点,先看一下就得了)

Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第13张图片jar包的导入,jar包不导入我们没法重写servlet类
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第14张图片
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第15张图片
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第16张图片jar包这块我们直接使用tomcat里面的servlet-api.jar
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第17张图片Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第18张图片

3.相关核心文件的安装以及原理说明

4.原理的大概说明

到此为止,说一下这个基础项目的关键文件
1.pom.xml
这里加入jar包管理导入的相关代码,此次我们才用本地jar包直接导入
相关jar包一共有三种,本地仓库,中央仓库(导入代码就写在这个里面),私服(公司团伙)仓库
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第19张图片最后创建一个html文件,其中包含一个form,而且form发送的对象我们暂时定义为form(自定义的名字,后期被web.xml文件规则捕捉,所以一定要记住这个acction的属性)
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第20张图片

2.web.xml
这里要讲一下原理:数据过来以后
先走这个servlet-mapping这个大标签:其中pattern可以理解为拦截器,我们在上文中说的form表格的action属性中的form就到这里被拦截,拦截以后,找到mapping便签中的name属性。
通过这个name属性,我们在走到servlet这个大标签里的name标签,最后再找到相关处理的servlet也就是我们部署在服务器上的java重写类。
注意事项
这个类名:一定记得是包名:com.csdn+类名,不然找不到。
拦截器这块一定要加上/,我们提交这个form表单,再加上action这个属性,那么url会变成这样:/form?name=xxx(get方式的),我们这里没标注方式默认是post发送,其实也有这样的一个信息
Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第21张图片

我们可以想一下平时上网的路径,他就是根据这个路径拦截的。
这张图片就是我们提交表格后,如果拦截器没有正确拦截请求,触发的错误,下午是405,出现在form表单没有默认指示发送方式,但是晚上IE过了。。也就是说如果出现405去改一下form的发送方式,改成get直观一些。

一般的调用的请求返回404 大部分是URL 不正确。 一般的调用的请求返回405 大部分是
传输的方式不正确,把get改为post或者post改成get。

Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第22张图片

Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第23张图片

3.后期在com.csdn包下的Myservlet类
没啥说的就是继承,重写下方法
遇到的问题:service service service 后面没有s!!

Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第24张图片

5.我遇到的问题及处理方法

我遇到的很多小的人为性错误已经在前面说过了,代码一定要严谨。
后期主要问题就是,端口冲突,第一个项目创建的时候默认用的8080端口,结果这个端口一大堆程序占用,这块先用下DOS命令去查询一下,pid

netstat  -aon|findstr "8080" 

得到pid以后开始杀死进程

taskkill  /pid  pidnum  /f

但是悲催的是,杀到最后0号pid是系统进程,没法杀死所以直接换tomcat的8080端口为8089
我们是在tomcat文件下的conf文件夹下配置,配置完以后,再添加tomcat文件默认端口就是8089,不用进行修改了。Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第25张图片 用记事本打开后,找到第一个8080数字,改成8089就ok了

Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)_第26张图片

你可能感兴趣的:(jsp,servlet,maven,servlet,java)