蓝旭第四次培训——JSP

2023-10-14 14:50
文章标签 jsp 第四次 培训 蓝旭

本文主要是介绍蓝旭第四次培训——JSP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JSP

  • 1.JAVA WEB
    • 1.1 啥是web应用程序
    • 1.2 静态网页与动态网页
    • 1.3 手写一个web
  • 2.JSP
    • 2.1 JSP页面元素构成
      • 2.1.1 JSP指令(着重讲page、include)
      • 2.1.2 JSP注释
      • 2.1.3 JSP脚本(在jsp中执行的java代码)
      • 2.1.4 JSP声明(在jsp中定义变量,方法)
      • 2.1.5 JSP表达式
    • 2.2 JSP页面生命周期
    • 2.3 JSP内置对象
      • 2.3.1 out对象
      • 2.3.2 request对象
      • 2.3.3 response对象
      • 2.3.4 session对象
      • 2.3.5 application对象
      • 2.3.6 page 、 pageContext 、config 、 exception 对象
  • 3.JavaBean

1.JAVA WEB

1.1 啥是web应用程序

  • 通过web访问的程序,用户有网、浏览器就行。

    eg.京东、天猫

1.2 静态网页与动态网页

  • 静态网页
  1. 网页内容不变
  2. 技术:HTML,CSS

  • 动态网页
  1. 网页内容通过程序动态显示、更新
  2. 技术:HTML,CSS,数据库,一门高级语言——Java,主流的动态网页脚本技术——JSP

  • 写web,我们需要啥???
  1. jdk( Java 语言的软件开发工具包)
  2. idea
  3. tomcat服务器:属于JSP/Servlet容器,如下
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/50650e4a7a7341a9aadd5d53539c8dd2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd2VpeGluXzU3Mjk2NzIz,size_20,color_FFFFFF,t_70,g_se,x_1
  • bin目录中,startup.shstartup.bat 的区别???
    在这里插入图片描述

  • tomcat的bin文件夹中存在一份.bat文件和相对应的.sh文件,一个是为了在window系统上执行的文件,另一个是linux下的批处理文件。例如:startup.bat和startup.sh

  • lib目录中,jar包就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法。

1.3 手写一个web

课上示范:创建项目、弄tomcat、改路径名字、改index名字、导包

2.JSP

2.1 JSP页面元素构成

2.1.1 JSP指令(着重讲page、include)

在这里插入图片描述

  • page指令:

在这里插入图片描述
刚刚新建的index.jsp上面有

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

text/html:表明这是一个文本文件
utf-8:字符集支持中文

  • include指令:

当前 JSP 页面与静态引入的文件紧密结合为一个 Servlet。这些文件可以是 JSP 页面、HTML 页面、文本文件等。

<%@ include file="haha.jsp"%>
<%@ include file="haha.txt"%>
<%@ include file="haha.html"%>
  • taglib指令:

使用标签库定义新的自定义标签,在 JSP 页面中启用定制行为。

<%@ taglib uri="uri" prefix="prefixOfTag" %>

2.1.2 JSP注释

在这里插入图片描述
其中JSP脚本注释,也是在客户端不可见

课上示范

2.1.3 JSP脚本(在jsp中执行的java代码)

语法:

<% java代码 %>

例如:

<% out.println("大家好") %>

2.1.4 JSP声明(在jsp中定义变量,方法)

语法:

<%! java代码 %>

例如:

<%!String s="小吴";int add(int x,int y){return x+y;}
%>

课上示范:

  • out.print()out.println()的区别???

println()虽然看似是换行,但转成网页之后,这种换行被认为是空格,所以输出的内容仍然在一行,用空格分隔,但右键点击页面查看源代码时,却能看出换行竟然对源代码起作用了。如果在页面上需要换行的话,可以使用<br/>

<%out.println("haha"+"<br>");out.println(s+"<br>");out.println(add(1,2)+"<br>");
%>

2.1.5 JSP表达式

语法:

<%=表达式 %>//表达式不以分号结束

例如:

你好<%=s%><br>
答案是<%=add(1,2)%>

2.2 JSP页面生命周期

在这里插入图片描述

  • 编译阶段:
    servlet 容器编译 servlet 源文件,生成 servlet 类
(1)解析JSP文件。
(2)将JSP文件转为servlet。
(3)编译servlet。
  • 初始化阶段:
    jsp页面第一次被请求的时候就执行jspInit()方法,把servlet常驻留与内存,下面针对用户每一个请求,分别去创建一个线程,去调用jspService()方法
public void jspInit(){// 初始化代码
}
//一般来讲程序只初始化一次
  • 执行阶段:
    当 JSP 网页完成初始化后, JSP 引擎将会调用 jspService() 方法。jspService() 方法需要一个 HttpServletRequest 对象和一个 HttpServletResponse 对象作为它的参数,就像下面这样:
void jspService(HttpServletRequest request,HttpServletResponse response)
{// 服务端处理代码
}
// jspService() 方法在每个 request 中被调用一次并且负责产生与之相对应的 response
  • 销毁阶段:
    调用与 JSP 对应的 servlet 实例的销毁方法,然后销毁 servlet 实例,需要执行任何清理工作时复写 jspDestroy() 方法,比如释放数据库连接或者关闭文件夹等等。jspDestroy() 方法的格式如下:
