输出输入工具
1.out:用于向客户端、浏览器输出数据。
2.request(HttpservletRequest类):用于吸收客户端要求信息。
3.response(HttpServletResponse类):封装了做事器的相应,用于相应客户端。
通信掌握工具
4.session(HttpSession类):保存会话信息。
5.application:相称于一个全局表量,实现不同用户的信息共享。
6.pageContext:供应对其他八个工具的访问。
servlet工具
7.page(Object类):代表JSP本身,相称于java中的this引用变量。
8.conf(ServletConfig类):封装运用要求的配置信息。
非常工具
9.exception:封装JSP实行过程中发生的非常和缺点信息。
二、Servlet生命周期
当有一个servlet要求被Web做事器吸收到,做事器先调用init()方法进行初始化。知道servlet工具被销毁,init()方法只会被调用一次。
此后每次用户要求时,Web做事器都会调用service()方法来处理要求。service会检讨用户要求办法,选择调用doGet或者doPost等方法。
调用destroy()销毁servlet工具,destroy也只调用一次,末了JVM垃圾回收器进行回收。
三、JSP和servlet的差异与联系
JSP(Java Server Pages):java做事器页面,其根本是简化servlet的设计。
servlet:是java编写的做事端程序,紧张功能是交互式地浏览和修正数据,天生动态Web内容。
JSP代码实行前,会被做事真个JSP引擎转换为.java文件,然后由JSP引擎调用Java编译器,将其.java文件编译为.class文件,然后由JVM实行。
servlet本身是.java文件,编译后由JVM实行。
JSP更善于页面的表示,个中也可以嵌入java代码。而servlet紧张是java代码,卖力业务逻辑掌握。
四、doGet和doPost的差异
form表单中默认是get办法,超链接中也是get办法。
1、get提交的表单数据会存放在URL地址后,可以直接看到,安全性低。post提交的表单数据存放在http协议体中,无法直接看到,安全性高。
2、get提交办法数据量长度有限,一样平常不超过2kb,post提交办法没有大小限定,更适宜大规模的数据传输。
3、get办法在用户刷新时不会有任何提示,post会弹出提示框,问用户是否重新提交。
五、JSP四个浸染域
1、page:在当前的JSP页面有效,跳转后无效。
2、request:从一个要求被处理到返回相应全体过程有效。数据被转发到其他jsp页面依然有效。
3、session:在当前会话有效,也便是说从一个浏览器开启到关闭都有效。
4、application:相称于全局变量,只要不被手动删除,或关闭web做事器,在任何浏览器中都有效。
六、转发和重定向的差异
1、转发是在做事端行为,客户端并不知道。而重定向是客户端行为。
2、转发的速率快,重定向慢。
3、转发是同一个要求,而重定向是两个不同的要求。
4、转发的URL地址栏不会变,重定向会变成要求的新地址。
5、转发后request域中的信息可访问到,重定向不能。
6、转发可以访问WEB-INF文件夹,重定向不能。
注释:转发和重定向事理。
转发过程:客户首先发送一个要求到做事端,做事端匹配servlet,servlet实行时调用getRequestDispacher()方法,把要求直接转发给指定的test.jsp,全体流程都是在做事端进行的,也都是在同一个要求完成的,servlet和test.jsp共享同一个request。
重定向过程:客户端发送第一个要求,做事端匹配servlet,servlet调用sendRedirect()方法,这个方法是response的方法,做事端返回这个相应,见告客户端你须要再发送一个要求去访问test.jsp。客户端吸收到做事真个这个相应后,就急速发出第二个新要求,去要求test.jsp。两个要求互不滋扰,相互独立,所有之前的request域里的值,重定向的test.jsp都访问不到。
七、session的失落效韶光设置
1、在servlet中用session.setMaxInactiveInterval(int interval)方法设置失落效韶光,以秒为单位的。
2、在web.xml里设置:(已分钟为单位)
<session-config>
<session-timeout>30</session-timeout>
</session-config>
3、tomcat的conf文件夹下的web.xml里设置,同上。(已分钟为单位)
八、乱码问题及办理
1、JSP页面中,设置<%@ page language=\公众java\"大众 contentType=\"大众text/html;
charset=UTF-8\公众 pageEncoding=\公众UTF-8\公众%>
2、servlet中,request.seCharacterEncoding(“utf-8”);
3、把获取到的字符串,转成byte数组,在转成”utf-8”字符集。例如:
String s = request.getgetParameter(\"大众name\"大众);
byte[] b = s.getbytes(“iso-8859-1”);
String s2 = new String(b,”utf-8”);