out是内置对象,不用new来创建。

把饭盛到碗里,碗相当于程序中的缓冲区。

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>JSP内置对象</title>
</head>
<body>
<h1>out内置对象</h1>
<%out.println("<h2>打马赛克<h2>");//<h1> - <h6> 标签可定义标题。<h1> 定义最大的标题。<h6> 定义最小的标题。out.println("打马赛克<br>");out.println("打马赛克<br>");out.println("打马赛克<br>");out.println("打马赛克<br>");
%>缓冲区大小:<%=out.getBufferSize() %><br>缓冲区剩余大小:<%=out.getRemaining() %><br>是否自动清空缓冲区:<%=out.isAutoFlush() %><br>
</body>
</html>

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>JSP内置对象</title>
</head>
<body>
<h1>out内置对象</h1>
<%out.println("<h2>打马赛克<h2>");//<h1> - <h6> 标签可定义标题。<h1> 定义最大的标题。<h6> 定义最小的标题。out.println("打马赛克<br>");out.println("打马赛克<br>");out.flush(); //新增out.println("打马赛克<br>");out.println("打马赛克<br>");
%>缓冲区大小:<%=out.getBufferSize() %><br>缓冲区剩余大小:<%=out.getRemaining() %><br>是否自动清空缓冲区:<%=out.isAutoFlush() %><br>
</body>
</html>

新增out.flush方法结果:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>JSP内置对象</title>
</head>
<body>
<h1>out内置对象</h1>
<%out.println("<h2>打马赛克<h2>");//<h1> - <h6> 标签可定义标题。<h1> 定义最大的标题。<h6> 定义最小的标题。out.println("打马赛克<br>");out.println("打马赛克<br>");out.flush();out.clearBuffer(); //新增out.println("打马赛克<br>");out.println("打马赛克<br>");
%>缓冲区大小:<%=out.getBufferSize() %><br>缓冲区剩余大小:<%=out.getRemaining() %><br>是否自动清空缓冲区:<%=out.isAutoFlush() %><br>
</body>
</html>

不会抛出异常。

get方式:

新建两个jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>用户登录</h1><hr><form action="dologin.jsp" name="loginForm" method="get"><table><tr><td>用户名:</td><td><input type="text" name="username"/><td/></tr><tr><td>密码:</td><td><input type="password" name="password"/><td/></tr><tr><td colspan="2"><input type="submit" value="登录"/><td/></tr></table></body>
</html>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>登陆成功</h1><hr>
</body>
</html>

get方式在地址栏上传递用户的信息,在url地址当做可以看到用户提交的信息,安全性较差。

post方式把表单的信息封装到HTML HEADER数据包里。

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>用户登录</h1><hr><form action="dologin.jsp" name="loginForm" method="post"> \\get改为post<table><tr><td>用户名:</td><td><input type="text" name="username"/><td/></tr><tr><td>密码:</td><td><input type="password" name="password"/><td/></tr><tr><td colspan="2"><input type="submit" value="登录"/><td/></tr></table></body>
</html>

地址栏上没有显示用户信息。

通过表单传递用户名:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>用户注册</h1><hr><form name="regForm" action="request.jsp" method="post"><table><tr><td>用户名:</td><td><input type="text" name="username"/><td/></tr><tr><td>爱好:</td><td><input type="checkbox" name="hobby" value="reading"/>读书<input type="checkbox" name="hobby" value="singing"/>唱歌<input type="checkbox" name="hobby" value="swimming"/>游泳<input type="checkbox" name="hobby" value="cooking"/>做饭</td></tr><tr><td colspan="2"><input type="submit" value="登录"/><td/></tr></table></form>
</body>
</html>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>request内置对象</h1>用户名:<%=request.getParameter("username") %>爱好:<%String[] hobby=request.getParameterValues("hobby");for(int i=0;i<hobby.length;i++){out.println(hobby[i]+"&nbsp;&nbsp;");}%>
</body>
</html>

解决中文乱码问题:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>request内置对象</h1><%request.setCharacterEncoding("utf-8");//解决中文乱码问题%>用户名:<%=request.getParameter("username") %>爱好:<%String[] hobby=request.getParameterValues("hobby");for(int i=0;i<hobby.length;i++){out.println(hobby[i]+"&nbsp;&nbsp;");}%>
</body>
</html>

