JSP的内置对象(上)
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] + " ");
}
}
%>
</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的内置对象(上)的更多相关文章
- JSP的执行原理、JSP的内置对象、四大作用域解析、MVC模式理解>从零开始学JAVA系列
目录 JSP的执行原理.JSP的内置对象.四大作用域解析.MVC模式理解 JSP的执行原理 这里拿一个小例子来解析JSP是如何被访问到的 首先将该项目部署到tomcat,并且通过tomcat启动 通过 ...
- 什么是jsp?jsp的内置对象有哪些?
这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [什么是jsp? ...
- JSP的内置对象以及作用域。
最近在面试,一些基础的问题总是会被问到,虽然是基础,但是有些东西在工作中用的少,所以就有些记不清了,在面试的时候更因为紧张很容易造成原先知道的知识也会突然忘了的情况发生.所以在重新组织一下jsp的内置 ...
- JSP&EL 内置对象
JSP&EL 内置对象 转载▼ 具体的JSP和El中的内置对象见下表,由于我写在了excel中,也不知道怎么把excel发出来,就截了图. 相关问题: Q1: JSP:EL中 pageCo ...
- struts访问jsp api内置对象的集中方式
1 default-action-ref元素改元素用来配置默认的action,如果struts找不到对应的action,就会调用这个默认的action 2 dmi处理方式是通过请求action中的一个 ...
- Java遇见HTML——JSP篇之JSP内置对象(上)
一.JSP内置对象简介 1.1.内置对象简介 JSP内置对象是WEB容器中创建的一组对象,可以直接使用不需要new,如截图中的out 对象. JSP有九大内置对象: 五大常用对象: out.reque ...
- 菜鸟日记之JSP二 内置对象的理解
·最近学习JSP了,对编程和网络又有了一些理解.无论是现实中人与人的交流,还是网络世界的接触,都是在相互表达自己的意思让别人知道,并理解对方的信息.然后我们知道的事情不断的变多,会又交杂出新的内容,不 ...
- jsp的内置对象
JSP内置对象即无需声明就可以直接使用的对象实例,在实际的开发过程中,比较常用的JSP对象有request,response,session,out和application等,笔者在本文章中将简单介绍 ...
- day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)
day12 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1="" attr2="" %>,一般都会把JSP指令放到JSP文件 ...
随机推荐
- django QuerySet 的常用API
为了加深对queryset对象api的了解,我们建立了以下示例模型: from django.db import models class Author(models.Model): "&q ...
- Python字符串相关
#字符串的相关操作 #基本操作 #+ 字符串连接操作 str1 = '来是come走是go' str2 = '点头yes摇头no' result = str1 + str2 print(result) ...
- P2215 [HAOI2007]上升序列
题目描述 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1<x2<…<xm) 且(ax1<ax2<…<a ...
- 路由器配置PPP协议 CHAP验证 PAP验证
路由器配置PPP协议 CHAP验证 PAP验证 来源 https://www.cnblogs.com/tcheng/p/5967485.html PAP是两次握手,明文传输用户密码进行认证:CHAP是 ...
- 2017 多校5 hdu 6093 Rikka with Number
2017 多校5 Rikka with Number(数学 + 数位dp) 题意: 统计\([L,R]\)内 有多少数字 满足在某个\(d(d>=2)\)进制下是\(d\)的全排列的 \(1 & ...
- golang effective 翻译
参考 Effective Go 官方文档 其他参考译文 https://studygolang.com/articles/3228 http://docscn.studygolang.com/doc/ ...
- Printed Circuit Board (board)
Printed Circuit Board (board) 题目描述 给出一个N个顶点的简单多边形,对于每个顶点,假如它和原点连成的线段只在这个顶点处和多边形相交,就称为满足要求的顶点.你的任务是输出 ...
- 乌班图 root权限获取
点击左侧终端标 2 出现命令提示符 3 首先输入:sudo passwd root(设置root密码) 4 输入当前系统的账户密码(账户:admin-pc的密码) 5 输入新的root密码,确认新密码 ...
- 【ZOJ4063】Tournament(构造)
题意:n个人要打m轮比赛 每一轮每个人都要有一个对手.而且每个对手只能打一次.假设a与b打了,c与d打了, 那么后面的任意一轮如果a与c打了,那么b就必须和d打 问是否存在方案,输出字典序最小的一组, ...
- [ CodeVS冲杯之路 ] P1091
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1091/ 大家都写的 DFS,然而我想到了一种贪心的做法,重点是可以A 普遍的贪心是每次删掉该深度子树最大的点,但是如果 ...