Java教程

java web(JSP技术)

本文主要是介绍java web(JSP技术),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • JSP技术:
    • 1.JSP概述:
      • 1.1 什么是jsp:
      • 为什么会产生jsp技术:
        • 1.2 编写第一个jsp文件: jsp生成java文件,编译成class文件,存在tomcat服务器的work目录。
      • 1.3 JSP运行原理:
    • 2.JSP基本语法
        • 1.1 JSP脚本元素
        • 1.2 JSP注释:
    • 3. JSP 隐式对象
      • 1.2 out对象
      • 1.3 pageContext对象
        • 第一个功能:获取其它八个隐式对象
        • 第二个功能:
          • 操作其它三个域对象:request、session、application.
      • 1.4 exception 对象
      • 4.JSP 动作元素
          • 项目代码
          • 大数据2005 周敏 2020080605048

JSP技术:

1.JSP概述:

1.1 什么是jsp:

它的英文全称 java server pages ,java服务端页面,它是建立在servlet规范基础上的动态网页开发技术。
* java 服务端 页面: 在jsp上可以写java代码,也可以写html标记,它运行在服务器端。
* jsp = java + html + jsp自身的一些东西。

为什么会产生jsp技术:

        因为在早期没有jsp时,需要servlet向页面写数据,比较麻烦,所以就产生了jsp技术,
	jsp最大的特点:可以非常简单的书写页面html。

   jsp其实它的本质是servlet: 可以看到jsp 继承了 HttpJspBase 继承  HttpServlet。

1.2 编写第一个jsp文件: jsp生成java文件,编译成class文件,存在tomcat服务器的work目录。

    注意:修改jsp的默认编码格式:window---------->preferenes-----> 搜索 jsp -----> 选中编码 进行修改

1.3 JSP运行原理:

jsp--》java---》 .class

     1.通过浏览器首次访问jsp时
     2.JSP容器会生成对应的Servlet文件,也就是.java文件
     3.JSP容器,会把java文件编译对应的class文件
     4.JSP容器,会生成对应的servlet对象
     5.通过生成的servlet对象,去处理浏览器发送的请求,响应数据给浏览器。

2.JSP基本语法

1.1 JSP脚本元素

  在jsp页面书写java的三种形式:
	1.可以声明语句和方法
	2.可以书写java代码段
	3.可以书写表达式
   1. JSP Scriptlets:对应的位置生成在 _jspService方法内部。
      在jsp页面里可以书写java代码片段,基本语法:<%  java代码片段   %>
   2. JSP 声明语句:对应的位置生成在了成员位置。
      在jsp里面可以书写变量和方法:基本语法:
	<%!
		定义变量或者方法
	 %>
   3. JSP 表达式:对应的位置生成在 _jspService方法内部。
      在jsp页面,可以输入一个结果,基本语法:<%=表达式 %>,其实就等同于out.print(); ,注意:表达式后面不能书写分号

1.2 JSP注释:

     在jsp里面,可以书写html,可以书写java,可以书写jsp自身的一些内容。
     在jsp里面写注释三种形式:
     >>> 1. html注释:<!-- html注释-->:在任何地方都存在了。
     >>> 2.java注释:单行,多行,文档注释:它存在jsp页面,也存在java文件里面,对应生成的html就消失了
     >>> 3. jsp注释: <%-- jsp注释-->: 只存在jsp页面,在生成对应的java文件时,它就消失了。

3. JSP 隐式对象

 ### 1.1 隐式对象概述:
	什么是隐式对象:在jsp页面里面,jsp提供了一些对象,不用咱们自己创建,可以直接使用的对象。
	jsp常见的九大隐式对象:
		 request: HttpServletRequest,请求对象,它同时也是域对象,作用范围一次请求
		 response:HttpServletResponse,响应对象
		 session: HttpSession ,会话对象,它同时也是域对象,作用范围一次会话
		 application:ServletContext,上下文对象,它同时也是域对象,作用范围整个项目
		 config:ServletConfig,配置对象
		 out:JspWriter,其实和PrintWriter作用差不多。
		 page:Object ,代表当前jsp的页面对象
		 pageContext:PageContext ,jsp容器
		 exception:Throwable,异常对象,用来捕获异常信息。
			   只有当前jsp页面有isErrorPage="true"这个属性时,才能使用exception对象。

1.2 out对象

out对象在输出内容到网页上面去,最终是通过reponse缓冲区给输出的。

1.3 pageContext对象

第一个功能:获取其它八个隐式对象

	>>> 1.获取请求对象:getRequest();
	>>> 2.获取响应对象:getResponse();
	>>> 3.获取输出对象:getOut();
	-------------