public void jspDestroy()
{// 清理代码
}

2.3 JSP内置对象

内置对象简介

jsp内置对象是web容器创建的一组对象,不使用new关键字创建就可以使用
在这里插入图片描述

2.3.1 out对象

out对象是JspWriter类的实例,是向客户端输出内容常用的对象

常用方法:
void println() //向客户端打印字符串
void clear() //清除缓冲区的内容,在 flush 之后调用会抛出异常
void clearBuffer() //清除缓冲区的内容,在 flush 之后调用不会抛出异常
void flush() //将缓冲区内容输出到客户端
int getBufferSize() //返回缓冲区字节数的大小,如不设缓冲区则为 0
int getRemaining() //返回缓冲区还剩余多少可用
boolean isAutoFlush() //返回缓冲区满时,是自动清空还是抛出异常
void close() //关闭输出流

注意:

  1. flush方法把缓冲区内容给到客户端后,缓冲区被提交的部分会被清空,这样我们剩余缓冲区就会变大
  2. 若在flush后面使用clear方法,会报异常,那么clear之后的内容就不会被执行
  3. flushclearclearBuffer的区别???
    flush:缓冲区给客户端,再清空
    clear:直接清空,在flush后面报错
    clearBuffer:直接清空,在flush后面不报错

2.3.2 request对象

表单提交方式(填在method里面)

方式说明
get以明文方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不能超过2KB。安全性较低,但效率比post高。适合提交数据量不大,安全性不高的数据。比如:搜索,查询
post将用户提交的信息封装在HTML HEADER内。适合提交数据量大,安全性高的用户信息。比如:注册、修改、上传。

request对象:

客户端的请求信息被封装在 request 对象中,通过他才能了解到客户的需求,然后抛出响应。它是HttpServletRequest类的实例,request对象具有请求域:即完成客户端的请求之前,该对象一直有效。

常用方法:
String getParameter(String name)//返回此 request 中 name 指定的参数,若不存在则返回 null
String[] getParameterValues(String name)//返回指定名称的参数的所有值,若不存在则返回 null
void setAttribute(String name,Object o)//存储属性
Object getAttribute(String name)//返回名称为 name 的属性值,如果不存在则返回 null
void setCharacterEncoding()//设置 request 的字符编码集名称String getContentType()//返回 request 主体的 MIME 类型,若未知则返回 null
String getProtocol()//返回此 request 所使用的协议名和版本
int getServerPort()//返回服务器端口号
int getContentLength()//返回 request 主体所包含的字节数,若未知的返回 -1
String getRemoteAddr()//返回客户端的 IP 地址
String getContextPath()//返回 request URI 中指明的上下文路径

2.3.3 response对象

response对象包含了响应客户请求的有关对象,具有作用域:即访问一个页面时,该页面的response对象只能对这次访问有效,其他页面的response对象对该页面无效

常用方法:
PrintWriter getWriter()//返回客户端输出字符的一个对象
void setContentType(String type)//设置响应的内容的类型,如果响应还未被提交的话
void sendRedirect(String location)//使用指定的 URL 向客户端发送一个临时的间接响应

注意:

  1. PrintWriter 的对象总是比内置out对象先输出。除非用out.flush()提前交上去
  2. response.sendRedirect(String location),请求重定向到一个页面。重定向之前不能out.flush(),不然会报错,失效

2.3.4 session对象

  1. session表示客户端与服务器的一次会话。eg.Web中的session指的是用户从打开浏览器到关闭所经过的这段时间
  2. 服务器内存中保存着不同用户的不同session :为什么要保存?因为当一个客户访问一个服务器时,可能在这个服务器的几个页面切换跳转,需要让服务器知道这是一个用户
常用方法:
long getCreationTime()//返回 session 创建时间
public String getId()// 返回 session 创建时 JSP 引擎为他设的唯一 ID 号
public Object setAttribute(String name,Object value)//使用指定名称将对象绑定到此会话
public Object getAttribute(String name)//返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,返回 null
String[] getValueNames()//返回一个包含此 session 中所有可用属性的数组
int getMaxInactiveInterval()//返回两次请求间隔多长时间此 session 被取消(单位秒)
  1. session的生命周期
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.3.5 application对象

  1. application对象实现用户间数据共享,可存放全局变量
  2. application作用域:开始于服务器启动,终止于服务器关闭
常用方法:
public void setAttribute(String name,Object value)//使用指定名称将对象绑定到此会话
public Object getAttribute(String name)//返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,返回 null
Enumeration getAttributeNames()//返回所有可用属性名的枚举
String getServerInfo()//返回 JSP(Servlet)引擎名及版本号

