1.JSP内置对象的概念:JSP的内置对象时Web容器所创建的一组对象,不使用new关键字就可以使用的内置对象

2.JSP九大内置对象内置对象:out ,request ,response ,session ,application ,page , pageContent ,exception ,config等,前五个是经常使用的内置对象

3.缓冲区:Buffer 就是内存中一块区域,用来临时保存数据

4.out对象:是JspWriter类的实例,是向客户端输出内容常用的对象,(客户端大多数是指浏览器)

常用的方法:

out的例子:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>out内置对象</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<%
out.println("<h2>静夜思</h2>");
out.println("床前明月光<br/>");
out.println("疑是地上霜<br/>");
out.flush();
//out.clear();//这里会抛出异常,一旦抛出异常,后面的则不会被打印
//out.clearBuffer();//这里不会抛出异常
out.println("举头望明月<br/>");
out.println("低头思故乡<br/>");
%>
缓冲区大小: <%=out.getBufferSize() %>byte<br/>
缓冲区剩余:<%=out.getRemaining() %>byte<br/>
是否自动清除缓冲区:<%=out.isAutoFlush() %><br/> </body>
</html>

5.表单提交数据有两种:get和post两种

  • get:是通过明文的方式通过url提交数据,数据可以再url中看到,提交的数据最多不能超过3KB,安全性能低但是效率比post高,适合提交不大,安全性不高的数据,比如:搜索,查询等功能
  • post:将用户提交的信息封装在HTML HEADER中,适合提交数据量大,安全性高的用户信息。比如。注册,修改等功

request

1.客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest实例。request对象具有请求域,即完成客户端的请求之前,它一直有效。

2.request.setCharacterEncoding("UTF-8"),request.getParameter(),request.getParameterValues()例子:

前端页面reg.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'reg.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<h1>用户登录</h1>
<hr>
<form action="JSP/request.jsp" method="get" name="regForm">
<table>
<tr>
<td>用户:</td>
<td><input type="text" name="usename">
</td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" name="hobby" value="read">阅读
<input type="checkbox" name="hobby" value="music">音乐
<input type="checkbox" name="hobby" value="movic">电影
<input type="checkbox" name="hobby" value="internet">上网
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交">
</td>
</tr>
</table>
</form>
<br>
<br>
<a href="JSP/request.jsp?usename=zhangsan">测试URL传参数
</body>
</html>

request页面:request.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'request.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<h1>request内置对象</h1>
<hr>
<!-- 设置Tomcat的编码方式,解决中文乱码问题 -->
<%
request.setCharacterEncoding("UTF-8");
%>
用户名:<%=request.getParameter("usename")%>
爱好:<%
if (request.getParameterValues("hobby") != null) {
String[] favourites = request.getParameterValues("hobby");
for (int i = 0; i < favourites.length; i++) {
out.println(favourites[i] + "&nbsp;&nbsp;");
}
}
%>
</body>
</html>

3.设置密码和请求密码:

request.setAttribute("password", "123456");
密码:<%=request.getAttribute("password") %>

4.一些get:

请求体的MIME类型:<%=request.getContentType() %><br>
协议类型及版本号:<%=request.getProtocol() %><br>
服务器主机名:<%=request.getServerName() %><br>
服务器端口号:<%=request.getServerPort() %><br>
请求文件长度:<%=request.getContentLength() %><br>
请求客户端的IP地址:<%=request.getRemoteAddr() %><br>
请求的真实路径:<%=request.getRealPath("request.jsp") %><br>
请求的上下文路径:<%=request.getContextPath() %><br>

运行结果:

response

1.response对象具有页面作用域,即访问一个页面时,该页面的response对象只能对这次访问有效,其他页面的response对当前页面无效

2.response中的printWriter是提前与out,提前输出。

<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=UTF-8"%>
<%
response.setContentType("text/html,charset=UTF-8"); //设置响应MIME类型
out.println("<h1>response</h1>");
out.println("<hr>"); PrintWriter pw = response.getWriter(); //获得输出流对象
pw.println("printWriter");
%>

3.response.sendRedirect("reg.jsp");//请求重定向

4.请求转发和请求重定向

请求重定向:客户端的行为,response.sendRedirect(),从本质上讲是两次请求,前一次的请求对象不会被保存,地址栏的URL会改变

