一只不甘沦为码农的程序猿

J2EE基础知识

2019-03-24  本文已影响0人  zorkelvll
image

ZERO

    持续更新 请关注:https://zorkelvll.cn/blogs/zorkelvll/articles/2018/12/08/1544280958346

背景

    本文主要是记录在学习J2EE过程中的一些知识点备忘!

20181213

1、JSP工作原理

JSP是一种Servlet,且不同于HttpServlet;

HttpServlet是先由源代码编译为class文件后,在部署到服务器下,是先编译后部署,而JSP则是先部署后编译;

JSP会在客户端第一次请求JSP文件时被编译为HttpJspPage类(接口Servlet的一个子类),该类会被服务器临时存放在服务器工作目录里面!

2、JSP内置对象及其作用

3、Request对象的方法

4、request.getAttribute() VS request.getParameter()

从获取方向来看:getAttribute获取对象容器中的数据值,getParameter获取POST/GET传递的参数值

从用途来看:

5、include指令 VS include行为

6、JSP四种作用域

7、如何实现JSP OR Servlet的单线程模式

=>单线程工作模式,会导致每个请求创建一个Servlet实例!

8、实现会话跟踪的技术

9、Cookie VS Session

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;

Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式

20181209

1、Forward转发 VS Redirect重定向

2、Refresh刷新

自动刷新不仅可以实现一段时间之后自动跳转到另一个页面,也还可以实现一段时间之后自动刷新本页面。Servlet中通过HttpServletResponse对象设置Header属性实现自动刷新。

3、Servlet & 线程安全

Servlet不是线程安全的,多线程并发的读写会导致数据不同步的问题。=>解决办法:尽量不要定义name属性,而是要把name变量分别定义在doGet和doPost方法内;使用synchronized(name){}语句块可以解决问题,但是会造成线程的等待!注意:多线程并发的读写Servlet类属性会导致数据不同步,但是如果只是并发地读取属性而不写入,则不存在数据不同步的问题,因此Servlet中的只读属性是定义为final类型的

4、JSP & Servlet

Servlet是一种特殊的Java程序,运行于服务器的JVM中,能够依靠服务器的支持向浏览器提供显示内容;JSP本质上是Servlet的一种简易形式,会被服务器处理成一个类似于Servlet的Java程序,可以简化页面内容的生成!

二者的区别在于,Servlet的应用逻辑是在Java文件中的并且完全从表示层中的HTML分离开来,而JSP则是Java和HTML组合成一个扩展名为jsp的文件(可以粗浅地认为:Servlet是在java中写HTML,JSP是在HTML中写Java代码)!JSP侧重于视图,Servlet更侧重于控制逻辑!在MVC架构模式中,JSP适合充当视图view,而Servlet适合充当控制器controller

20181208

1、Servlet

    JavaWeb中,Servlet主要负责接收用户请求HttpServletRequest,在doGet(),doPost()中做相应的处理,并将回应HttpServletResponse反馈给用户。Servlet可以设置初始化参数,供Servlet内部使用,一个Servlet类只会有一个实例,在它初始化时调用init()方法,销毁时调用destroy()方法。Servlet需要在web.xml中配置,一个Servlet可以设置多个URL访问,Servlet不是线程安全的(使用类变量需要谨慎)

2、Servlet VS CGI

(1)CGI缺点:

(2)Servlet优点:

(3)补充:Servlet技术是Sun公司于1996年发布与CGI进行竞争的,是一个特殊的java程序,一个基于java的web应用,通常包含一个或多个Servlet类,Servlet不能够自行创建并执行,必须是在Servlet容器中运行的,容器将用户的请求传递给Servlet程序并将Servlet的响应回传给用户。通常一个Servlet会关联一个或多个JSP页面,以前CGI经常因为性能开销上的问题被诟病,其实Fast CGI早就已经解决了CGI效率上的问题,所以也不要心口开销地诟病CGI,事实上很多熟悉的网站都使用了CGI技术

3、Servlet方法 && Servlet生命周期

(1)Servlet接口中定义了5个方法,且前3个与其生命周期相关:

(2)生命周期:web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其init()方法进行Servlet的初始化;请求到达时调用Servlet的service()方法,service()方法会根据需要调用与请求对应doGet()或doPost()等方法;当服务器关闭或项目被卸载时服务器会将Servlet销毁,此时会调用Servlet的destroy()方法。init和destroy方法只会执行一次,service方法客户端每次请求Servlet都会执行。

4、get请求 VS post请求

说明:本JavaGuide系列博客为来源于https://github.com/Snailclimb/JavaGuide
等学习网站或项目中的知识点,均为自己手打键盘系列且内容会根据继续学习情况而不断地调整和完善!

上一篇 下一篇

猜你喜欢

热点阅读