UTF—8国际通用码(编码的方式)页面编码方式和处理过程的时候的编码方式要统一。
重定向:
response.sendRedirect("me.jsp");-----重定向,跳转到某个页面。
客户提交请求。
response服务器对客户端的响应
客户端重定向。
的特点:
1客户端浏览器会显示要访问的最终页面。
而不是刚开始的请求的页面2一共经历了两个请求。
第一个请求到response之上的最后一句代码结束。
第二个从response开始到最终访问的页面响应给客户就结束。
response.sendRedirect("");。
(隐含了客户对服务器的请求。
)服务器的
用于跳转中间界面,只是使用了中间页面的操作。
不需要中间页面的显示。
一般情况下中间的页面含有了对第一个请求的处理。
(列如检查)
1客户端重定向可以跳转到外部的项目和网站
2客户端重定向地址栏能和显示的内容统一起来
3效率相对较慢
将数据从第一个请求过渡到第二个请求。
浏览器和窗口还是不一样的。
浏览器的关闭和窗口的关闭是2回事
404--没有找到访问的资源。
Session没有泛型必须强制类型转换
//多个请求中传递,共享数据的对象。
会话对象。
//生命的周期-------浏览器打开发出第一个请求,开始,结束的时候:
//1session会话的时间到期了默认30分钟,可以设置
//2浏览器关闭后,session不一定还存在,只是意义不大,因为重启session之后,就会产生新的session
//session.getId()------获取session的ID号
之前的request对象一遇到response.sendRedirect()就结束了。
这个请求的死期到了。
session的内容
window.open----子窗口,单仭然是属于一个浏览器下的视窗。
访问第一个视窗的时候,产生请求的时候,就会产生session
application的区别的话,
application实现用户的数据共享,appliacation是全局对像,
保存的是安全性不高的数据。
系统的全局变量,事项web的数据共享。
session和cookie的区别。
1session是会话级别的对象,session可以保存在一个浏览器的打开之后和关闭之前。
每个浏览器和一个session相对应,
重新开启一个浏览器,就相当于创建了session对象。
application------和web应用服务器相关。
是应用程序级别的对象,让多个用户共享数据,
周期是第一个用户打开第一个浏览器进行第一个访问产生applation,到web应用服务器(关闭)
或者改变了底层代码之后,tomacat进行热部署,,同样导致application死亡。
cookie是服务器保存客户端的文本信息,
区别:
1从安全上来讲
1session比较安全,session的数据在服务器端
cookie只适合保存那些不需要很安全的数据。
cookie比较不安全。
(因为cookie的数据在客户端)。
从效率上来讲,session比较慢,cookie访问比较快。
通常cookie和session是绑定在一起的。
cookie一般通过设置
存活时间来改变cookie的存活的周期。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
1request的两种方式:
postget的区别
1get:
超级链接的请求直接地址栏输入请求通过javascript的请求。
2post:
表单请求可以是post也可以是get但一般是post的
安全上的区别:
1get一般是随访问地址一起发送数据,数据不安全,post是body加密传送,数据安全的。
采用的是url重写的方式。
get请求之后的的地址栏会带有访问的数据。
2发送数据的大小区别:
get的数据容量比较的小,256字节,post请求发送的数据大小不受限制
3从速度上加以区别:
get的速度快,post则慢
4解决乱码方式不一样,
post:
setChracterEncoding()解决乱码的请求
request.setCharacterEncoding("UTF-8");。
get解决乱码的方式。
get的编码方式---支持纯英文的编码方式。
字符窜方式----先将乱码还原为(英文下的编码方式)---->以中文的编码方式.还原出来。
username=newString(username.getBytes('iso8859-1'),'UTF-8')
session的生命周期:
session一般为30分钟的时间。
1session是会话级别的对象,
使得session失效,session.invalidate();----注销的时候,当前session中的数据全部丢失,就是session的内容清空。
1session保存的数据全部丢失,2session死亡
3重新在开启浏览器发出新的请求。
就会产生新的session.
设置session的存活的时间,
1session.setMaxInactiveInterval(7000);---改变存活的时间,
2在web.xml中改变存活时间---以分钟为单位
60
jsp做大的强项,是显示数据和提供数据,不使用jsp来访问数据库,
虽然jsp也可以访问数据库,但是为了凸显JSP的强项,利于后期维护,
通过servlet开控制业务流程,让servelet和DAO层打交道,DAO层封装了数据的操作。
做到分工明确,各司其职。
在页面中,引入别的页面文件。
<%@includefile="A"%>
A是个样式文件,这个文件只是含有头文件,和body中的内容,其余的就不需要了。
编译的时候就已经加入了。
请求是静态包含,页面请求之前预编译了。
所有页面进来之后,一起处理。
所有代码加入之后一起处理。
编译为一个servelet
includepage="head.jsp">----动作指令。
所有代码分别处理,在页面请求的时候才编译,被编译成多个servelet,页面语法独立,处理完成之后再将代码的显示结果组合进来。
Jsp中的Java代码和html的代码要尽量地分开.java用<%%>分开就好。
Cookie的使用
Cookie中存数据的模式是键值得关系,通过getName()方法获取键,
getValue()----获取值
<%
Cookie[]cookies=request.getCookies();
CookiecurrentCookie=null;
if(cookies!
=null){
for(Cookiecookie:
cookies){
if(cookie.getName().equals("cookieusm")){
currentCookie=cookie;
break;
}
}
}
%>
<%
Stringuserna=request.getParameter("username");
Cookiecookie=newCookie("cookieusm",userna);
cookie.setMaxAge(60*60*24*7);
response.addCookie(cookie);
%>
Application的使用:
<%
Integercount=(Integer)application.getAttribute("kk");
if(count==null){
count=1;
}else{
count+=1;
}
application.setAttribute("kk",count);
out.println("count:
"+count);
%>
Request的方法:
request.getParameter("userName");
Application,session中的方法也是键值的方式存数据,需要强制类型转换。
Application.setAttribute("kk",count);
session.setAttribute("logname",username);
(Integer)application.getAttribute("kk");
(String)session.getAttribute("logname");
Cookie的方法:
cookie.getName()
cookie.getValue()