javaWeb
JavaScript:
发展历史:
网景(NetScape)公司开发一个LiveScript. 网景公司与SUN公司合作 推出了一个JavaScript.
网景与微软联合 推出了一个JScript. JScript就是JavaScript克隆版本.
JavaScript核心组成:
ECMAScript:
* 语法. 变量 、语句、关键字、保留字...
BOM: Browser Object Model.
DOM: Document Object Model.
XML的解析: (*****) 程序员代码.
XML的解析技术有那些?区别是什么?
解析技术有很多.但是常用的 DOM 和 SAX。
DOM:将文档一次加载到内存 形成树形结构 . 可以很方便的做元素的增删改的操作.但是如果文档非常大 容易导致内存的移除.
SAX: 事件驱动的方式,边读边解析.如果文档很大不会导致内存溢出 但是不能做增删改的操作.
XML的约束技术有哪些?区别是什么?
* DTD和Schema.
* 区别:
* Schema本身语句是XML
* 由于是XML语法可以很容易被解析器所解析.
* 它可以做出更加严格的语义和语法约束.
* Schema支持名称空间.
为什么要在集合加上泛型?
* 因为一个对象放入集合 失去其特性.而且程序员进行类型转换的时候容易出现异常.
***** 注意:
泛型的擦除:泛型只作用于源代码阶段,当类编译成class之后 泛型就消失.
请求方式有很多 POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT、CONNECT
常用的是GET 和 POST。区别是什么?
* get:数据会显示到地址栏,有大小限制.get没有请求体
* post:数据不会显示到地址栏,没有大小限制的.post有请求体.
解释HTTP协议中针对表单get、post两种提交方式的区别,在什么时候应用get,什么时候用post
并回答你对HTTP协议中request、response的理解
状态码
200 :一切OK
302 :重定向操作
304 :查找本地缓存操作
404 :请求资源不存在
500 :服务器出错了.
Servlet的运行机制:
Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:
1、客户端发送请求至服务器端;
2、服务器将请求信息发送至Servlet;
3、Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求;
4、服务器将响应返回给客户端 ;
(面试题)Servlet的生命周期.
生命周期:从出生到死亡的过程.
Servlet的生命周期:Servlet对象被创建到Servlet对象被销毁的过程.
* Servlet接口中定义了5个方法.有与生命周期相关的方法.(到某个特殊的时期就会执行的方法.)
与生命周期相关的方法:
void init(ServletConfig config)
void service(ServletRequest req, ServletResponse res)
void destroy()
当客户端第一次访问该Servlet的时候 创建一个Servlet的实例对象.这个时候init方法会被执行.当客户端每次请求的时候
容器会创建一个新的线程执行service方法。当服务器关闭的时候Servlet对象会被销毁.destroy方法会被执行.
开发中注意的细节:
* 在GenericServlet中 扩展了一个init方法 init()没有参数
* 在初始化的时候 调用哪个 ?
init有参数的方法 底层 调用了无参数的init 以后开发中 只需要重写无参数init就OK。
* 在HTTPServlet中 doXXX方法 和 service是什么关系?
* 在service方法的内部 根据请求方式不同 调用不同的doXXX方法.如果GET请求会执行doGet方法。
如果是post方式执行doPost方法.
servlet实现过程
客户端发送请求至服务器端;
服务器将请求信息发送至Servlet
Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求
服务器将响应返回给客户端
Request乱码问题---参数带有中文.
POST方式:
request.setCharacterEncoding("UTF-8");
GET方式:
username = new String(username.getBytes("ISO-8859-1"),"utf-8");
Response输出中文乱码.
字节流
response.setHeader("Content-Type","text/html;charset=UTF-8");
"中文".getBytes("UTF-8");
字符流
response.setHeader("Content-Type","text/html;charset=UTF-8");
response.setCharactorEncoding("UTF-8");
简写:
response.setContentType("text/html;charset=UTF-8");
转发和重定向的区别?sendRedirect forward区别?
* 重定向的地址栏发生变化 转发地址栏不变.
* 重定向是两次请求 两次响应.转发是一次请求一次响应.
* 重定向可以定向到任何的网站.转发只能项目的内部.
* 重定向的路径需要加项目名/day10 转发不需要写
Cookie:
* 客户端技术.
优点:减轻服务器的压力。缺点:安全性较低.
Session:
* 服务器端技术.
优点:安全性高 缺点:服务器压力增大.
Cookie的分类:
两类:
一类:会话级别的Cookie(默认的Cookie):关闭浏览器 Cookie就销毁了.
二类:持久性Cookie(永久性Cookie):有一个有效时间.在这个时间范围内一致存在.Cookie保存在本地中一个文件中.
setMaxAge(int expiry) : int 秒. 如果setMaxAge(0); 删除持久性Cookie. 前提路径必须一致.
Session:
服务器端技术.基于Cookie.利用了Cookie回写了一个JSessionID的值.
打开一个浏览器 正常情况下 就是一个Session对象.IE8不是
cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
session的概念
session其实就是用来存储用户会话的信息。session是基于cookie的,cookie用来存储客户端的存储信息,
session则是用于存储服务器端的响应信息。一般我们都用这个来存储用户的id,当用户请求服务器时,
服务器会为该用户分配一个sessionId来代表一个session的存储空间,而这个sessionId就存放在cookie中
JSP的三大指令:page include taglib.
九个内置对象:request response session application page pageContext config out exception
四个作用范围:page request session application
JSP的内置对象:(面试:JSP中内置对象有哪些?常用方法有什么?对象代表的含义?)
内置对象:在JSP中直接可以使用的对象.
九个内置对象:
request response session application page pageContext out exception config
request :HttpServletRequest 代表客户的请求 getRemoteAddr() getParameter() setAttribute();
response:HttpServletResponse代表响应对象. getWriter() getOutputStream() setStatus();
session: HttpSession 代表一次会话. getId() setAttribute() getAttribute();
application:ServletContext 针对一个web项目 服务器会一个对象. setAttribute() getAttribute();
exception:Throwable 异常信息. getMessage() getCause();
config: ServletConfig 获得Servlet配置信息. getInitParameter(); getServletName();
page:Object 代表当前JSP翻译成Servlet的这个类对象.
pageContext:PageContext
out:JspWriter 代表是输出对象.
JSP的动作标签:
至少记住六个:
<jsp:forward>
<jsp:include>
<jsp:param>
<jsp:useBean>
<jsp:setProperty>
<jsp:getProperty>
静态包含 和 动态包含的区别---?
Filter和Servlet的区别
JavaBean相关
MVC设计思想:
M:Model:模型层:封装和处理数据.
V:View:视图层:显示数据.
C:Controller:控制层 :接收数据.调用JavaBean处理数据
分层好处就是用来 软件的解耦
mvc的优点
优点,可移值性高,变更起来容易,代码逻辑比较清晰,缺点是,运行效率低一些 MVC的优点 低耦合性
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译
Servlet中监听器监听三个对象: ServletContext HttpSession ServletRequest.
三个域对象就是事件源. 监听器 Servlet中提供8个监听器.
JSP共有以下6种基本动作
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记 |
|