Servlet学习笔记(内含404解决方法)
什么是ServletServlet是java Web开发者的及时,与平台无关的服务器组件,它是运行在Servlet容器(Web) 应用服务器(Tomcat)负责与客户端进行通信Servlet功能1、 创建并返回基于客户请求的动态HTML页面2、 与数据库进行通信如何使用ServletServlet本身是一个接口,自定义一个类,并实现Servlet接口,这个类就具备了接受客户端请求及作出响应的功能在
目录
什么是Servlet
Servlet是java Web开发者的基础,与平台无关的服务器组件,它是运行在Servlet容器(Web) 应用服务器(Tomcat)负责与客户端进行通信
Servlet功能
1、 创建并返回基于客户请求的动态HTML页面
2、 与数据库进行通信
如何使用Servlet
Servlet本身是一组接口,自定义一个类,并实现Servlet接口,这个类就具备了接受客户端请求及作出响应的功能
在src文件下新建一个包
在这个包下再新建一个Servlet类
继承Servlet接口,继承完是这样的
如果没有servlet类因为External Library中没有引入Tomcat,重新创建一个项目即可
默认访问地址
可以看到这里网页并非我们文件的绝对地址,其是通过打包现有文件,在out文件中访问的
要想访问Servlet文件,需要设置一个地址映射
在此处写入
url-pattern是客户端请求的地址,其映射到MyServlet,而MyServlet又与文件中的类相映射
所以可以通过 http://localhost:8080/myservlet
来访问MyServlet这个类
如果访问出现404
第一次访问大概率会出现
把这两处的红色尾缀去掉
即可
Servlet应答
如果按照上述程序进行访问是无法有页面内容显示的
可以在MyServlet中添加代码
其在终端就能显示出是否侦测到请求
前端也是有语句显示
如果语句含有中文会出现问号,在回复前设置内容格式
即可实现中文显示
前端传递参数
http://localhost:8080/myservlet?name=maker
前端在网址后?+“参数名称=内容”可以对Servlet传递参数
Servlet用ServletRequest.getParameter()获取参数
基于注解方式配置Servlet
以上是基于XML配置Servlet(比较麻烦),以下是基于注解
在Servlet类中添加如下注解即可
就能轻松访问了
Servlet生命周期
- 当浏览器访问servlet时,Tomcat会查询当前Servlet实例化对象是否存在,如果不存在,则通过反射机制动态创建对象;如果存在则直接执行第3步
- 调用init方法完成初始化操作
- 调用service方法完成业务逻辑操作
- 关闭tomcat时,会调用destory方法,释放当前对象所占用的资源
生命周期的方法:无参构造函数、init、service、destory
- 无参构造函数只调用一次、创建对象
- init只调用一次,初始化对象
- service调用N次,执行业务方法
- destory只调用1次,释放对象
先创建 再初始化 后执行业务功能 再次刷新也是执行业务功能(因为已经存在了对象)
最后释放对象
ServletConfig
这是一个接口,用于描述 Servlet 的信息
getServletName()
返回Servlet的名称(带包名的全类名)
getInitParameter(String key)
返回初始化的信息(web.XML中配置的内容,很少用)
getInitParameterNames()
返回所有的initParameter的name值,以便用作遍历初始化参数
getServletContext()
返回ServletContext对象,是Servlet上下文,整个Servlet的管理者
获取ServletContext对象后,可以调用以下方法
ServletConfig和ServletContext区别
ServletConfig作用于某个Servlet实例,每个Servlet都有对应的ServletConfig,
ServletContext作用于整个Web应用,一个Web应用只有一个ServletContext
Servlet层级结构
Servlet→GenericServlet→HttpServlet
回顾上面Servlet接口诸多方法中,只有service是真正有用的,现有5个方法而只有一个有用,这就很浪费了,为了减少代码冗余 可以考虑继承HttpServlet
GenericServlet实现Servlet接口,同时为子类屏蔽了很多不常用的方法,子类只需要重写service方法即可
HttpServlet继承GenericServlet,根据其你去类型竞选分发出来,GET进入doGet方法,post进入doPost方法
实际使用时继承HTTPServlet即可
HTTP请求有很多类型,通常有4种
GET 读取
POST 保存
PUT 修改
DELETE 删除
更多推荐
所有评论(0)