本文是对Jsp内置对象的response、out、config、exception、pageContext知识点的详细总结。

response对象

Response内置对象和request内置对象是相应的,response内置对象用于相应客户请求,向客户端输出信息;Javax.servlet.HttpServletResponse接口

1、自动刷新应用

<%

//每隔一秒刷新一次时间:

response.setHeader("refresh", "1");

//获取当前时间:

Date mydate=new Date();

%>

<%=mydate.toLocaleString() %>

2、页面重新定向应用 客户端跳转(使用JSP写了一个登录界面)

jsp登录界面(responseScope.jsp),实现了记住密码,再次登录的时候能够直接输入账号和密码。。。。从cookie中读取,UserLogin.jsp中将用户名和密码存在了cookie中。

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>内置对象pageContext</title>
<script type="text/javascript">
function resetValue(){
document.getElementById("username").value="";
document.getElementById("pwd").value="";
}
</script>
</head>
<%
String userName=null;
String Pwd=null;
Cookie []cookies=request.getCookies();
for(int i=0;cookies!=null&& i<cookies.length;i++){
if(cookies[i].getName().equals("usernameAndpwd")){
userName= cookies[i].getValue().split("-")[0];
Pwd=cookies[i].getValue().split("-")[1];
}
}
if(userName==null){
userName="";
}
if(Pwd==null){
Pwd="";
}
%>
<body>
<form action="UserLogin.jsp" method="post" >
<table>
<tr>
<td>用户名:</td>
<td><input type="text" id="username"name="username" value="<%=userName %>" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" id="pwd" name="pwd" value="<%=Pwd %>"/></td>
</tr>
<tr>
<td>记住密码:</td>
<td><input type="checkbox" name="remember" value="remember-me"/></td>
</tr>
<tr>
<td><input type="submit" value="登录"></td>
<td><input type="button" value="重置" onclick="resetValue()"/></td>
</tr>
</table>
</form>
</body>
</html>

responseScope.jsp

存储到cookie中。

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="javax.servlet.http.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>UserLogin.jsp</title>
</head>
<body>
<%
String username =request.getParameter("username");
String pwd=request.getParameter("pwd");
String remember=request.getParameter("remember");
if("remember-me".equals(remember)){
Cookie usernameAndpwd=new Cookie("usernameAndpwd",username+"-"+pwd);
usernameAndpwd.setMaxAge(1*60*60*24*7);//设置保存的时间周期是一周;
response.addCookie(usernameAndpwd);
}
response.sendRedirect("responseScope02.jsp");
%>
</body>
</html>

UserLogin.jsp

3、4是对cookie和session的比较问题。

3、操作cookie应用post、get方法比较 post放在数据包里,get放在Url后面 get数据量小,不安全;

4、cookie和session的比较 cookie信息是存客户端的,session信息是存服务器的;

参考别人的一篇文章介绍session和cookie的综合知识点。

out对象

Out内置对象主要是用来向客户端输出各种类型的数据,同时还可以管理应用服务器上的输出缓冲区。所以out内置对象的方法是向客户端输出数据和管理缓冲区;底层javax.servlet.jsp.JspWriter抽象类。

这里举了两个例子:

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>out</title>
</head>
<body>
<%
  //向客户端输出各种类型的数据

out.println("<h1>");
out.println("Hello Jsp & Servlet");
out.println("</h1>");
//获取缓冲区的大小管理应用服务器上的输出缓冲区: int totalbuffer=out.getBufferSize();
int unuse=out.getRemaining();//获取未使用的缓冲区的大小
int user=totalbuffer-unuse;
out.println("缓冲区总共大小为"+totalbuffer);
out.println("未使用的缓冲区的大小为"+unuse);
out.println("已经使用的缓冲区的大小为"+user);
%>
<h1> </h1>
</body>
</html>

config对象

Config内置对象是Jsp页面通过Jsp容器进行初始化时被传递的对象。Javax.servlet.ServletConfig。在Servlet初始化的时候,JSP引擎通过config向它传递信息。这种信息可以是属性名和属性值匹配的参数,也可以是通过ServletContext对象传递的服务器的相关信息。

这里的需要对web.xml进行配置,路径:WebContent->WEB-INF->web.xml

配置代码如下(在<web-app></web-app>之间插入下面的代码):

<servlet>
<servlet-name>init</servlet-name>
<jsp-file>/sysInit.jsp</jsp-file>
<init-param>
<param-name>jdbcName</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>dbUrl</param-name>
<param-value>jdbc:mysql://localhost:3306/db_xxx</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>init</servlet-name>
<url-pattern>/init</url-pattern>
</servlet-mapping>

其中客户端请求init的时候,在<servlet-mapping></servlet-mapping>中寻找到servlet-name然后到url-pattern路径中找到init文件,之后在<servlet></servlet>之间找到servlet-name为init,下一步映射到jsp-file中找到sysInit.jsp文件。(打开sysInit.jsp文件)

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="javax.servlet.http.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>UserLogin.jsp</title>
</head>
<body>
<%
String jdbcName=config.getInitParameter("jdbcName");
String dbUrl=config.getInitParameter("dbUrl");
%>
<h1>数据库名称: <%=jdbcName%></h1>
<h1>连接池地址:<%=dbUrl %></h1>
</body>
</html>

sysInit.jsp

打开之后我们看到输出结果。

