目录
10、JSP 中动态 INCLUDE 与静态 INCLUDE 的区别
18、Spring 中 Autowired 和 Resource 关键字的区别
22、Spring 基于 xml 注入 bean 的几种方式
1、HTTP 请求的 GET 与 POST 方式的区别
1. get 是从服务器上获取数据,post 是向服务器传送数据;
2. 请求的时候参数的位置有区别:get 的参数是拼接在 url 后面,用户在浏览器地址栏可以看到;post 是放在 http 包的包体中;
3. 能提交的数据有区别, get 方式能提交的数据只能是文本,且大小不超过 1024 个字节,而 post 不仅可以提交文本还有二进制文件。 所以说想上传文件的话,那我们就需要使用 post 请求方式;
4. get 安全性非常低, post 安全性较高;比如说用户注册,不能把用户提交的注册信息用 get 的方式,会把用户的注册信息都显示在 Url 上,是不安全的;
2、什么是 servlet?
Servlet 是服务器端的程序;动态生成 html 页面发送到客户端;
但是这样程序里会有很多 out.println(),java 与 html 语言混在一起很乱,所以后来 sun 公司推出了 JSP .其实 JSP 就是 Servlet ,每次运行的时候 JSP 都首先被编译成 servlet 文件,然后再被编译成 (.class) 文件运行。有了 jsp ,在 MVC 项目中 servlet 不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制 jsp 与 javabean 之间的流转;
3、Servlet 的生命周期
Servlet 生命周期包括三部分:
1、初始化:Web 容器加载 servlet,调用 init()方法;
2、理请求:当请求到达时,运行其 service()方法。service()自动派遣运行与请求相对应的 doXXX(doGet 或者 doPost)方法;
3、销毁:服务结束,web 容器会调用 servlet 的 distroy()方法销毁 servlet;
4、Servlet 的基本架构
package com.yx.test;
public class Servlet extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
5、什么情况下调用 doGet()和 doPost()?
Jsp 页面中的 FORM 标签里的 method 属性为 get 时调用 doGet(),为 post 时调用 doPost();
6、Request 对象的主要方法
setAttribute(String name,Object) | 设置名字为 name 的 request 的参数值 |
getAttribute(String name) | 返回由 name 指定的属性值 |
getAttributeNames() | 返回 request 对象所有属性的名字集合,结果是一个枚举的实例 |
getCookies() | 返回客户端的所有 Cookie 对象,结果是一个 Cookie 数组 |
getCharacterEncoding() | 返回请求中的字符编码方式 |
getContentLength() | 返回请求的 Body 的长度 |
getHeader(String name) | 获得 HTTP 协议定义的文件头信息 |
getHeaders(String name) | 返回指定名字的 request Header 的所有值,结果是一个枚举的实例 |
getHeaderNames() | 返回所以 request Header 的名字,结果是一个枚举的实例 |
getInputStream() | 返回请求的输入流,用于获得请求中的数据 |
getMethod() | 获得客户端向服务器端传送数据的方法 |
getParameter(String name) | 获得客户端传送给服务器端的有 name 指定的参数值 |
getParametervalues(String name) | 获得有 name 指定的参数的所有值 |
getRequestURI() | 获取发出请求字符串的客户端地址 |
getRemoteAddr() | 获取客户端的 IP 地址 |
getSession([Boolean create]) | 返回和请求相关 Session |
getServerName() | 获取服务器的名字 |
7、forward 和 redirect 的区别
转发
与
重定向
:
(1) 从地址栏显示来说forward 是服务器请求资源,服务器直接访问目标地址的 URL ,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址;redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的 URL ;
(2) 从数据共享来说forward :转发页面和转发到的页面可以共享 request 里面的数据;redirect :不能共享数据;
(3) 从运用地方来说
forward :一般用于用户登陆的时候,根据角色转发到相应的模块;redirect :一般用于用户注销登陆时返回主页面和跳转到其它的网站等;
(4) 从效率来说
forward :高;redirect :低;
8、jsp 有哪些内置对象?作用分别是什么
exception
|
针对错误页面才可使用
|
request | 包含用户端请求信息 |