第二个功能:

操作其它三个域对象:request、session、application.
 pageContext也是一个域对象:作用范围在当前jsp页面。
 操作其它三个域对象的方法:
  1.存值:setAttribute(String key,Object obj,int scope);
     APPLICATION_SCOPE :对应的是application
     REQUEST_SCOPE: 对应的是request
     SESSION_SCOPE:对应的是session
     PAGE_SCOPE:对应的是自己 pageContext
  2.取值:getAttribute(String key,int scope);

  结论:在pageContext域对象使用findAttribute方法获取值,进行了全域查找,
	查找的范围:pageContext--->request----->session----->application
	首先找域作用范围小的对象,如果有值获取到,停止向下查找,如果不存在对应的值,就继续向下寻找。

1.4 exception 对象

   它是用来捕获异常信息的。
   使用它通常会用到两个属性:
   >>> errorPage:属性对应的值,处理异常信息的页面,就是说在当前页面发生了异常,跳转到处理异常信息的页面
       比如:
     <%@ page language="java" contentType="text/html; charset=UTF-8"
		    pageEncoding="UTF-8" errorPage="error.jsp"%>
		<!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=UTF-8">
		<title>Insert title here</title>
		</head>
		<body>
			<%
				int a=3;
				int b=0;
			%>
			输出:<%=(a/b) %>
 >>> isErrorPage: 属性对应的值是true或者false,如果为true,在当前页面可以使用exception对象
  比如:
 <%@ page language="java" contentType="text/html; charset=UTF-8"
		    pageEncoding="UTF-8" isErrorPage="true"%>
			<!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=UTF-8">
			<title>Insert title here</title>
			</head>
			<body>
				输出异常信息:  <%=exception.getMessage() %>
			</body>
			</html>

4.JSP 动作元素

1.1 <jsp:include> 动作元素:动态包含
    动态包含:把其它资源页面的内容,合并到当前要包含的页面,最后一块输出。
    基本语法格式:<jsp:include page="被包含页面的url" flush="true或者false"><jsp:include>
    动态包含特点:多个页面的内容合并输出,多个jsp页面生成多个java文件,编译成多个class文件
    静态包含特点:多个页面的内容合并输出,多个jsp页面最终生成一个java文件,编译一个class文件。

1.2 <jsp:forward>动作元素:请求转发。
     它的作用实现请求转发,效果等同于RequestDispathcer对象的forward方法。
     基本语法格式:<jsp:forward page="转发页面的url地址"></jsp:forward>
     转发页面的url地址:不需要携带项目名称,因为转发动作是服务器内部行为。
项目代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 date.jsp页面用来输出当前时间
 <% out.println(new java.util.Date().toLocaleString()) ;%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 用来显示错误信息:
 <br/>
 周敏,大数据2005,2020080605048
<%=exception.getMessage()%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<%!
  int a=1;
  int b=2;
%>
<%!
    public String zhoumin(){
	String str = "周敏2020080605048";
	return str;
}
%>
<br/>
<body>
<%
    out.print(a+b);
%>
<br/>
<% response.getWriter().print("周敏2020080605048"); %>
<br/>
<%
    out.println(zhoumin());
%>
<br/>
<br/><br/><br/>
<%=a+b%>
<br/>
<%=zhoumin() %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 html内容
 <! --html内容注解 -->
 
   <%
       //java 注解
       System.out.print("java 注解");
   
    
   
   %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="error.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <%
      int a=3;
      int b=0;
 %>
      输出:
      <%=(a/b) %>>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
dashuju2005
<%response.getWriter().print("大数据2005 周敏 2020080605048") ;%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 我是include页面,下面是我包含进来的页面
 <%@ include file="date.jsp" %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
out.println("first.line <br/>");
response.getWriter().println("second.line <br/>");
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
    //req.setAttribute("dashuju2005","zm2020080605048");
    pageContext.setAttribute("dashu11","pagecontext",PageContext.PAGE_SCOPE);
    pageContext.setAttribute("dashu22","REQUEST",PageContext.REQUEST_SCOPE);
    pageContext.setAttribute("dashu33","SESSION",PageContext.SESSION_SCOPE);
    pageContext.setAttribute("dashu","APPLICATION",PageContext.APPLICATION_SCOPE);
    
%>
<%=pageContext.findAttribute("dashu") %>
<hr>
<%=(String) req.getAttribute("dashu") %>
</body>
</html>

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述

大数据2005 周敏 2020080605048
这篇关于java web(JSP技术)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!