常用的JSP内置对象

request对象主要用于处理客户端请求

request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。

request对象常用方法
 
方法名称 说明
String getParameter(String name) 根据表单组件名称获取提交数据
String[ ] getParameterValues(String name) 获取表单组件对应多个值时的请求数据
void setCharacterEncoding(String charset) 指定每个请求的编码
RequestDispatcher getRequestDispatcher(String path) 返回一个RequestDispatcher对象,该对象的forward( )方法用于转发请求

方法名称 说明
void addCookie(Cookie cookie) 向客户端添加Cookie
void setCookie(String type) 设置Http相应的 contentType类型
void setCharacterEncoding(String charset) 设置相应采用的字符编码类型
void sendRedirect 将请求重新定位带一个新的url上
 
转发
转发是在服务器端发挥作用,将同一请求在服务器资源之间进行传递
客户端浏览器的地址栏不会显示转向后的地址
重定向
重定向是在客户端发挥作用,通过发送一个新的请求实现页面转向
在地址栏中可以显示转向后的地址
 
HTTP中的重定向和请求转发的区别
一句话,转发是服务器行为,重定向是客户端行为。为什么这样说呢,这就要看两个动作的工作流程:
转发过程:客户浏览器发送http请求----》web服务器接受此请求--》调用内部的一个方法在容器内部完成请求处理和转发动作----》将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。
重定向过程:客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器--》客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。

Session:对象常用方法:
 
方法名称 说明
String getId() 获取sessionid
void setMaxInactiveInterval(int interval) 设定session的非活动时间
int getMaxInactiveInterval() 获取session的有效非活动时间(以秒为单位)
void invalidate() 设置session对象失效
void setAttribute(String key, Object value) 以key/value的形式保存对象值
Object getAttribute(String key) 通过key获取对象值
void removeAttribute(String key) 从session中删除指定名称(key)所对应的对象
 
 
 
Session与窗口的关系
  • 每个session对象都与一个浏览器窗口对应 ,重新开启一个浏览器窗口,可以重新创建 一个session对象(不同版本浏览器可能有所差别)
  • 通过超链接打开的新窗口,新窗口的session与其父窗口的session相同
 

 
COOKIE和SESSION有什么区别?
cookie保存在客户端,session保存在服务器端,
cookie目的可以跟踪会话,也可以保存用户喜好或者保存用户名密码
session用来跟踪会话
jsp和servlet都是单例多线程的。
 
 
简单的登陆案例
主页面:
 
<div id="container">
<h2>请输入注册信息</h2>
<form action="control.jsp" method="post">
用户名:<input name="uname"/><br/>
密码:<input name="upwd" type="password"/><br/>
<br/><input type="submit" value="Login"/>
</form>
</div>
 
 
判断登陆证明页面:
 
String path = request.getContextPath();
Object obj = session.getAttribute("uname");
if (obj == null) { //证明没有登录
if ((String) obj == null) {
//证明没有登录
response.sendRedirect(path + "/computer2/login.jsp");
}
}
 
登陆页面:
 
String path = request.getContextPath();
//1.request
String name = request.getParameter("uname");
String pwd = request.getParameter("upwd");
if (name.equals("admin") && pwd.equals("admin")) {
 
//认证成功
//记录当前登录用户,将用户信息保存到session
session.setAttribute("uname", name);
//跳转到主页
request.getRequestDispatcher("index.jsp").forward(request,response);
} else {
response.sendRedirect(path + "/computer2/login.jsp");
}
 
登陆成功页面和注销页面:
 
<a href="logout.jsp">注销</a><br/>
<%=session.getAttribute("uname")+"你好" %>
 
消除session的服务器的记录:
 
String path = request.getContextPath();
session.removeAttribute("uname");
response.sendRedirect(path+"/computer2/login.jsp");
 
 
 

常用的JSP内置对象(1)的更多相关文章

  1. EL表达式,JSP内置对象

    基本语法格式 EL都是以 ${ 为起始.以} 为结尾的 ${ EL Expression} 示例: ${ “Helloworld” }  //输出字符串常量 ${ str }  //输出字符串变量st ...

  2. JSP内置对象-request

    JSP内置对象即无需声明就可以直接使用的对象实例,在实际的开发过程中,比较常用的JSP对象有request,response,session,out和application等,笔者在本文章中将简单介绍 ...

  3. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. Java遇见HTML——JSP篇之JSP内置对象(上)

    一.JSP内置对象简介 1.1.内置对象简介 JSP内置对象是WEB容器中创建的一组对象,可以直接使用不需要new,如截图中的out 对象. JSP有九大内置对象: 五大常用对象: out.reque ...

  5. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  6. JSP内置对象详解

    jsp中内置对象:request.response.session.applecation.out.pagecontesx.config.page.exception.cookie 1.request ...

  7. JSP内置对象(上)

    在JSP中为了简化页面的开发提供了一些内置的对象.这些对象不需要由JSP的编写者通过new关键字实例化,他们都由容器实现和管理,在所有的JSP页面中都可以使用内置对象. JSP中共有9大内置对象: o ...

  8. JSP内置对象(下)

    JSP中共有9大内置对象: out对象 requset对象 response对象 session对象 pageContext对象 application对象 config对象 page对象 excep ...

  9. JSP内置对象的使用(一)

    JSP九大内置对象是:request.response.session.application.out.pagecontext.config.page.exception. JSP常用的内置对象是:o ...

随机推荐

  1. 深入理解hashCode

    1.hashCode的概念 (1)hashCode方法是Object类的方法,在Java里所有类都默认继承Object类,即所有类都有hashCode方法. (2)hashCode是jdk根据对象的存 ...

  2. 学习笔记------------解决margin塌陷

    首先来解释一下什么是marg塌陷? 父子嵌套元素垂直方向的margin,父子元素是结合在一起的,他们两个会取其中最大的值 正常情况下应该是父级元素相对于浏览器定位,而子级元素相对于父级元素定位 但是m ...

  3. hdu1256

    画横线总是一个字符粗,竖线随着总高度每增长6而增加1个字符宽.当总高度从5增加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形.每画一个"8 ...

  4. 使用线程操作刷新Winform界面

    主窗体中添加代码 public FrmMain() { InitializeComponent(); System.Threading.Thread thread = new System.Threa ...

  5. 对羊车门的思考/python/

    作业完成人: 学号:20181603048,温晨阳 学号:20181603024,刘鑫垚 题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一 ...

  6. Java 冒泡排序法

    冒泡排序法: public static void Bubbling(int []num){//冒泡排序法 for(int i=0;inum[j+1]){//前一个大于后一个为小到大排序 前一个小于后 ...

  7. 三大统计相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数

    统计相关系数简介 由于使用的统计相关系数比较频繁,所以这里就利用几篇文章简单介绍一下这些系数. 相关系数:考察两个事物(在数据里我们称之为变量)之间的相关程度. 如果有两个变量:X.Y,最终计算出的相 ...

  8. MapReduce实现Apriori算法

    Apiroi算法在Hadoop MapReduce上的实现 输入格式: 一行为一个Bucket 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 34 36 38 ...

  9. ssh整合报错严重: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxx'

    错误描述:eclipse整合ssh的时候 报不能创建名字为xxx的对象 信息: Destroying singletons in org.springframework.beans.factory.s ...

  10. C++中的字符串的输入输出函数、空字符与空格的区别、字符变量赋值和字符串初始化

      一.字符串输入输出函数 1.  cin.get()   逐个字符输入输出 2.  cin 可以将整个字符串一次性输入,但是,cin将空格.Tab和回车键,因此不能用于数组的一次性输入. 注意:ci ...