Java Servlet知识点总结

1.什么是Servlet
Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
Servlet其实就是一个遵循Servlet开发的java类,由服务器调用的,运行在服务器端。
Servlet带给我们最大的作用就是能够处理浏览器带来HTTP请求,并返回一个响应给浏览器,从而实现浏览器和服务器的交互。

2.一个Http请求是怎样流转的
Tomcat将浏览器提交的请求封装成HttpServletRequest对象,同时将输出流封装成HttpServletResponse对象。
浏览器 --网络请求--> Web容器 --> 我们自己的程序(Servlet、JSP、业务逻辑代码)--> Web容器 --网络响应-->浏览器。

3.Java Web的演变过程大概可以分为4个阶段
(1).Servlet + jdbc + jsp
(2).Spring + Struts2+ Hibernate(SSH)
(3).Spring + SpringMVC + Mybatis(SSM)
(4).微服务阶段

前两个阶段基本上可以说是历史了,当今Spring家族一统天下,是现代Java的起源
现在实际开发中很少直接使用Servlet了,但是各个框架的底层还是大量使用了Servlet,学习Servlet对后续各个框架的理解和学习都很有帮助。  

4.Servlet的生命周期
创建(加载Servlet):当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servlet的实例
初始化:当Servlet被实例化后,Tomcat会调用init()方法初始化这个对象
处理服务:当浏览器访问Servlet的时候,Servlet 会调用service()方法处理请求
销毁:当Tomcat关闭时或者检测到Servlet要从Tomcat删除的时候会自动调用destroy()方法,让该实例释放掉所占的资源。一个Servlet如果长时间不被使用的话,也会被Tomcat自动销毁。

5.常用的 ServletAPI 说明
(1).HttpServlet (Servlet 类,就是用于定义接收页面请求,然后处理业务代码的一个 servlet 的父类)
(2).HttpServletRequest ,请求,用于获得请求信息(如:路径、端口、数据等)
(3).HttpServletResponse,响应,用于输出动态页面,输出流、重定向等。
(4).ServletConfig,Servlet 初始化参数配置接口,用于获得 web.xml 的初始化参数

HttpServletRequest 常用方法:
String getContextPath()  获取上下文路径
String getHeader(String headName)  根据指定的请求头获取对应的请求头的值.
String getRequestURI()  返回当期请求的资源名称. 上下文路径/资源名
StringBuffer getRequestURL()  返回浏览器地址栏的内容
String getRemoteAddr()  返回请求服务器的客户端的IP

获取请求参数的方法:
String getParameter(String name)  根据参数名称,获取对应参数的值.
String[] getParameterValues(String name)  根据参数名称,获取该参数的多个值.
Enumeration getParameterNames()  获取所有请求参数的名字
Map getParameterMap()  返回请求参数组成的Map集合.

HttpServletResponse 常用方法:
OutputStream getOutputStream():  获取字节输出流:文件下载
Writer getWriter()  获取字符输出流:输出内容
resp.setContentType("text/html;charset=utf-8")  设置文件输出的编码格式和内容类型
resp.sendRedirect()  302重定向,临时跳转

6.使用
pom.xml加上 Servlet-api 依赖
新建一个XxxServelt 继承于 HttpServlet
resp.getWriter().println()
web.xml 增加 servlet servlet-mapping
httpServletRequest(输入) 和 httpServletResponse(输出)
重定向 Redirect,转发 forward。
Redirect 通过 httpServletResponse 下发,返回http status Code 302 和 新地址,浏览器地址栏会发生变化。2次(独立)请求。可以跳外部
forwared 通过 httpServletRequest 完成,浏览器地址不发生变化,一次请求。只能是本应用内。

7.三种作用域范围(Attitude)
Request 请求域 作用范围->单次请求(包括了forward)
Session 会话域。Cookie:session-id。
Application 应用域。重启失效。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值