javaWeb---Servlet

1.定义:Servlet是用来处理客户端请求并产生动态网页内容的java类,Servlet主要是用来处理或是存储HTML表单提交的数据,产生动态内容,在无状态的HTTP协议下管理状态信息。

2.体系结构:每一个Servlet直接或间接实现的核心接口是javax.servlet.Servlet,或者是继承 javax.servlet.GenericServlet 或者 javax.servlet.http.HTTPServlet 。最后,Servlet使用多线程可以并行的为多个请求服务。

3.applet和Servlet区别:applet是运行在客户端主机的浏览器上的客户端java程序,而Servlet是运行在web服务器上的服务端的组件。applet可以使用用户界面类,而Servlet没有用户界面,servlet是等待客户端的HTTP请求,然后为请求产生响应。

4.Servlet生命周期:对每一个客户端的请求,Servlet引擎载入Servlet,调用它的init()方法,完成Servlet的初始化,然后,Servlet对象通过为每一个请求单独调用service()方法来处理所有随后来自客户端的请求,最后,调用Servlet的destroy()方法把Servlet销毁。

5.doGet()和doPost()区别:

  • doGet():get方法会把名值追加到请求的URL后面,应为URL对字符数目有限制,进而限制了用在客户端请求的参数的数量,并且请求中参数值可见,因此,敏感信息不能用这种方法传递。
  • doPost():post方法通过把请求参数值放在请求体中克服Get方法的限制,因此,可以发送的参数的数目无限制。最后,通过POST请求发送的敏感信息对外部客户端不可见。

6.WEB应用程序:是对Web或者应用服务器的动态扩展。一般来说,一个Web应用可以看做是一组安装在服务器URL名称空间下特定子集 的Servlet集合。

7.服务端包含(Server Side Include):一种简单的解释型脚本语言,大多数用在Web上,用servlet标签嵌入进来。常见的有把一个或多个文件包含到Web服务器的一个Web页面上,当浏览器访问页面时,Web服务器会用对应的servlet产生的文本来替换页面中的servlet标签。

8.Servlet链:是把一个Servlet的输出发送给另一个Servlet的方法。

9.转发和重定向:

  • request.getRequestDispatcher("new.jsp").forward(request, response);//转发到new.jsp
  • response.sendRedirect("new.jsp");//重定向到new.jsp
  • 转发是服务器行为,是服务器内部一个方法在Web容器中完成请求处理和转发动作,转发的路径必须是同一个Web容器下的URL,传递的是同一个request,可以包装数据,浏览器的地址栏不发生变化,浏览器只做了一次请求
  • 重定向:客户端浏览器发送http请求--》web服务器接收请求发送302状态码和对应新的location给客户端--》客户端浏览器发现是302状态码,再自动发送一个新的http请求,请求url是新的location地址--》服务端根据这个请求寻找资源发送给客户端,由于是浏览器发送请求,所以可以定位到其他Web容器,而且没有什么request传递了,是一个新的request了,客户端可以观察到地址栏的变化,客户端至少发送了两次的访问请求。

10.如何获取是哪个客户端发送的请求:ServletRequest类可以找出客户端机器的IP地址和主机名,getRemoteAddr()方法获取客户端主机的IP地址,getRemoteHost()方法获取主机名。

11.HTTP响应的结构:三部分组成

  • 状态码(Status Code):描述了相应的状态码
  • HTTP头部(HTTP Header):包含了更多关于响应的信息
  • 主体(Body):包含了响应的内容

12.Cookie:Cookie是Web服务器发送给浏览器的一块信息,浏览器在本地文件中给每个Web服务器存储cookie,以后浏览器在给特定的web服务器发请求的时候,同时会发送所有为该服务器存储的cookie。

13.Cookie和Session的区别:无论浏览器怎么设置,session都能工作,客户端可以禁用cookie,但无法禁用session;存储数据方面,session可以存储任意的java对象,而cookie只能存储String类型的对象。

14.浏览器和Servlet通信的协议:HTTP协议

15.HTTP隧道:是一种利用HTTP和HTTPS将多种网络协议封装起来进行通信的技术,可以将其他协议的请求包装成Http的请求。

16.URL编码、解码:编码就是负责将URL里面的空格和其他特殊字符串替换成对应的十六进制表示,反之就是解码。

17.JSP定义:是一种混合了静态内容和动态产生的内容的技术。

18.JSP请求处理过程:浏览器首先请求一个以.jsp扩展名结尾的页面,发起JSP请求,WEB服务器读取这个请求,使用jsp编译器把JSP页面转化成一个Servlet类。注意,只有第一次请求页面或者是jsp文件发生改变时JSP文件才会被编译,然后服务器调用servlet类,处理浏览器的请求。一旦请求结束,servlet把响应发送给客户端。

19.JSP优点:

  • jsp是动态编译成servlet的,可以很容易更新展现代码;
  • jsp页面可以被预编译;
  • jsp页面可以很容易与静态模板结合。

20.JSP指令:包含指令,页面指令,Taglib指令(自定义标签库)

21.Scriptlet:嵌入在JSP页面中的一段java代码

22.JSP声明:用来声明随后要被表达式或者scriptlet使用的变量,添加的声明要用开始和结束标签包起来

23.JSP表达式:是 Web 服务器把脚本语言表达式的值转化成一个 String 对象,插入到返回给客户端的数据流

中。表达式是在<%=和%>这两个标签之间定义的。

24.JSP隐含对象:象是页面中的一些 Java 对象,JSP 容器让这些 Java 对象可以为开发者所使用。开发者不用明确的声明就可以直接使用他们。JSP 隐含对象也叫做预定义变量。包括:application,page,request,response,session,exception,out,config,pageContext。




猜你喜欢

转载自blog.csdn.net/weixin_41762621/article/details/80959513