请求转发:服务器的行为,request.getRequestDispatcher("request.jsp").forward(request, response);,是一次请求,转发后请求对象会保存,地址栏的URL不会改变

JSP的内置对象(上)的更多相关文章

  1. JSP的执行原理、JSP的内置对象、四大作用域解析、MVC模式理解>从零开始学JAVA系列

    目录 JSP的执行原理.JSP的内置对象.四大作用域解析.MVC模式理解 JSP的执行原理 这里拿一个小例子来解析JSP是如何被访问到的 首先将该项目部署到tomcat,并且通过tomcat启动 通过 ...

  2. 什么是jsp?jsp的内置对象有哪些?

    这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [什么是jsp? ...

  3. JSP的内置对象以及作用域。

    最近在面试,一些基础的问题总是会被问到,虽然是基础,但是有些东西在工作中用的少,所以就有些记不清了,在面试的时候更因为紧张很容易造成原先知道的知识也会突然忘了的情况发生.所以在重新组织一下jsp的内置 ...

  4. JSP&EL 内置对象

    JSP&EL 内置对象 转载▼   具体的JSP和El中的内置对象见下表,由于我写在了excel中,也不知道怎么把excel发出来,就截了图. 相关问题: Q1: JSP:EL中 pageCo ...

  5. struts访问jsp api内置对象的集中方式

    1 default-action-ref元素改元素用来配置默认的action,如果struts找不到对应的action,就会调用这个默认的action 2 dmi处理方式是通过请求action中的一个 ...

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

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

  7. 菜鸟日记之JSP二 内置对象的理解

    ·最近学习JSP了,对编程和网络又有了一些理解.无论是现实中人与人的交流,还是网络世界的接触,都是在相互表达自己的意思让别人知道,并理解对方的信息.然后我们知道的事情不断的变多,会又交杂出新的内容,不 ...

  8. jsp的内置对象

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

  9. day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)

    day12 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1="" attr2="" %>,一般都会把JSP指令放到JSP文件 ...

随机推荐

  1. Opencv3.4.5安装包

    这个资源是Opencv3.4.5安装包,包括Windows软件包,Android软件包,IOS软件包,还有opencv的源代码:需要的下载吧. 点击下载

  2. Leetcode 668.乘法表中第k小的数

    乘法表中第k小的数 几乎每一个人都用 乘法表.但是你能在乘法表中快速找到第k小的数字吗? 给定高度m .宽度n 的一张 m * n的乘法表,以及正整数k,你需要返回表中第k 小的数字. 例 1: 输入 ...

  3. 201621123033 《Java程序设计》第2周学习总结

    1. 本周学习总结 ·学习了String类的特点,以及其与字符数组的关系等等. ·常量池的相关概念. ·包装类的特点. 2. 书面作业 1. String-使用Eclipse关联jdk源代码 1.1 ...

  4. hdu1877进制转换

    #include <stdio.h> int m; void Ck(int n) { if(n>=m) Ck(n/m); printf("%d",n%m); } ...

  5. MATLAB矩阵操作大全

    转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...

  6. codeforces gym/100814 humming distance (二进制位数比较)

    Gym - 100814I I. Salem time limit per test 1 second memory limit per test 1024 megabytes input stand ...

  7. 飞思卡尔 HCS12(x) memory map解说

    对于用MCU的人来说,不一定要明白HCS12(x) memory map的机制和联系.因为如果没有系统地学习操作系统和编译原理之类的课程,确实有些难度.并且,对于DG128 XS128这样的MCU,默 ...

  8. python的资源整合

    一位大牛整理的Python资源 Python基本安装: * http://www.python.org/ 官方标准Python开发包和支持环境,同时也是Python的官方网站:* http://www ...

  9. .net framework 2.0使用扩展方法

    .net framework中使用扩展方法,由网摘上看到,是因为编译器将扩展方法带上了ExtensionAttribute特性 要在.net framework 2.0中使用的话,可以自定义一个特性: ...

  10. Avoiding memory leaks in POSIX thread programming, 多线程避免内存泄漏

    默认创建的线程为joinable的,必须调用pthread_join()才可以释放所占的内存 创建分离线程detach, attr 线程函数运行结束,调用pthread_exit 其它线程调用pthr ...