版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/Mythology_px/article/details/82595727
out对象
向客户端输出数据
<%--指令--%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>out内置对象</title>
</head>
<body>
<%--脚本--%>
<%
/*
print():可将各种类型的数据转换成字符串的形式输出
write():只能输出字符、字符数组和字符串等与字符相关的数据
两者都可以输出数据,输出的字符串数据浏览器都可以解析HTML标签
*/
//out.write(3306);
out.write("墨渐生微");
out.write("<h1>欢迎关注</h1>");
out.print(8080);
out.print("Micro");
out.print("<h1>Micro</h1>");
%>
</body>
</html>
request请求对象
主要用于处理客户端请求
post方式:中文编码处理
客户请求端
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>表单post提交方式</title>
</head>
<body>
<form action="post_rec.jsp" method="post">
帐号:<input type="text" name="text" /><br/><br/>
密码:<input type="password" name="pwd"/><br/><br/>
<input type="submit"/>
</form>
</body>
</html>
服务接收端
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>处理表单post方式请求</title>
</head>
<body>
<%
//处理中文时,应在获取信息之前设置编码
request.setCharacterEncoding("utf-8");
//根据提交的form表单名称获取提交数据
String text = request.getParameter("text");
String pwd = request.getParameter("pwd");
//输出数据
out.write("帐号:"+text+"<br/>");
out.println("密码:"+pwd);
%>
</body>
</html>
get方式:中文编码处理
客户请求端
扫描二维码关注公众号,回复:
3442973 查看本文章
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>表单get提交方式</title>
</head>
<body>
<form action="get_rec.jsp" method="get">
帐号:<input type="text" name="text" /><br/><br/>
密码:<input type="password" name="pwd"/><br/><br/>
<input type="submit"/>
</form>
</body>
</html>
服务接收端
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>处理表单get方式请求</title>
</head>
<body>
<%
//根据提交的form表单名称获取提交数据
String text = request.getParameter("text");
String pwd = request.getParameter("pwd");
//将接收的数据进行字节转码(通信编码)
byte[] btext = text.getBytes("ISO-8859-1");
byte[] bpwd = pwd.getBytes("ISO-8859-1");
//将字节数组进行编码转换
String stext = new String(btext,"utf-8");
String spwd = new String(bpwd,"utf-8");
//输出数据
out.write("帐号:"+stext+"<br/>");
out.println("密码:"+spwd);
%>
</body>
</html>
request常用方法
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>request_browser端注册</title>
</head>
<body>
<!-- 通过from表单注册信息,提交向服务端发送请求 -->
<h1>注册</h1>
<form action="request_server.jsp" method="post">
帐号:<input type="text" name="user" /><br /><br />
密码:<input type="password" name="pwd" /><br /><br />
爱好:
<input type="checkbox" name="hobby" value="足球" />足球
<input type="checkbox" name="hobby" value="篮球" />篮球
<input type="checkbox" name="hobby" value="羽毛球" />羽毛球
<input type="checkbox" name="hobby" value="乒乓球" />乒乓球
<br /><br />
<input type="submit" />
</form>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>request_server服务端</title>
</head>
<body>
<%
/*
服务端接收用户端发送的请求
*/
// 设置用户请求端的字符编码
request.setCharacterEncoding("utf-8");
// 接收帐号,密码信息 :调用请求对象的getParameter()方法,根据name属性的值获取value值
String user = request.getParameter("user");
String pwd = request.getParameter("pwd");
// 接收爱好信息 :调用请求对象的getParameterValues()方法,根据checkbox的name获取其所有的值
String[] hobby = request.getParameterValues("hobby");
//对接收的值进行输出
out.write("帐号:"+user+"<br />密码:"+pwd);
out.write("<br />爱好:");
for(String h : hobby){
out.write(h+" ");
}
%>
</body>
</html>
response响应对象
响应客户请求并像客户端输出信息
void sendRedirect(String location) : 将请求重新定位到一个不同的URL
session会话对象
浏览器和服务器之前的一次通话, 其中包含多次请求, 响应的过程; session对象用来存储有关用户会话的所有信息
application对象
用于实现用户之间的数据共享,将数据存储在服务器
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>存放数据</title>
</head>
<body>
<%
// 在会话对象中存储数据,以键值对的方式,将一个对象的值存放到session对象中
session.setAttribute("name", "password");
//在application对象中存储数据,以键值对的方式,将一个对象存放到服务器
application.setAttribute("user", "共享");
%>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>获取数据</title>
</head>
<body>
<%
/*
session会话对象的数据,只作用于本次会话,会话结束后,数据将销毁
application对象是将数据存放于服务其,可以实现用户数据共享
*/
//session: 根据名称获取存放对象的值
String name = (String)session.getAttribute("name");
out.write(name+"<br />");
//application: 根据名称获取存放对象的值
String user = (String)application.getAttribute("user");
out.write(user+"<br />");
%>
</body>
</html>
页面跳转
请求转发与重定向
浏览器和服务端
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>浏览器客户端</title>
</head>
<body>
<form action="server.jsp" method="post">
账号:<input type="text" name="user" /><br /><br />
密码:<input type="password" name="pwd" /><br /><br />
<input type="submit" />
</form>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>服务器端</title>
</head>
<body>
<%
// 获取用户端输入的账号密码做验证
String user = request.getParameter("user");
String psd = request.getParameter("pwd");
if(user.equals("Micro") && psd.equals("123456")){
request.setAttribute("user", "Micro");
//正确则跳转ok页面,请求转发
// ① 获取请求转发对象
RequestDispatcher rd = request.getRequestDispatcher("ok.jsp");
// ② 将响应发送给请求(跳转)
rd.forward(request,response);
}else{
request.setAttribute("other","error");
//错误则跳转error页面,重定向
// ① 响应发送更改对象
response.sendRedirect("error.jsp");
}
%>
</body>
</html>
跳转页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ok</title>
</head>
<body>
<h1>登陆成功,欢迎进入</h1>
<%
/*
请求转发:
一次请求,浏览器地址栏不变化,可跳转同一web项目页面,
跳转后页面与原跳转页面在同一请求中,可共享request存储空间(可以输出user对应的内容)
*/
String name=(String)request.getAttribute("user");
System.out.print(name);
%>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>error</title>
</head>
<body>
<h1>登陆失败,密码或账号不正确</h1>
<%
/*
重定向:
两次请求,地址栏发生改变,可以跳转到任意地址
跳转后页面与原跳转页面不在同一请求中,不可共享request存储空间(输出为null)
*/
String other=(String)request.getAttribute("other");
System.out.print(other);
%>
</body>
</html>
Cookie对象
Web服务器保存在客户端的一系列文本信息,Cookie对象不是JSP内置对象
<%@ page language="java" import="java.util.*,javax.servlet.http.Cookie" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>服务器端写入Cookie</title>
</head>
<body>
<%
// ① 导包javax.servlet.http.Cookie
// ② 创建Cookie对象
Cookie cookie = new Cookie("user","Micro");
// 设置Cookie的有效期
cookie.setMaxAge(60*60); // 单位是s
// ③ 写入Cookie
response.addCookie(cookie);
%>
<h1>response服务端写入Cookie</h1>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Browser端读取Cookie</title>
</head>
<body>
<%
// ① request获取所有Cookie对象
Cookie[] cookies = request.getCookies();
// ② 读取Cookie
for(int i=0 ;i<cookies.length;i++){
// ③ 获取Cookie对象的名字
if(cookies[i].getName().equals("user")){
// ④ 获取Cookie对象的值
System.out.println(cookies[i].getValue());
}
}
%>
<h1>request用户端读取Cookie</h1>
</body>
</html>
include指令
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>include指定</title>
</head>
<body>
<h1>墨渐生微</h1>
<%--include指令:包含另外一个jsp页面,先替换后统一输出--%>
<%@ include file="index.jsp" %>
<h2>欢迎关注</h2>
</body>
</html>