面试知识点五:Java Web
Posted zfyang2429
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试知识点五:Java Web相关的知识,希望对你有一定的参考价值。
64.jsp 和 servlet 有什么区别?
65.jsp 有哪些内置对象?作用分别是什么?
66.说一下 jsp 的 4 种作用域?
67.session 和 cookie 有什么区别?
68.说一下 session 的工作原理?
69.如果客户端禁止 cookie 能实现 session 还能用吗?
70.spring mvc 和 struts 的区别是什么?
71.如何避免 sql 注入?
72.什么是 XSS 攻击,如何避免?
73.什么是 CSRF 攻击,如何避免?
64.jsp 和 servlet 有什么区别?
首先来看一下Servlet:Java服务器小程序(Server Applet)
事实上,Servlet不复杂,它只是一个接口,而接口的作用是什么,规范。
servlet接口定义的是一套处理网络请求的规范,所有实现servlet的类,都需要实现它那五个方法,其中最主要的是两个生命周期方法 init()和destroy(),还有一个处理请求的service(),也就是说,所有实现servlet接口的类,或者说,所有想要处理网络请求的类,都需要回答这三个问题:
- 你初始化时要做什么
- 你销毁时要做什么
- 你接受到请求时要做什么
这是Java给的一种规范!servlet是一个规范,那实现了servlet的类,就能处理请求了吗?答案是,不能。
看一下service方法的说明,该方法是被servlet container即servlet容器调用来响应请求的,比如我们最常用的Tomcat容器。
所以,servlet不直接和客户端打交道,而是通过Tomcat,Tomcat监听了端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。
/** * Defines methods that all servlets must implement. * * <p> * A servlet is a small Java program that runs within a Web server. Servlets * receive and respond to requests from Web clients, usually across HTTP, the * HyperText Transfer Protocol. */ public interface Servlet /** * Called by the servlet container to allow the servlet to respond to a * request. */ public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;
Servlet应用无法独立运行,必须运行在Servlet容器中。Tomcat 是Web应用服务器,就是一个Servlet/JSP容器。Servlet容器将用户的请求传递给Servlet应用,并将结果返回给用户。Web服务器和Web客户端间通过HTTP协议通信,因此Web服务器也叫HTTP服务器。像下图
65.jsp 有哪些内置对象?作用分别是什么?
66.说一下 jsp 的 4 种作用域?
67.session 和 cookie 有什么区别?
68.说一下 session 的工作原理?
69.如果客户端禁止 cookie 能实现 session 还能用吗?
70.spring mvc 和 struts 的区别是什么?
71.如何避免 sql 注入?
72.什么是 XSS 攻击,如何避免?
73.什么是 CSRF 攻击,如何避免?
以上是关于面试知识点五:Java Web的主要内容,如果未能解决你的问题,请参考以下文章