通过url地址、参数传递用户名:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>request内置对象</h1><%request.setCharacterEncoding("utf-8");//解决中文乱码问题%>用户名:<%=request.getParameter("username") %>爱好:<%if(request.getParameterValues("hobby")!=null){String[] hobby=request.getParameterValues("hobby");for(int i=0;i<hobby.length;i++){out.println(hobby[i]+"&nbsp;&nbsp;");}}%>
</body>
</html>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>用户注册</h1><hr><form name="regForm" action="request.jsp" method="post"><table><tr><td>用户名:</td><td><input type="text" name="username"/><td/></tr><tr><td>爱好:</td><td><input type="checkbox" name="hobby" value="reading"/>读书<input type="checkbox" name="hobby" value="singing"/>唱歌<input type="checkbox" name="hobby" value="swimming"/>游泳<input type="checkbox" name="hobby" value="cooking"/>做饭</td></tr><tr><td colspan="2"><input type="submit" value="提交"/><td/></tr></table></form><br><br><a href="request.jsp?username=lisi">测试url传参数</a>
</body>
</html>

<a> 标签定义超链接,用于从一张页面链接到另一张页面。

通过url传参要用户名和爱好一起传递,否则会空指针异常。

解决通过url传递参数的中文乱码问题:

重启tomcat服务器。

保存一个名为password的密码

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>request内置对象</h1><%request.setCharacterEncoding("utf-8");//解决中文乱码问题,无法解决URL传递中文出现的乱码问题request.setAttribute("password","123456");%>用户名:<%=request.getParameter("username") %><br>爱好:<%if(request.getParameterValues("hobby")!=null){String[] hobby=request.getParameterValues("hobby");for(int i=0;i<hobby.length;i++){out.println(hobby[i]+"&nbsp;&nbsp;");}}%><br>密码:<%=request.getAttribute("password") %><br>
</body>
</html>

常用方法:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>request内置对象</h1><%request.setCharacterEncoding("utf-8");//解决中文乱码问题,无法解决URL传递中文出现的乱码问题request.setAttribute("password","123456");%>用户名:<%=request.getParameter("username") %><br>爱好:<%if(request.getParameterValues("hobby")!=null){String[] hobby=request.getParameterValues("hobby");for(int i=0;i<hobby.length;i++){out.println(hobby[i]+"&nbsp;&nbsp;");}}%><br>密码:<%=request.getAttribute("password") %><br>请求体的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></body>
</html>

本机IP地址为动态路径 。

新建response.jsp

<%@ 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 outer=response.getWriter();//获得输出对象outer.println("大家好,我是response对象生成的输出流outer对象");%>

说明response对象获得的writer输出流对象的类型PrintWriter的打印输出时总是提前于内置out对象。

把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>");out.flush();//flush方法强制清空缓冲区,在清空的同时强制把缓冲区的内容写到浏览器上PrintWriter outer=response.getWriter();//获得输出对象outer.println("大家好,我是response对象生成的输出流outer对象");%>

请求重定向:让客户端定义一个新的请求,让这个请求重定向到登录界面(新的资源)。

<%@ 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>");//out.flush();//flush方法强制清空缓冲区,在清空的同时强制把缓冲区的内容写到浏览器上PrintWriter outer=response.getWriter();//获得输出对象outer.println("大家好,我是response对象生成的输出流outer对象");response.sendRedirect("reg.jsp");//请求重定向
%>

访问response.jsp界面:

请求重定向:

response.jsp:

<%@ 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>");//out.flush();//flush方法强制清空缓冲区,在清空的同时强制把缓冲区的内容写到浏览器上PrintWriter outer=response.getWriter();//获得输出对象outer.println("大家好,我是response对象生成的输出流outer对象");//response.sendRedirect("reg.jsp");//请求重定向response.sendRedirect("request.jsp");//请求重定向
%>

reg.jsp:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><h1>用户注册</h1><hr><form name="regForm" action="response.jsp" method="post"><table><tr><td>用户名:</td><td><input type="text" name="username"/><td/></tr><tr><td>爱好:</td><td><input type="checkbox" name="hobby" value="reading"/>读书<input type="checkbox" name="hobby" value="singing"/>唱歌<input type="checkbox" name="hobby" value="swimming"/>游泳<input type="checkbox" name="hobby" value="cooking"/>做饭</td></tr><tr><td colspan="2"><input type="submit" value="提交"/><td/></tr></table></form><br><br><a href="request.jsp?username=星">测试url传参数</a>
</body>
</html>

输出结果:

response.jsp请求重定向到request.jsp, 因为request.jsp是一个新的请求,所以上一次请求中提交的用户名和爱好这些参数无法保存(前一次请求不会保存,地址栏url发生改变)。

请求转发:

<%@ 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>");//out.flush();//flush方法强制清空缓冲区,在清空的同时强制把缓冲区的内容写到浏览器上PrintWriter outer=response.getWriter();//获得输出对象outer.println("大家好,我是response对象生成的输出流outer对象");//response.sendRedirect("reg.jsp");//请求重定向//response.sendRedirect("request.jsp");//请求重定向request.getRequestDispatcher("request.jsp").forward(request,response);//请求转发
%>

输出结果:

地址栏未发生变化。

观看慕课老师milanlover视频JSP内置对象+getpost+request+response+请求转发与请求重定向相关推荐

  1. 观看慕课老师milanlover视频JSP页面生命周期+分别通过脚本和表达式实现九九乘法表

    但是多线程要注意临界资源的共享和保护问题. workplace地址: work地址: 新建项目: 插播一条编译错误: .java:说明有jsp编译生成的字节码文件. 大体上jsp页面的生命周期:Ini ...

  2. 观看慕课老师milanlover视频JSP状态管理+cookie

    创建cookie对象调用它的构造方法,构造方法接收两个参数,是一种键值对描述:键:cookie对象的字符串描述:值:要保存的cookie对象. Value:字符串 The superclass &qu ...

  3. 观看慕课老师milanlover视频JSP基础语法+注释+脚本+声明+表达式

    JSP可理解为Java服务器端页面:是一种动态网站开发技术的标准,同时也是JavaEE的参考标准. v <%@ page language="java" import=&qu ...

  4. JSP内置对象:request、response、out、session、application等内置对象

    Java程序的功能主要是由Java包下的各个类在运行期所产生的对象所提供,并且应用这些对象组织构建程序所需的功能. 所谓JSP内置对象,是指在JSP网页环境之下,用户不需要声明而直接可以在JSP网页中 ...

  5. 观看慕课老师milanlover视频JavaBean+Jsp动作元素+page/request/session/application作用域范围+Model1

    Javabeans类写在src包里. 建一个实体类的po包,建一个用户类. 使用普通方式创建javabean实例: 新建Users.java: package com.po; /*用户类*/ publ ...

  6. 观看慕课老师milanlover视频Tomcat装在Servlet的三种情况+Servlet获取表单数据+Servlet相对路径

    在src新建TestServlet1: package servlet;import java.io.IOException; import java.io.PrintWriter;import ja ...

  7. 观看慕课老师milanlover视频用servlet获取初始化参数+MVC

    新建Index.jsp: <%@ page language="java" import="java.util.*" contentType=" ...

  8. 观看慕课老师milanlover视频include指令+include动作+forward动作+param动作

    format()方法 使用inclue指令包含了一个date页面,在这个页面上显示了 被包含页面的内容. 新建date.jsp: <%@ page language="java&quo ...

  9. 观看慕课老师milanlover视频Servlet+手工编写Servlet+用Eclipse编写Servlet+Servlet执行流程和生命周期

    eclipse 配置JDK HTML <a> 标签的 href 属性 新建MyFirstServletDemo项目: 新建index.jsp: <%@ page language=& ...

最新文章

  1. 升级CommunityServer2.0出现的两个问题的解决方法
  2. java been 字段命名的坑
  3. codeforces1027D
  4. c语言局部变量存在什么区_C语言程序设计变量运用指南 C语言局部变量的存储方式和生存期...
  5. java 数据截断_java – 数据截断:第1行的列’标志’的数据太长
  6. android uboot log,RK3288 Android 8.1系统uboot logo过渡到kernel logo会花一下
  7. 如何设置显示内容而不是显示对象
  8. VS2010解决闪退的方法
  9. 【Vjudge】P558E A Simple Task(线段树暴力)
  10. 世界观的内涵是认识论模型
  11. 2021window10下的IDEA安装
  12. uniapp-路由和navigate跳转
  13. 粗同步 符号同步 matlab,OFDM系统在衰落信道中帧同步算法研究(毕业论文)
  14. java中String.contains方法的使用详解
  15. c语言编程a4988驱动步进电机,A4988 步进电机驱动模块测试
  16. 豆瓣电台WP7客户端 开发记录7
  17. Arduino uno控制蜂鸣器播放音乐(以《大鱼》为例)
  18. 第二证券|卡塔尔给体育烧的钱,不止世界杯
  19. 一招解决电脑卡吧咔吧
  20. 将android studio产生的.gradle .android .androidStudio缓存从默认C盘移动到D盘

热门文章

  1. 2023年湖北住建厅八大员各岗位题库精准小题库-启程别
  2. linux显示文件开头部分内容,Linux 命令 - head: 打印文件的开头部分
  3. Apache 强制 HTTP 全部跳转到 HTTPS
  4. 完美世界手游 一直显示服务器爆满,完美世界手游爆满区怎么进_完美世界手游爆满区进入教程_玩游戏网...
  5. wampserver中配置虚拟主机时AllowOverride设置为all报500错误
  6. 中国9大城市PK! [转]
  7. 好乐买创始人-李树斌
  8. 饶毅:中国存在大量粗制滥造研究生的问题!很多博士不合格!
  9. 网游,陈一舟的左勾拳
  10. i5 9300h和i7 7700hq哪个好