exception对象

Exception内置对象用来处理JSP文件在执行时发生的异常,它是java.lang.Throwable类的一个对象。

我们写一个简单的例子:

 <%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page errorPage="error.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>exception</title>
</head>
<body>
<%
int a=1;
int b=0;
out.print(a/b);
%>
</body>
</html>

exception01.jsp

在代码中我们可以看到

<%@page errorPage="error.jsp" %>

错误信息传递到了error.jsp文件。在error.jsp文件内利用exception获取错误信息。内置对象out 输出结果。

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<%@ page isErrorPage="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ErrorMessage.jsp</title>
</head>
<body>
<% if(exception!=null){
out.println("程序出错,错误信息是");
out.println(exception.getMessage());
}
%>
</body>
</html>

error.jsp

pageContext对象

pageContext内置对象是一个比较特殊的对象,它相当于页面中所有对象功能的集合,即使用它可以访问到本页面中所有对象。pageContext内置对象由jsp容器创建并初始化,pageContext对象提供了对JSP页面所有对象及控件的访问。

例子是让page,request,session application分别设置数值。然后pageContext取出输出。

 <%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>内置对象pageContext</title>
</head>
<body>
<%
//利用pagecontext设置page request session application的值。
pageContext.setAttribute("name0", "pageContext");
request.setAttribute("name1", "requestInfo");
session.setAttribute("name2","sessionInfo");
application.setAttribute("name3","applicationInfo");
//利用pageContext获取取值
out.println("pageContext: "+pageContext.getAttribute("name0")+"<br/>");
out.println("request: "+pageContext.getRequest().getAttribute("name1")+"<br/>");
out.println("session: "+pageContext.getSession().getAttribute("name2")+"<br/>");
out.println("application: "+pageContext.getServletContext().getAttribute("name3"));
%>
</body>
</html>

pageContext

jsp内置对象之response、out、config、exception、pageContext。的更多相关文章

  1. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...

  2. JSP内置对象--web安全性及config对象的使用 (了解即可)

    tomcat服务器配置的时候,在虚拟目录中必须存在一个WEB-INF文件夹,但是访问的时候并不能发现这个文件夹.改成WEB-INFs就可以看到. 所以WEB-INF文件夹不轻易让用户看到,那么其安全性 ...

  3. Java EE JSP内置对象及表达式语言

    一.JSP内置对象 JSP根据Servlet API规范提供了一些内置对象,开发者不用事先声明就可使用标准变量来访问这些对象. JSP提供了9种内置对象: (一).request 简述: JSP编程中 ...

  4. jsp内置对象浅谈

    jsp内置对象浅谈 | 浏览:1184 | 更新:2013-12-11 16:01 JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对 ...

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

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

  6. Jsp内置对象及EL表达式的使用

    一.JSP的内置对象(9个JSP内置对象) JSP的内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse ses ...

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

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

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

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

  9. JSP内置对象详解

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

随机推荐

  1. 学习笔记 第十三章 使用CSS3新布局

    第13章   使用CSS3新布局 [学习重点] 设计多列布局 设计弹性盒布局样式 使用CSS3布局技术设计适用移动需求的网页 13.1  多列布局 CSS3使用columns属性定义多列布局,用法如下 ...

  2. vue全局loading组件

    本组件作用在页面加载完成前进行loader提示,提升用户体验,只需要在app.vue中引用一次,整个项目中路由切换时就可以自动进行提示(vuex版): 1. 添加vuex值和方法: import Vu ...

  3. [Tunny]CSS LESS框架基础

    [黄映焜/Tunny,20140711] Less 是一个Css 预编译器,意思指的是它可以扩展Css语言,添加功能如允许变量(variables),混合(mixins),函数(functions) ...

  4. 常用的HTTP方法有哪些?

    GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器POST:用于传输数据给服务器,主要功能与GET方法类似,但一般推荐使用POST方式.PUT: 传输数据,报文 ...

  5. vuec常用插件

    1.  实现下拉刷新和下拉加载效果 iscroll-probe.js 2.手势密码插件 patternLock.js 3.实现复制 clipboard.min.js

  6. 【转】C# 二进制,十进制,十六进制 互转

    //十进制转二进制 Console.WriteLine(Convert.ToString(69, 2)); //十进制转八进制 Console.WriteLine(Convert.ToString(6 ...

  7. 零基础入门学习Python(14)--字符串:各种奇葩的内置方法

    前言 这节课我们回过头来,再谈一下字符串,或许我们现在再来谈字符串,有些朋友可能觉得没必要了,甚至有些朋友就会觉得,不就是字符串吗,哥闭着眼也能写出来,那其实关于字符串还有很多你不知道的秘密哦.由于字 ...

  8. 把wav文件等时长切割

    ffmpeg -i somefile.mp3 -f segment -segment_time 1800 -c copy out%03d.mp3 segment_time 是切割时长,单位秒

  9. JSON对象与JSON字符串之间的转换

    JSON引用包:import net.sf.json 1.JSON字符串转JSON对象(例子中的AgencyExpand是java对象) JSONObject  json = JSONObject.f ...

  10. MySQL-----查

    数据库在我眼中就是增删改查,而查,我觉得是数据库最费劲的,数据库的花式查,各种查.下面咱们不废话,就是干. 查: **查数据库版本** select version(); **查登录用户** sele ...