jsp九大内置对象包括request response session application out page config exception pageContent
其中 request response out page config exception pageContent对象的有效范围是当前页面的应用 session 有效范围是当前会话(当前客户端的所有页面) application 有效范围是整个应用程序,只要服务器不关闭对象就有效
====================================================================
request
====================================================================
request.getParameter();获得用户提交的表单信息
request.setCharacterEncoding("UTF-8");设置请求编码,防止乱码
request.setAttribute("Unmae", new Object());将数据保存到request范围内的变量中
request.forward(String Url);转发
request.getRequestURL();获得当前页的IE地址
request.getHeader("resref");获得请求也的IE地址
request.getRemoteAddr();获得用户的IP地址
====================================================================
cookie
====================================================================
cookie.getCookies()获得所有cookie对象的集合
cookie.getName()获得指定名称的cookie
cookie.getValue()获得cookie对象的值
URLEncoder.encode();将需要保存到cookie中的数据进行编码
URLEncoder.decode();读取cookie信息时将信息解码
====================================================================
response
====================================================================
response.addCookie()将一个cookie对象发送到客户端
response.sendRedirect(String path); 重定向
====================================================================
application
====================================================================
application.setAttribute(key,value);给application添加属性值
application.getAttribute(key,value);获取指定的值
====================================================================
session
====================================================================
session.setMaxInactiveInterval(int num);设置session对象的有效活动时间
session.isNew();判断是否为新用户 返回Boolean
session.setAttribute();
session.getAttribute();
session.invalidate();销毁当前session
====================================================================
案例
====================================================================
1:防止表单在网站外部提交 使用request
String address=request.getRequestURL().toString();//获得当前的IE地址
String addresstwo=request.getHeader("referer");//获得请求地址
String pathadd=null;//当前服务器主机
String pathaddtwo=null;//访问服务器主机
//获得访问主机名称
try {
if(address!=null&&address!=""){
URL url=new URL(address);
pathadd=url.getHost();
}
if(addresstwo!=null&&addresstwo!=""){
URL url1=new URL(addresstwo);
pathaddtwo=url1.getHost();
}
if(pathadd.equals(pathaddtwo)){
System.err.println("可以访问");
}else{
System.err.println("不在同一站内访问");
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2:网站计数器 application
synchronized java关键字 使用中一个线程未完成锁定下一个线程
int i=0;
synchronized (application) {
if(application.getAttribute("times")==null){//服务器启动后的第一位访问者
i=1;
}else{
i=Integer.parseInt(application.getAttribute("times"));
i++;//访问次数加一
}
application.setAttribute("times",Integer.toString(i)); //将访问次数存入到application中
}
====================================================================