tomcat.nginx+JDBC.Servlet
tomcat/nginx+JDBC/Servlet1.JSP 和 servlet 有什么区别JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP最主要的不同点在于,servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 html 里分离开来,而 JSP 的情况是 Java 和 html 可以组合成一个扩展名为 JSP 的文件。J
tomcat/nginx+JDBC/Servlet
1.JSP 和 servlet 有什么区别
JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP
最主要的不同点在于,servlet 的应用逻辑是在 Java 文件中,并且完全从表示
层中的 html 里分离开来,而 JSP 的情况是 Java 和 html 可以组合成一个扩
展名为 JSP 的文件。JSP 侧重于视图,servlet 主要用于控制逻辑。
2.JSP 有哪些内置对象?作用分别是什么?
JSP 有 9 大内置对象:
request:封装客户端的请求,其中包含来自 get 或 post 请求的参数;
response:封装服务器对客户端的响应;
pageContext:通过该对象可以获取其他对象;
session:封装用户会话的对象;
application:封装服务器运行环境的对象;
out:输出服务器响应的输出流对象;
config:Web 应用的配置对象;
page:JSP 页面本身(相当于 Java 程序中的 this);
exception:封装页面抛出异常的对象。
3.JSP 的 4 种作用域
page:代表与一个页面相关的对象和属性。
request:代表与客户端发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件;需要在页面显示的临时数据可以
置于此作用域。
session:代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的 session 中。
application:代表与整个 Web 应用程序相关的对象和属性,它实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用
域。
4.session 和 cookie 有什么区别
存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。
安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。
容量和个数限制:cookie 有容量限制,每个站点下的 cookie 也有个数
限制。
存储的多样性:session 可以存储在 Redis 中、数据库中、应用程序中;
而 cookie 只能存储在浏览器中。
5.session 的工作原理
session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,
session 创建完之后,会把 session 的 id 发送给客户端,客户端再存储到浏
览器中。这样客户端每次访问服务器时,都会带着 sessionid,服务器拿到
sessionid 之后,在内存找到与之对应的 session 这样就可以正常工作了。
6.tomcat工作模式
Tomcat作为servlet容器,有三种工作模式:
1、独立的servlet容器,servlet容器是web服务器的一部分;
2、进程内的servlet容器,servlet容器是作为web服务器的插件和java容器的实现,web服务器插件在内部地址空间打开一个jvm使得java容器在内部得以运行。反应速度快但伸缩性不足;
3、进程外的servlet容器,servlet容器运行于web服务器之外的地址空间,并作为web服务器的插件和java容器实现的结合。反应时间不如进程内但伸缩性和稳定性比进程内优;
7.Tomcat部署方式
1)直接把Web项目放在webapps下,Tomcat会自动将其部署
2)在server.xml文件上配置节点,设置相关的属性即可
3)通过Catalina来进行配置:进入到conf\Catalina\localhost文件下,创建一个xml文件,该文件的名字就是站点的名字。
8.Tomcat端口号
1)找到Tomcat目录下的conf文件夹
2)进入conf文件夹里面找到server.xml文件
3)打开server.xml文件
4)在server.xml文件里面找到下列信息
port="8080"改成你想要的端口9. Nginx
Nginx ,是一个 Web 服务器和反向代理服务器用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。
主要功能如下:
1、正向、反向代理 2、负载均衡、分流 3、虚拟主机(绑定host)
优点:
跨平台、配置简单,非阻塞、高并发连接、内存消耗小、成本低廉。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EonhQx94-1629621870098)(image/image.png)]
正向代理 是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定原始服务器,然后代理向原始服务器转交请求并将获得的内容返回给客户端。代理服务器和客户端处于同一个局域网内。
比如说fanqiang。我知道我要访问谷歌,于是我就告诉代理服务器让它帮我转发。
反向代理 实际运行方式是代理服务器接受网络上的连接请求。它将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给网络上请求连接的客户端 。代理服务器和原始服务器处于同一个局域网内。
比如说我要访问taobao,对我来说不知道图片、json、css 是不是同一个服务器返回回来的,但是我不关心,是反向代理 处理的,我不知道原始服务器。
10。Nginx 和 Apache、Tomcat 之间的不同点
1、Nginx/Apache 是Web Server,而Apache Tomact是一个servlet container 2、tomcat可以对jsp进行解析,nginx和apache只是web服务器,可以简单理解为只能提供html静态文件服务。
Nginx和Apache区别:
1)Nginx轻量级,同样起web 服务,比apache占用更少的内存及资源 。
2)Nginx 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 。
3)Nginx提供负载均衡,可以做做反向代理,前端服务器
4)Nginx多进程单线程,异步非阻塞;Apache多进程同步,阻塞。
11. Nginx 有哪些负载均衡策略
Nginx 默认提供的负载均衡策略:
- 1、轮询(默认)round_robin
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
- 2、IP 哈希 ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 共享的问题。
当然,实际场景下,一般不考虑使用 ip_hash 解决 session 共享。
- 3、最少连接 least_conn
下一个请求将被分派到活动连接数量最少的服务器
- 4、权重 weight
weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下,达到合理的资源利用率。
还可以通过插件支持其他策略。
12.数据连接池的工作机制是什么? 有什么优点?
J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。
客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。
如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。
当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
当链接数量达到连接池最大值时候,池驱动程序将不再创建新连接,只能等等连接空闲以后重用已有的连接。
优点:连接少的时候可以复用
13.JDBC连接数据库的6个步骤
-
注册驱动
-
获取连接
-
创建一个Statement语句对象
-
执行SQL语句
-
处理结果集
-
关闭资源
14.数据库连接池工作原理和实现
工作原理:JAVA EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
实现方案:返回的Connection是原始Connection的代理,代理Connection的close方法,当调用close方法时,不是真正关连接,而是把它代理的Connection对象放回到连接池中,等待下一次重复利用。
15.GET和POST方法有什么区别
-
GET是一种安全方法(幂等),其中POST是非幂等方法。
-
我们可以使用GET方法发送有限的数据,并将其发送到标头请求URL中,而我们可以使用POST发送大量数据,因为它是正文的一部分。
-
GET方法是不安全的,因为数据在URL中公开,我们可以轻松为其添加书签并再次发送类似的请求,而POST是安全的,因为数据是在请求正文中发送的,因此我们无法对其添加书签。
-
GET是默认的HTTP方法,而我们需要将方法指定为POST才能使用POST方法发送请求。
-
页面中的超链接使用GET方法。
get方法: 请求对服务器没有负面影响,Form数据量小,数据的内部应在url中可见; 明文传输,安全度低。
post方法:请求的数据过程改变服务器的状态,Form数据量大,数据的内部应在url中不可见,安全度高;
16.什么是Web应用程序,它的目录结构是什么
Web应用程序是在服务器上运行的模块,用于向客户端浏览器提供静态和动态内容。 Apache Web服务器支持PHP,我们可以使用PHP创建Web应用程序。 Java通过可在Servlet容器中运行并向客户端浏览器提供动态内容的Servlet和JSP提供Web应用程序支持。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IjOi6QLW-1629621870100)(image/image_1.png)]
17.什么是servlet
Java Servlet是服务器端技术,通过提供对动态响应和数据持久性的支持来扩展Web服务器的功能。
javax.servlet和javax.servlet.http包提供用于编写我们自己的servlet的接口和类。
所有servlet必须实现javax.servlet.Servlet接口,该接口定义了servlet生命周期方法。 在实现通用服务时,我们可以扩展Java Servlet API随附的GenericServlet类。 HttpServlet类提供用于处理特定于HTTP的服务的方法,例如doGet()和doPost()
19.如何开发自己的Servlet
1.引jar包
1)构建开发环境 common包–>lib包–>servlet—>api.jar
2.开发servlet类
1)首先继承HttpServlet
2)实现 doGet() doPost()
3)定义 doGet() doPost()
3.建个web应用
4.部署
安装web容器,例如Tomcat
在Tomcat的webapps目录下新建一个文件夹作为web程序的根
在根下新建一个名为WEB-INF的文件夹,里面建立一个web.xml的文件、一个classes的文件夹、一个lib文件夹按照servlet的DTD配置web.xml文件。
把编译好的servlet的class文件复制到classes目录下lib文件存放程序所需要的jar包
20.Web应用的生命周期
Web容器启动时,初始化每个Web应用
可以创建"监听器"对象触发这些事件;
Web容器关闭时,销毁每个Web应用
21.转发和重定向的区别
转发
req.getRequestDispatchre(“path”).forward(req.res)
路径不用写项目名
一次请求和相应
可携带参数传到下一个页面
地址栏中还是原来的路径
重定向
res.sendRedirect(“path”)
路径用些项目名
两次请求
不能携带参数
地址栏为重定向后的路径
增删改操作
是用于查询操作
更多推荐
所有评论(0)