常用的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. Python3+Requests-HTML+Requests-File解析本地html文件

    一.说明 解析html文件我喜欢用xpath不喜欢用BeautifulSoup,Requests的作者出了Requests-HTML后一般都用Requests-HTML. 但是Requests-HTM ...

  2. 【cogs247】售票系统【线段树】

    售票系统 输入文件:railway.in 输出文件:railway.out 时间限制:1 s 内存限制:128 MB [问题描述] 某次列车途经C个城市,城市编号依次为1到C,列车上共有S个座位,铁路 ...

  3. vue中computed、metfods、watch的区别

    一.computed和methods 我们可以将同一函数定义为一个 method 或者一个计算属性.对于最终的结果,两种方式确实是相同的. 不同的是computed计算属性是基于它们的依赖进行缓存的. ...

  4. css三种基本选着器

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  5. java使用格式String型转成Date型

    public class TimeTwo { public static void main(String[] args) throws ParseException{ String s = &quo ...

  6. Spring MVC扩展

    使用@ResonseBody实现异步请求时返回的数据对象的输出. 通过配置StringHttpMessageConverter消息转换器来解决JSON数据传递中出现的中文乱码问题. 在实际项目开发中, ...

  7. add

    前台 <input id="Button1" type="button" value="button" onclick="a ...

  8. laravel 记录

    1.处理ajax跨域  使用  composer require barryvdh/laravel-cors

  9. Java final类&所有构造方法均为private的类(类型说明符&访问控制符)

    1. final是类型说明符,表示关闭继承,即final类不能有子类: 但final类可能可以在类外创建对象(即final类的构造方法可以不是private型): 在同一包中时,可以在任何另外一个类中 ...

  10. imx6 工具链下载地址

    http://downloads.yoctoproject.org/releases/yocto/yocto-1.7.1/toolchain/