第二章 JSP内置对象

版权声明:本文为博主原创文章,未经博主允许不得转载 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方式:中文编码处理

               客户请求端

<%@ 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>

猜你喜欢

转载自blog.csdn.net/Mythology_px/article/details/82595727