观看慕课老师milanlover视频JSP内置对象+getpost+request+response+请求转发与请求重定向
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]+" ");}%>
</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]+" ");}%>
</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]+" ");}}%>
</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]+" ");}}%><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]+" ");}}%><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+请求转发与请求重定向相关推荐
- 观看慕课老师milanlover视频JSP页面生命周期+分别通过脚本和表达式实现九九乘法表
但是多线程要注意临界资源的共享和保护问题. workplace地址: work地址: 新建项目: 插播一条编译错误: .java:说明有jsp编译生成的字节码文件. 大体上jsp页面的生命周期:Ini ...
- 观看慕课老师milanlover视频JSP状态管理+cookie
创建cookie对象调用它的构造方法,构造方法接收两个参数,是一种键值对描述:键:cookie对象的字符串描述:值:要保存的cookie对象. Value:字符串 The superclass &qu ...
- 观看慕课老师milanlover视频JSP基础语法+注释+脚本+声明+表达式
JSP可理解为Java服务器端页面:是一种动态网站开发技术的标准,同时也是JavaEE的参考标准. v <%@ page language="java" import=&qu ...
- JSP内置对象:request、response、out、session、application等内置对象
Java程序的功能主要是由Java包下的各个类在运行期所产生的对象所提供,并且应用这些对象组织构建程序所需的功能. 所谓JSP内置对象,是指在JSP网页环境之下,用户不需要声明而直接可以在JSP网页中 ...
- 观看慕课老师milanlover视频JavaBean+Jsp动作元素+page/request/session/application作用域范围+Model1
Javabeans类写在src包里. 建一个实体类的po包,建一个用户类. 使用普通方式创建javabean实例: 新建Users.java: package com.po; /*用户类*/ publ ...
- 观看慕课老师milanlover视频Tomcat装在Servlet的三种情况+Servlet获取表单数据+Servlet相对路径
在src新建TestServlet1: package servlet;import java.io.IOException; import java.io.PrintWriter;import ja ...
- 观看慕课老师milanlover视频用servlet获取初始化参数+MVC
新建Index.jsp: <%@ page language="java" import="java.util.*" contentType=" ...
- 观看慕课老师milanlover视频include指令+include动作+forward动作+param动作
format()方法 使用inclue指令包含了一个date页面,在这个页面上显示了 被包含页面的内容. 新建date.jsp: <%@ page language="java&quo ...
- 观看慕课老师milanlover视频Servlet+手工编写Servlet+用Eclipse编写Servlet+Servlet执行流程和生命周期
eclipse 配置JDK HTML <a> 标签的 href 属性 新建MyFirstServletDemo项目: 新建index.jsp: <%@ page language=& ...
最新文章
- 升级CommunityServer2.0出现的两个问题的解决方法
- java been 字段命名的坑
- codeforces1027D
- c语言局部变量存在什么区_C语言程序设计变量运用指南 C语言局部变量的存储方式和生存期...
- java 数据截断_java – 数据截断:第1行的列’标志’的数据太长
- android uboot log,RK3288 Android 8.1系统uboot logo过渡到kernel logo会花一下
- 如何设置显示内容而不是显示对象
- VS2010解决闪退的方法
- 【Vjudge】P558E A Simple Task(线段树暴力)
- 世界观的内涵是认识论模型
- 2021window10下的IDEA安装
- uniapp-路由和navigate跳转
- 粗同步 符号同步 matlab,OFDM系统在衰落信道中帧同步算法研究(毕业论文)
- java中String.contains方法的使用详解
- c语言编程a4988驱动步进电机,A4988 步进电机驱动模块测试
- 豆瓣电台WP7客户端 开发记录7
- Arduino uno控制蜂鸣器播放音乐(以《大鱼》为例)
- 第二证券|卡塔尔给体育烧的钱,不止世界杯
- 一招解决电脑卡吧咔吧
- 将android studio产生的.gradle .android .androidStudio缓存从默认C盘移动到D盘
热门文章
- 2023年湖北住建厅八大员各岗位题库精准小题库-启程别
- linux显示文件开头部分内容,Linux 命令 - head: 打印文件的开头部分
- Apache 强制 HTTP 全部跳转到 HTTPS
- 完美世界手游 一直显示服务器爆满,完美世界手游爆满区怎么进_完美世界手游爆满区进入教程_玩游戏网...
- wampserver中配置虚拟主机时AllowOverride设置为all报500错误
- 中国9大城市PK! [转]
- 好乐买创始人-李树斌
- 饶毅:中国存在大量粗制滥造研究生的问题!很多博士不合格!
- 网游,陈一舟的左勾拳
- i5 9300h和i7 7700hq哪个好