-
概念
狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。Servlet 运行于支持 Java 的应用服务器中。从原理上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议的 Web 服务器。 -
特点
运行在支持 java 的应用服务器上Servlet 的实现遵循了服务器能够识别的规则,也就是服务器会自动的根据请求调用对应的 servlet 进行请求处理。简单方便,可移植性强。 -
使用
1、 创建普通的 java 类并继承 HttpServlet
2、 覆写 service 方法
3、 在 service 方法中书写逻辑代码即可
4、 在 webRoot 下的 WEB-INF 文件夹下的 web.xml
文件中配置 servlet
运行流程:
url:http://localhost:8080/project/my2
组成:服务器地址:端口号/虚拟项目名 /servlet 的别名
URI:虚拟项目名 /servlet 的别名
浏览器发送请求到服务器,服务器根据请求 URL 地址中的 URI 信息在 webapps 目录下找到对应的项目文件夹,然后在 web.xml 中检索对应的 servlet,找到后调用并执行Servlet。
————————————————————————————
Service方法、doGet方法和doPost方法的区别
- Service方法
可以处理get/post方式的请求,如果Servlet中有Service方法,会优先调用Service方法对请求进行处理。 - doGet方法
处理get方式的请求
3.doPost方法
处理post方式的请求
注意: 如果在覆写的service方法中调用了父类的service方法(super.service(arg0,arg1)),则service方法处理完后,会再次根据请求方式响应的doGet和doPost方法执行。所以,一般情况下我们是不在覆写的service中调用父类的service方法,避免出现405错误
—————————————————————————————————
Servlet常见错误:
- 404错误:资源未找到
出现原因1:在请求地址中的servlet的别名书写错误。
出现原因2:虚拟项目名称拼写错误
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/user</url-pattern>//
</servlet-mapping>
-
500错误:
错误原因1:在web.xml中校验servlet类的全限定路径是否拼写错误
错误原因2:因为service方法体的代码执行错误导致。
解决——根据错误提示对service方法体中的代码进行错误更改。 -
405错误:请求方式不支持
原因:请求方式和servlet中的方法不匹配所造成的。
解决:尽量使用service方法进行请求处理,并且不要在service方法中调用父类的service。