java web知识查漏补缺01-servlet相关知识

本博客的相关学习视频来源为https://www.bilibili.com/video/BV1Jt411Q7qs,b站ID:黎曼的猜想
(侵删)
Servlet
(视频P175-212)共37节
实现Servlet有三种方式:
    实现javax.servlet.Servlet接口;
    继承javax.servlet.GenericServlet类; 
    继承javax.senvlet.http.HttpServlet类;
通常我们会去继承HttpServlet类来完成我们的Servlet ,但学习Senvlet还要从javax.serxlet.servlet接口开始学习。
 
 
javax.servlet.Servlet接口:
生命周期方法:
void init(ServletConfig):出生之后;(执行一次)
void service(SenvletReguest request, SenvletResponseresponse):每次处理请求时都会被调用;
void destroy():临死之前; (执行一次)
特性:
单例,一个类只有一个对象;当然可能存在多个Servlet类! 
线程不安全的,所以它的效率是高的!
Senvlet类由我们来写,但对象由服务器来创建,并且由服务器来调用相应的方法。
 
 
javax.servlet.GenericServlet类:
了解有这个抽象类就好
 
 
javax.senvlet.http.HttpServlet:
 
一般只要实现doGet和doPost方法,完成前端提交表单的功能
java反射
 
 
 
ServletContext (重要)
一个项目只有一个ServletContext.对象! 
我们可以在N多个Servlet中来获取这个唯一的对象, 使用它可以给多个Servlet传递数据!
与天地同寿!!!这个对象在Tomcat启动时就创建,在Tomcat关闭时才会死去!
 
所有域对象都有存取数据的功能,因为域对象内部有- -个Map, 用来存储数据,下面是
ServletContext对象用来操作数据的方法:。
●void setAttribute(String name, Object value):用来存储一一个对象 ,也可以称之为存储一-个域属
性,例如: senvletContext,setribute("xx", "XXX"),在ServletContext中保存了-个域属性,
域属性名称为xxx ,域属性的值为xx.请注意,如果多次调用该方法,并且使用相同的name,
那么会覆盖上一次的值,这一特性与Map相同;
●Object getAttribute(String name):用来获取ServletContext中的数据,当前在获取之前需要先
去存储才行,例如: String value = (stringservletContext.sctriut("x");获取名为xxx的
域属性; 
●void removeAttribute(String name):用来移除ServletContext中的域属性,如果参数name指
定的域属性不存在,那么本方法什么都不做;。
●Enumeration getAttributeNames():获取所有域属性的名称;
 
 
response.
浏览器会识别响应携带的响应头的内容,并返回信息
常用的是setHeader(String name,String value)
第一种是设置重定向响应头,用来跳转另一个servlet方法
 
 
 
 
第二种是设置延迟刷新响应头:
PrintWriter writer = response.getWriter();
writer.print("欢迎登录,3秒后跳转");
response.setHeader("Refresh" , "3:URL=/项目名/servlet名");
 
响应体
 
 
 
 
 
 
request:
 
一、请求客户端的IP地址、请求方式和操作系统内核等
 
 
 
 
二、简单的防盗链
request.getHeader("Referer")
 
 
三、获取路径中的各种信息
 
 
 
 
 
四、获取超链接参数和表单参数:(重点)
 
 
 
五、请求转发和请求包含
 
 
 
 
六、请求参数和域属性的区别
 
 
 
 
7、乱码问题
 
 
 
8、URL编码适用于把传递链接中的中文参数,使用url编码
posted @ 2020-06-25 00:23  Tsui98'  阅读(178)  评论(0编辑  收藏  举报