
目录
本博文:大部分是之前内容。`@JSP @Servlect @Redis 三课的总结。这三课是为下学期框架打基础的.进入JSp编程第二十一课本博文分三部分第一部分回顾你这个学期所学的内容第二部分进行代码实战第三部分写一篇作文MVC
第一部分知识梳理。
@第一章:上面是大纲内容现在我们来回顾回顾。之前所学习的内容。
A_1Servlect的注册与介绍。
第一部分.Servlect的介绍。
1_1什么是Servlect.
1 Servlet的简介。
2 Servlet优势。
3 Servlet 任务。
1_2Servlect的注册在web.xml文件中。
A_2Servlect的三种形式与生命周期。
1_5Servlet 方法介绍
A_3Servlect常用的七个对象。最常用的六个对象。
第一个对象
ServletConfig对象,用途获取静态数据
设置静态数据的俩种方式。
方案一在web.xml文件中定义。
方案二在servlect中定义。
第二个对象 ServletContext对象。(在jspz中九大内置对象之一)
1:用途:获取共享静态数据,2 获取共享动态数据,3 获取共享文件数据.
定义动态数据的的方案一。
定义动态数据的方案二。
第三个对象 (在jspz中九大内置对象之一)
Response 对象。
1:用途一:将数据发送给浏览器。
2:用途二生成图片的下载。
3:用途三生成随机数。
4 用途四 response.sendRedirect("Servlet2");重定向
第四个对象。(在jspz中九大内置对象之一)
HttpServletRequest
HttpServlet调用HttpResponse的有关方法,生成响应数据,用于服务器上接收浏览器发送过来的数据信息。
request.getRequestDispatcher("Servlet4") .forward(request, response);
HttpResponse一些用法
这个对象与我之后所讲的JSP四大域有关
理解一些基础
第六个对象
过滤器(File)
个人总结:从上面图片过程可以看出:当Servlect与Filter同时创建时,运行服务器首先调用的是Filter中。MyFilter():构造方法<()方法:加载数据。当我改下内容在刷新时你会发现服务器运行以下方法<>
1-2 第二部分观察Servlect与Filter在web.xml注册的相似
Servlet监听器:
第七个对象(扩展内容)
Listener 工作原理
实现了特定接口的类为监听器,用来监听另一个Java类的方法调用或者属性改变;
当被监听的对象发生了方法调用或者属性改变后,监听器的对应方法就会立即执行。
A_4JSP的基础介绍。
## **<%! %>:用于在jsp文件中定义全局变量和方法
## <%= %>:用于在jsp文件中将java中的数据结果显示在html文本中
## <% %>:用于在jsp文件中执行多行代码,包括if,while,for,创建对象等等
## <%-- --%>:用于在jsp文件中的注释
## <%@ %>:用于在jsp文件中 *** 作指令代码**
A_5九大内置对象。
JSP九大内置对象表格。
九大对象代码解释
A_6四大作用域。
#4 JSP四大作用域。
4_1四大域的范围
pageContext
@1pageContext:pageContext:该对象中存放的数据只能页面自己用
@2request:在请求转发跳转页面的情况下,只能让两个页面之间共享数据
@3session:不切换浏览器的情况下,所有servlet和jsp都能共享这个对象中的所有数据
@4application:服务器不关闭的情况下,所有servlet和jsp都能共享这个对象中的所有数据
这四个对象有共同的点:都要用到setAttribute() getAttribute() removeAttribute()
A_7JavaBean六大标签。
第五部分JavaBean和jsp动作
代码解释。
A_8EL表达式。
代码解释
A_9JSTL标签库。
代码解释
A_9..0MYsql的基础 *** 作。增删改查的回顾。
A_10MVC三层架构。
A_11Redis缓存技术.
1:redis缓存技术(第一课利用windows *** 作系统)
A_12五种数据 *** 作。
A-1String
A-2hash类型:
A-3list类型: 可以添加重复的数据
A-4set类型:不允许添加重复的数据**
A_5sortedset类型:不允许添加重复的数据,而且添加的数据需要进行排序
A-6通用命令:
A_12用java代码 *** 作Redis数据库。
本博文:大部分是之前内容。`@JSP @Servlect @Redis 三课的总结。这三课是为下学期框架打基础的.进入JSp编程第二十一课本博文分三部分第一部分回顾你这个学期所学的内容第二部分进行代码实战第三部分写一篇作文MVC
第一部分知识梳理。
@第一章:上面是大纲内容现在我们来回顾回顾。之前所学习的内容。
A_1Servlect的注册与介绍。第一部分.Servlect的介绍。 1_1什么是Servlect. 1 Servlet的简介。
它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
2 Servlet优势。-
性能明显更好。
-
Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
-
Servlet 是独立于平台的,因为它们是用 Java 编写的。
-
服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
-
Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。
-
.(java css html mysql jquery )
-
读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
-
读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
-
处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
-
发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
-
发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。
com.Web.Servlect 项目内容一 index.html index.htm index.jsp default.html default.htm default.jsp OneServlect com.Web.Servlect.Servlect.OneServlect 4 home 我的家乡在江西省 money 未来我的一年的目标是年薪100万 h 我的身高为179cm a 恭喜你获得了第四个数据我@第四个 OneServlect /A lq 篮球 zq 足球 dt 恭喜你获得了我的动态数据的内容 Servlect1 comServlectF.Servlect1 Servlect1 /Servlect1
A_2Servlect的三种形式与生命周期。
public class oneServlet implements Servlet {}
//采用的是接口
public class TwoServlet extends GenericServlet {}
//采用的是继承
public class ThreeServlet extends HttpServlet{}
//采用的是继承 理解什么是get 和 post的请求方式。
Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
Servlet 抽象方法
-
Servlet 初始化后调用 init () 方法。
-
Servlet 调用 service() 方法来处理客户端的请求。
-
Servlet 销毁前调用 destroy() 方法。
-
最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
1_5Servlet 方法介绍init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,就像 Applet 的 init 方法一样。
service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。
destroy() 方法只会被调用一次,在 Servlet 生命周期结束时
A_3Servlect常用的七个对象。最常用的六个对象。
第一个对象 ServletConfig对象,用途获取静态数据 设置静态数据的俩种方式。方案一在web.xml文件中定义。 方案二在servlect中定义。
第二个对象 ServletContext对象。(在jspz中九大内置对象之一) 1:用途:获取共享静态数据,2 获取共享动态数据,3 获取共享文件数据.定义动态数据的的方案一。 定义动态数据的方案二。
第三个对象 (在jspz中九大内置对象之一) Response 对象。1:用途一:将数据发送给浏览器。 2:用途二生成图片的下载。 3:用途三生成随机数。 4 用途四 response.sendRedirect("Servlet2");重定向
第四个对象。(在jspz中九大内置对象之一) HttpServletRequest HttpServlet调用HttpResponse的有关方法,生成响应数据,用于服务器上接收浏览器发送过来的数据信息。 request.getRequestDispatcher("Servlet4") .forward(request, response); HttpResponse一些用法 这个对象与我之后所讲的JSP四大域有关
第五个对象(cookie) session(在jsp中属于九大内置对象之一,四大作用域之一) 理解一些基础cookie的本意是“小甜饼”,我们俗称“曲奇饼”
cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。
当用户使用浏览器再去访问服务器的时候,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据。
1.一个cookie只能标识一种信息,它至少含有一个标识该信息的名称(name)和值(value)。
2.一个web网站可以给一个web浏览器发送多个cookie,一个浏览器也可以存储多个cookie。
3.浏览器一般只允许存放300个cookie,每个网站最多存放20个cookie,每个cookie的大小限制为4kb。
4.如果创建了一个cookie,并将他发送到了浏览器,默认情况下他是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。
Session的概念
HttpSession对象 服务器为每个会话创建一个HttpSession对象 每个会话对象都有一个唯一的ID 把 用户的数据保存在相应的HttpSession对象内
第六个对象 过滤器(File) 个人总结:从上面图片过程可以看出:当Servlect与Filter同时创建时,运行服务器首先调用的是Filter中。MyFilter():构造方法<1 销毁数据 2 Filter所有方法运行完毕后销毁过滤器 3 构造方法 4 加载数据 5 我创建了第一个MyFilter过滤器 6 FilterConfig用来加载初始化数据 当我去运行ServlectA时服务器运行以下方法 1 ServlectA的构造方法 2 ServletAinit方法 3 ServlectA的servlect的方法 1-2 第二部分观察Servlect与Filter在web.xml注册的相似 概念:监听器就是一个实现了特定接口的Java类。 分类:
第一类监听器:监听域对象的创建、销毁 第二类监听器:监听域对象中的属性变更(属性设置、属性替换、属性移除) 第三类监听器:监听域对象中的java对象的绑定。
Servlet监听器:事件源:request、session、servletContext三大域对象 监听器:Servlet对象(三类监听器) 绑定:web.xml配置 或 @WebListener注解 事件:域对象发生改变
第七个对象(扩展内容) Listener 工作原理 实现了特定接口的类为监听器,用来监听另一个Java类的方法调用或者属性改变; 当被监听的对象发生了方法调用或者属性改变后,监听器的对应方法就会立即执行。
A_4JSP的基础介绍。 ## **<%! %>:用于在jsp文件中定义全局变量和方法 ## <%= %>:用于在jsp文件中将java中的数据结果显示在html文本中 ## <% %>:用于在jsp文件中执行多行代码,包括if,while,for,创建对象等等 ## <%-- --%>:用于在jsp文件中的注释 ## <%@ %>:用于在jsp文件中 *** 作指令代码**
## Jsp常用的三大指令:page,include,taglib
## page指令的常用属性:
## import:导入所需要的包
## language:当前jsp页面里面可以嵌套的语言 contenType:设置响应流的编码,及通知浏览器用什么编码打开
## pageEncoding:设置页面的编码 extends:声明当前jsp的页面继承于哪个类
## session:设置jsp页面是否可以使用session内置对象
## buffer:设置jsp页面的流的缓冲区大小
## autoFlush:是否自动刷新
## isELIgnored:是否忽略el表达式
## errorPage:当前jsp页面出现异常的时候要跳转到的jsp页面
## isErrorPage:当前jsp页面是否是一个错误页面
A_5九大内置对象。JSP九大内置对象表格。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
欢迎来到a.jsp文件
<%
String a=(String)request.getAttribute("a");
out.write("通过请求转发获得的数据为"+a);
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%-- application, ServlectContext 对象八ServlectContext 共享数据 整个项目中只会有一个对象
tomcat 服务器 一关闭 数据释放 数据的共享更服务器相关 --%>
<%
//获得静态数据
String info =application.getInitParameter("a");
out.write(info);
//动态数据
out.write("");
application.setAttribute("c", "我是动态数据");
out.write((String)application.getAttribute("c"));
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%-- config 第七个对象 类名ServlectConfig 增加静态数据 --%>
<%
String name = config.getServletName();
out.write(name);
%>
<%@ page language="java" errorPage="error.jsp" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
*{
font-size: 29px;
color: red;
}
<%-- <%int a=100/0; %> --%>
<% int [] arr =new int [3];
System.out.println(arr[3]);
%>
<%-- <%
Integer i =new Integer ("abd");
%> --%>
<%@ page language="java" isErrorPage="true" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
除数不能为0:用户
<%= exception.getMessage() %>
<%=exception.toString() %>
<%=exception.hashCode()%>
<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
*{
font-size: 40px;
}
九大内置对象的学习
----对象一out
<%
//创建日历类
Calendar calendar =Calendar.getInstance();
int AM_PM=calendar.get(calendar.AM_PM);
if(AM_PM==calendar.AM){
out.write("上午时间是");
}else if(AM_PM==calendar.PM){
out.write("下午时间是");
}
%>
----对象二Application
<%
//获得静态数据
String info =application.getInitParameter("a");
out.write(info);
//动态数据
out.write("");
application.setAttribute("c", "我是动态数据");
out.write((String)application.getAttribute("c"));
%>
----对象三page
<%
out.write((page.equals(this)?"page是当前对象":"page不是当前对象"));
out.write((session.equals(this)?"page是当前对象":"page不是当前对象"));
%>
----对象四Response
<%
response.sendRedirect("a.jsp");
out.write("Hellow JSP");
%>
<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Out对象
<%-- --%>
<%
//创建日历类
Calendar calendar =Calendar.getInstance();
int AM_PM=calendar.get(calendar.AM_PM);
if(AM_PM==calendar.AM){
out.write("上午时间");
}else if(AM_PM==calendar.PM){
out.write("下午时间");
}
%>
四大作用域(有四个对象)有四个对象共享数据
seesion 浏览器不切
application 服务器不关闭
request:请求转发跳转页面的情况,只能两个页面共享数据
pageContext:该对象中只能页面自己用
才能用setAttribute的方法
将四作用域排序
pageContext request seesion application
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%--对象 page 对象 六 page, Servlect(this) jsp翻译出来类的对象 --%>
<%
out.write((page.equals(this)?"page是当前对象":"page不是当前对象"));
out.write((session.equals(this)?"page是当前对象":"page不是当前对象"));
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Request对象
<%-- jsp九大对象 request 类名HttpSevlectRequest --%>
<%
String name=request.getParameter("name");
out.write("我收到浏览器发送的数据为"+name);
out.write("http://localhost:8080/Day_13/Request.jsp?name=xao");
//携带数据跳转页面
request.setAttribute("a", "apple");
request.getRequestDispatcher("a.jsp").forward(request, response);
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%-- jsp九大内置对象 Respone对象三类名 HttpServlectRespone--%>
Respone.jsp
<%
response.sendRedirect("Out.jsp");
out.write("Hellow JSP");
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%---- 对象四Session HttpSession Session放的数据为同已过浏览器服务器 所有Servlect 和 jsp
都能共享Session里数据 --%>
<%
session.setAttribute("b", "我是session对象的定义b");
session.setAttribute("c", "我是session对象的定义c");
out.write((String)session.getAttribute("b"));
out.write((String)session.getAttribute("c"));
%>
A_6四大作用域。#4 JSP四大作用域。 4_1四大域的范围 pageContext
A_7JavaBean六大标签。第五部分JavaBean和jsp动作
JavaBean的概念
JavaBean是可复用的、平台独立的软件组件 JavaBean既可以是简单的GUI要素,如按钮和滚动条,也可以是复杂的可视化软件组件,如数据库视图 有些JavaBean是没有GUI表现形式的,常用来封装事务逻辑、数据库 *** 作等等 我们可以把遵循某种规范的Java类称为JavaBean: 这个类是可序列化的 这个类必须带有一个无参的构造方法 这个类的属性必须通过get 、set和其他标准命名规范来命名的方法进行 *** 作 这个类包含事件处理方法
jsp:useBean:创建某一个JavaBean类的对象,需要把该对象存储至指定的四大作用域之一 id:填要创建的类的对象名称 class:填要创建的类的完整包的路径 scope:填四大作用域的标识 page:代表的是pageContext对象 request:代表的是request对象 session:代表的是session对象 application:代表的是application对象
jsp:setProperty:用于给jsp:useBean动作所创建的对象的全局变量进行赋值 name:填对象名称 property:填属性名称或者变量名称 value:填要赋予给全局变量的值
jsp:getProperty:用于获得jsp:useBean动作所创建的对象中所有全局变量的值 name:填对象名称 property:填属性名称或者变量名称
jsp:forwad:用于类似于请求转发的页面跳转方式 page:填写要跳转的页面
jsp:param:用于携带参数(如果传输的中文,需要进行编码格式转换) name:填参数名称 value:填参数的值
jsp:include:用于动态的将其他多个jsp页面引入或者包含某一个页面中 引入的过程中也可以使用jsp:param动作给这个子页面传输数据,
代码解释。
<%@page import="com.Student.Student"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
*{
font-size: 18px;
}
<%-- pageContrxt request session application --%>
==============方案一存储数据============
<%
session.setAttribute("name", "小YI");
session.setAttribute("id", "007");
session.setAttribute("phone", "123456789123");
session.setAttribute("age", "21");
session.setAttribute("addr", "江西南昌");
session.setAttribute("sex", "男");
%>
==============方案二存储数据============
<%
Student student=new Student("007","小明二号",20,"男","18188888888","江西省南昌市");
session.setAttribute("student", student);
%>
方案三:利用一个JSP动作将数据存储起来
<%-- 使用的id id表示使用的类的对象 class表示完整包的路径--%>
<%
a.setId("1003");
a.setName("小明三号");
a.setAge(23);
a.setSex("男");
a.setAddr("南昌");
a.setPhone("1244444444444");
%>
方案四:利用二个JSP动作将数据存储起来
<%--
property: 属性的名称
name:对象的名称
value:对象赋值的数据
--%>