2.3.6 page 、 pageContext 、config 、 exception 对象

  1. page 对象就是指向当前 JSP 页面本身,有点像类中的 this ,它是 java.lang.Object 类的实例。
  2. pageContext 对象提供了对 JSP 页面内所有对象及名字空间的访问,它可以访问到本页所在的 session ,也可以取本页所在的 application 的某一属性值。
  3. config 对象是在一个 Servlet 初始化时, JSP 引擎向它传递信息用的,此信息包括 Servlet 初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个 ServletContext 对象)。
  4. exception 对象是一个异常对象,到一个页面在运行过程中发生了异常,就产生这个对象。如果一个 JSP 页面要应用这个对象,就必须把page指令中的 isErrorPage 设为 true ,否则无法通过编译。

3.JavaBean

符合某种规范的Java类
在这里插入图片描述

  • jsp页面中如何使用Javabeans
  1. 像使用普通java类一样,创建javabean实例
  2. 用jsp动作标签使用javabean(useBeanssetPropertygetProperty动作)

  • useBean
语法:
<jsp:useBean id="唯一标志" class="java类名" scope="作用范围" />

  • setProperty
语法:
<jsp:setProperty name="JavaBean实例名" property="*" />//与表单有关
<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名" /> //与表单有关
<jsp:setProperty name="JavaBean实例名" property="JavaBean属性名" value=" BeanValue"/>//手工设置
<jsp:setProperty name="JavaBean实例名" property="propertyName" param="request对象中参数名" />//与request参数有关

  • getProperty
语法:
<jsp:getProperty name="JavaBean实例名" property="属性名" />

  • Javabean的四个作用域范围(scope)
  1. page//当前页面有效
  2. request//可通过HttpRequest.getAttribute()方法获得JavaBean对象
  3. session//可通过HttpSession.getAttribute()方法获得JavaBean对象
  4. application//可通过application.getAttribute()方法获得JavaBean对象

这篇关于蓝旭第四次培训——JSP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/211231

相关文章

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

内卷时代无人机培训机构如何做大做强

在当今社会,随着科技的飞速发展,“内卷”一词频繁被提及,反映了各行业竞争日益激烈的现象。对于无人机培训行业而言,如何在这样的时代背景下脱颖而出,实现做大做强的目标,成为每个培训机构必须深思的问题。以下是从八个关键方面提出的策略,旨在帮助无人机培训机构在内卷时代中稳步前行。 1. 精准定位市场需求 深入研究市场:通过市场调研,了解无人机行业的最新趋势、政策导向及未来发展方向。 明确目标

第四次北漂----挣个独立游戏的素材钱

第四次北漂,在智联招聘上,有个小公司主动和我联系。面试了下,决定入职了,osg/osgearth的。月薪两万一。 大跌眼镜的是,我入职后,第一天的工作内容就是接手他的工作,三天后他就离职了。 我之所以考虑入职,是因为 1,该公司有恒歌科技的freex平台源码,可以学学,对以前不懂的解解惑。 2,挣点素材钱,看看张亮002的视频,他用了6000多,在虚幻商城买的吸血鬼游戏相关的素材,可以玩两年。我

网络安全运维培训一般多少钱

在当今数字化时代,网络安全已成为企业和个人关注的焦点。而网络安全运维作为保障网络安全的重要环节,其专业人才的需求也日益增长。许多人都对网络安全运维培训感兴趣,那么,网络安全运维培训一般多少钱呢?   一、影响网络安全运维培训价格的因素   1. 培训内容的深度和广度   不同的网络安全运维培训课程涵盖的内容有所不同。一些基础的培训课程可能主要涉及网络安全基础知识、常见安全工具的使用等,价

培训第九周(部署k8s基础环境)

一、前期系统环境准备 1、关闭防火墙与selinux  [root@k8s-master ~]# systemctl stop firewalld[root@k8s-master ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.servi

JSP 简单表单显示例子

<html><!--http://localhost:8080/test_jsp/input.html --><head><meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"><title>input页面</title></head><body><form action="input.jsp" method

基于JSP的实验室管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:JSP技术 + Spring Boot框架 工具:IDEA/Eclipse、Navicat、Tomcat 系统展示 首页 用户个人中心 实验室管理 设备报备管理 摘要 随着社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机

在项目开发中,jsp页面不会少了,如何公用页面(添加页面和修改页面)和公用样式代码(css,js)?

在项目开发中,如何公用添加页面和修改页面? <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html><head><title>岗位设置</title><%@ include file="/WEB-INF/jsp/public/common.jspf"%></head><body> <!-- 标

通过js得到时间,并显示到jsp上

代码: 部分jsp代码: <div id="tt" style="height:60px;border: 0px;padding-top: 5px;padding-left:5px;"> <div style="float:left;">          <input id="startdate" style="width:120px;" editable="false" class="

超全泛微E10-eBuilder功能培训视频教程(精华)含源码 火!!!

引言  在当今数字化转型的浪潮中,掌握强大而高效的工具将是职业发展的关键。泛微E10的低代码平台e-Builder不仅是一个功能强大的数字化运营管理平台,还为希望在工作中提升效率和技术技能的从业者提供了丰富的学习资源。在这篇文章中,我们将详细介绍泛微E10-eBuilder功能培训视频教程的内容,帮助你了解这款平台如何帮助你在数字化转型和职业提升中领先一步。 一、课程目录介绍 本次培训视频