开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详
大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流
作者简介:
- CSDN java领域新星创作者blog.csdn.net/bug..
- 掘金LV3用户 juejin.cn/user/bug..
- 阿里云社区专家博主,星级博主,developer.aliyun.com/bug..
- 华为云云享专家 bbs.huaweicloud.com/bug..
本章重点
- 掌握创建
Servlet项目的七步骤 - 了解
Servlet运行原理 - 熟悉使用
Servlet中的关键api(HttpServlet/HttpServletRequest/HttpServletResponse)的方法 - 熟悉用户层协议报文的设计
- 能够通过
Servlet编写http请求和响应 - 熟悉掌握在
tomcat下部署web项目
Servlet创建项目流程
创建
Servlet项目七步骤:
- 创建
Maven项目- 引入依赖(
Servletjar包导入到pom.xml)- 创建目录
src/main/webapp/WEB-INF/web.xml- 编写
servlet代码- 打包
- 部署(这里打包和部署可以通过引入
smart tomcat插件完成)- 验证
Servlet常见出错响应状态码
405Method Not Allowed 方法不匹配
我们构造的doGet就只能用get请求处理!
doPost需要通过post请求处理!
如果不匹配响应就会访问这个405状态码!
可以看到我们需要用
Post请求处理该servlet代码,而我们却直接输入url这样的方式就是直接通过get请求访问服务器!
当我们没有把调用父类下的
doGet方法注释掉时,也会返回405状态码!我们看一下源码就知道了!
这里父类的
doGet方法直接返回405!
我们怎样区分get和post请求呢?
get请求
- 直接在浏览器搜索框中输入
url - 我们
html下的<a>标签,img/linkscript标签等等! form表单指定method属性为getajax构造get请求在type设置为get
post请求
- 通过
form表单,method指定为post ajax构造post请求,type指定为post
500Internal Server Error 服务器出错
这里的500状态码对我们初学者来说是很常见的,就是我们的服务器出错,也就是我们的Servlet代码发生异常并没有处理掉!这回将异常抛到tomcat而tomcat直接将异常返回给客户端!
这里出
bug了,但是浏览器还是将响应信息返回到浏览器上了!
如果我们将上面的响应信息给去掉,就可以看到返回的错误信息在页面上,通过这个错误可以精准找到我们的bug!
服务器未启动或者端口号被占用
出现这个错误,说明是
TCP连接出现了问题!
这个错误说明我们该
Servlet类的路径没有按指定规则编写!
我们需要加上
/