1. servlet总结
在Java Web 中,Servlet主要负责接收用户请求HttpServletRequest, 在doGet(),doPost()中作出相应的处理,并将回应HttpServletResponse反馈给用户。一个servelt可以设置多个Url访问。Servlet不是线程安全,因此要谨慎使用类变量。
2. servlet的生命周期
加载 初始化 服务 销毁
3.get 和 post 请求的区别
1)get请求用来从服务器上获得资源,而post是用来向服务器提交数据;
2)get将表单中数据按照name = value 的形式,添加到action 所指向的URL后面,并且两者使用"?" 连接,而各个变量之间使用"&" 连接;post是将表单中的数据放着HTTP 协议的请求头或消息体中,传递到action所指向URL;
3)get传输的数据要受到URL长度限制(最大长度是2048个字符);而post可以传输大量的数据,上传文件通常要使用post方式;
4)使用get时参数会显示在地址栏上,如果不是敏感数据,那么可以使用get;对于敏感数据还是应该使用post;
5)get使用MIME类型application/x-www-form-urlencoded的URL编码(也叫百分号编码)文本的格式传输参数,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"20%".
补充:get方式提交表单的典型应用就是搜索引擎。Get方式就是被设计为查询用的。
4. 转发(Forword) 和重定向(Redirect)的区别
转发是服务器行为,重定向是客户端行为。
转发(Forword) 通过RequestDispatcher对象的forward(HttpServletRequest request,HttpServletResponse reponse) 方法实现的。
request.getRequestDispatcher("login_success.jsp").forward(request, response);
重定向(Redirect)是利用服务器返回的状态码来实现的。客户端浏览器请求服务器的时候,服务器会返回一个状态码。服务器通过 HttpServletResponse的 setStatus(int status) 方法设置状态码,如果服务器返回301或者302,则浏览器会到新的网址重新请求该资源。
1. 从地址栏显示来说
forward 地址栏不变 ,redirect会显示新的URL.
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据
redirect:不能共享数据
3. 从运用地方来说
forward:一般用户用户登录的时候,根据角色转发到相应的模块。
redirect:一般用户用户注销登录时返回主页面和跳转到其他的网站等。
4.从效率来说
forward:高
redirect:低
5. JSP有哪些内置对象、作用分别是什么
JSP有9个内置对象:
1. request:封装客户端请求,其中包含来自GET或者POST请求的参数;
2. response:封装服务器对客户端的相应;
3. pageContext;通过该对象可以获取其他对象;
4. session:封装用户会话的对象;
5. application:封装服务器运行环境的对象;
6. out:输出服务器想想的输出流对象;
7. config:Web应用的配置对象;
8. page:JSP页面本身(相当于Java中的this)
9. exception:封装页面抛出异常的对象。
6. request.getAttribute() 和 request.getParameter()有何区别
从获取方向来看:
getParameter() 是获取POST/GET传递的参数值;
getAttribute() 是获取对象容器中的数据值;
从用途来看:
getParameter用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收数据用。
getAttribute用于服务器端重定向时,即在 sevlet 中使用了 forward 函数,或 struts 中使用了 mapping.findForward。 getAttribute 只能收到程序用 setAttribute 传过来的值。
总结:
getParameter返回的是String,用于读取提交的表单中的值;(获取之后会根据实际需要转换为自己需要的相应类型,比如整形,日期类型啊等等)
getAttribute返回的是Object,需进行转换,可用setAttribute设置成任意对象,使用很灵活,可随时用。
网友评论