文章目录
一、JavaWeb中的三大组件
1、Servlet 接收用户请求并处理最后响应的接口
2、Filter 过滤器,拦截请求
3、Listener 监听器,监听某一行为,只要用户触发这一行为就自动执行指定的代码
二、JavaWeb请求响应模型
请求包括:请求头、请求体(get没有post有)
响应包括:响应头、响应体(给服务器的数据,又叫响应正文)
三、开发Servlet的步骤
1、第一步:编写Servlet类,编写用户请求的逻辑代码
有三种编写Servlet类的方法,在开发中最常用的是第三种
- 第一种–实现Servlet接口 (生命周期)
重写所有的方法
更能够清晰的了解Servlet的生命周期
1 Servlet在第一次请求时被创建,由Tomcat创建
2 调用init()方法,又叫生命周期方法,由Tomcat调用,在Servlet创建之后,只调用一次
3 用户每请求一次Servlet,Tomcat都会调用service()方法
4 当Tomcat服务器关闭之前销毁它创建的所有对象,包含创建的Servlet,在Servlet销毁之前调用destroy()方法,
只调用一次,释放资源
- 第二种–继承javax.Servlet.Genericservlet抽象类
只需要重写service()方法
- 第三种–实现javax.Servlet.Genericservlet.HttpServlet抽象类
重写该抽象类的doGet()和doPost()方法
2、第二步:在web.xml中进行配置
补充:
这里的url-pattern类似于value,为了避免每创建一个Servlet类就得在该配置文件中配置一次,这里提供了一个更加简洁的方法
在每一个Servlet类的前面加入@WebServlet()注解
@WebServlet(name="DServlet" , urlPatterns="/DServlet")
如果URLPatterns与value相等则可以用value替换URLPatterns
@WebServlet(value="/DServlet")
如果括号内只有value属性则value可以省略
@WebServlet("/DServlet")
四、Servlet中其他对象
1、ServletConfig
对于Servlet配置,由Tomcat创建
Enumeration方法:
hasMoreElements() 判断集合中是否还存在元素
nextElement() 拿到存在的元素
方法:
2、ServletRequest
请求对象Tomcat创建
核心方法:获取请求参数
getParameter(String name) 根据请求参数的name拿到请求参数的值
3、ServletResponse
方法:(只列举一个,在api文档中还有更多)
getWriter() 得到字符响应输出流,服务器通过输出流将数据写到客户端的浏览器页面
该方法下还有print()方法可以打印html标签
里面可以写js脚本
五、前端发送请求的方式
1、from的action method决定是post还是get
2、超链接 只能是get请求
3、浏览器的地址栏输入url 只能是get
4、通过js发送ajax请求 可以是get也可以是post
请求方式分为get和post(现阶段是两种)
get请求:请求参数通过url传递,请求参数:url?k1=v1&k2=v2 不安全,只能传递字符串
post请求:请求参数通过请求体传递,安全性高 可以对数据进行加密,能够传递字符串,也能够传递文件
六、Servlet默认创建时间
第一次请求,该Servlet才创建,由于第一次请求消耗时间多一点所以叫做第一次惩罚,为了防止这次惩罚需要修改Servlet的时机,在web服务器启动的时候就创建Servlet
两种方法:
第一种:在web.xml中配置
第二种:在Servlet类最前面给定参数