一.课程总结
HTML标签和基础:
HTML(超文本标记语言)是构建网页和网页应用的结构基础。学习 HTML 包括了解如何使用不同的标签来创建文本、链接、图片、表格等内容。通常将HTML标签分为3类,分别是单标签、双标签和注释标签。
1.单标签,是指用一个标签就可以完整地描述某个功能
<标签名 />
2.双标签 ,由开始和结束标签组成。
<标签名>内容</标签名>
3.注释标签,如果需要在HTML文档中添加一些方便阅读和理解但是不需要显示的注释文字
<!--注释语句-->
JavaScript基础:
JavaScript 是一种脚本语言,用于为网页添加交互性,如响应用户操作、动态更新页面内容等。
CSS技术:
CSS用于设置网页的视觉样式和布局,包括字体、颜色、间距、对齐等。使用HTML标签属性对网页进行修饰存在很大的局限和不足,因为将所有的样式写在标签里面,不利于代码的阅读也会是代码的维护非常困难,如果希望页面美观、大方、维护方便,就需要使用CSS实现结构与表现的分离。结构与表现相分离是指在页面设计中,HTML标签只用于搭建网页的基础结构,不使用标签属性设置显示样式,所有的样式交由CSS来设置。
CSS样式的引用方式:
1.行内式
<标签名 style="属性1:属性值;属性2:属性值;属性3:属性值;">内容</标签名>
上述语法中,style是标签属性,实际上任何HTML标签都有style属性。
2.内嵌式
<head>
<style type="text/css">
选择器 {属性1:属性值1;属性2:属性值2;属性3:属性值3;}
</style>
</head>
3.外链式
<head>
<link href="CSS文件的路径" type="text/css" rel="stylesheet" />
</head>
4.导入式
<style type="text/css" >
@import url(CSS文件路径);或@import url"CSS文件路径";
</style>
Bootstrap框架基础和常用组件:
Bootstrap 是一个前端框架,它提供了一套响应式设计的组件和样式,可以加快网页开发的速度。Bootstrap框架结合HTML和CSS和JavaScript技术,可以构建出非常优雅的前端页面而且占用资源较少.
优点:1.响应式设计2.移动设备优先3.浏览器支持4.低成本 易上手5.CSS预编译6.框架成熟7.丰富的组件库
XML基础:
XML 是一种标记语言,用于存储和传输数据。它在配置文件和数据交换中非常常见。
XML是一种类似于HTML的置标语言,称为可扩展置标语言.XML用于提供数据描述格式,适用于不同应用程序之间的数据切换,而且这种交换不以预先定义的一组数据结构为前提,增强了可拓展性.
程序开发体系架构:
学习软件开发的架构模式,如 MVC(模型-视图-控制器),它有助于分离应用的业务逻辑、用户界面和控制逻辑。
C/S(客户端/服务器)和B/S(浏览器/服务器)体系结构是两种常见的软件架构模式。以下是它们的基本结构图的简要描述:
C/S架构
在C/S架构中,系统分为两个主要部分:客户端(Client)和服务器(Server)。
- 客户端:负责与用户交互,收集用户输入,执行部分业务逻辑,并显示服务器返回的数据。
- 服务器:负责处理客户端的请求,执行数据库查询等操作,并将结果发送回客户端。
C/S架构通常用于局域网环境,需要用户在本地计算机上安装客户端软件。
B/S架构
B/S架构则将系统分为三个主要层次:浏览器(Browser)、服务器(Server)和数据库(Database)。
- 浏览器:作为客户端,用户通过浏览器访问服务器上的应用程序。
- 服务器:处理浏览器的请求,执行业务逻辑,并将查询数据库的结果返回给浏览器。
- 数据库:存储、检索和更新数据。
B/S架构适用于基于互联网的应用,用户不需要安装专门的客户端软件,只需使用浏览器即可。
Tomcat:
Tomcat 是一个应用服务器,用于部署和运行 Java 应用,特别是 JavaWeb 应用。
Tomcat运行稳定可靠效率高,不仅可以与目前大部分主流的web服务器一起工作,而且可以作为独立的Web服务器软件.
HTTP协议:
HTTP(超文本传输协议)是用于从网络传输超文本到本地浏览器的传输协议,学习 HTTP 请求和响应的构成。
特点:
1.支持客户\服务器模式
2.简单快速.常用的请求方式有GET POST 等
3.灵活.HTTP允许传输任意类型的数据,正在传输的数据类型由Content-Type加以标记.
4.无状态HTTP是无状态协议.无状态是指协议对于事物处理没有记忆的能力,后续需要处理前面的信息,则需要重新传输.
Servlet技术:
Servlet 是 Java EE 规范的一部分,用于创建基于 Java 的网络应用。学习 Servlet 的生命周期、请求处理等。
Servlet生命周期
Servlet 的生命周期由以下几个关键阶段组成:
-
加载和实例化:当Servlet容器(如Tomcat)需要处理一个特定Servlet的第一个请求时,容器会加载Servlet类,并创建一个Servlet实例。
-
初始化:一旦Servlet实例化,容器就会调用其
init
方法。这个方法只会被调用一次,用于初始化工作,如设置参数或创建其他资源。 -
请求处理:Servlet 通过
service
方法来处理客户端的请求。当请求到达时,容器调用与请求类型(如GET、POST)相对应的service
方法。 -
销毁:当Servlet不再被使用时,容器会调用
destroy
方法。这允许Servlet释放它持有的资源。 -
卸载:最后,Servlet实例将从内存中移除。
请求处理
Servlet 容器为每个请求调用相应的 Servlet 的 service
方法。service
方法需要完成以下任务:
-
解析请求:根据请求类型(GET、POST、PUT等)解析客户端发送的数据。
-
处理请求:执行必要的业务逻辑。
-
生成响应:根据请求处理的结果生成响应,这可能包括HTML页面、重定向、错误代码等。
-
发送响应:将响应数据发送回客户端。
Servlet 容器为 service
方法提供了一个 HttpServletRequest
对象,它代表客户端的请求,以及一个 HttpServletResponse
对象,用于构造响应。
Servlet API
Java Servlet API 定义了一组接口和类,使得开发人员可以编写Servlet。核心接口包括:
Servlet
:所有Servlet必须实现的接口。ServletRequest
:表示客户端的请求。ServletResponse
:表示服务器的响应。Filter
:用于在请求到达Servlet之前或响应发送给客户端之后执行过滤任务。
配置和部署
Servlet 通过在 Web 应用程序的 web.xml
配置文件中声明或通过注解来配置。部署时,Servlet 被打包为一个Web应用程序归档(WAR)文件,然后部署到Servlet容器。
安全性
Servlet 提供了一些安全特性,如:
- 认证:确保只有经过验证的用户才能访问特定的资源。
- 授权:确定经过认证的用户是否有权限执行特定的操作。
会话管理:
Servlet 容器支持会话管理,允许跟踪用户的会话状态。可以通过 HttpServletRequest
对象访问会话,并使用 HttpSession
接口来管理会话。了解如何使用 Session 和 Cookie 跟踪用户的会话状态。
JSP技术:
JSP(JavaServer Pages)是一种技术,允许开发者将 Java 代码嵌入 HTML 页面中,以简化动态网页的开发。JSP是Servlet更高级的拓展.在JSP文件中,HTML代码与Java代码共同存在,其中,HTML文件用于实现网页中静态内容的显示,Java代码用于实现网页中的动态内容的显示.
JSP动作元素和隐式对象:
JSP 动作元素用于控制 JSP 页面的行为,而隐式对象是 JSP 技术提供的一组可以在 JSP 页面中直接使用的 Java 对象。
以下是JSP中的九个标准隐式对象:
-
request - 封装了客户端的请求信息,可以用来获取客户端发送的参数、头信息等。
-
response - 用于封装服务器对客户端的响应信息,可以设置响应的状态码、响应头等。
-
pageContext - 提供了对页面上下文的访问,可以作为其他隐式对象的中央存储库。
-
session - 封装了客户端与服务器之间的会话信息,可以用来跟踪用户的会话状态。
-
application - 代表JSP引擎的上下文,可以用来存储整个Web应用程序范围内的属性。
-
out - 用于输出内容到客户端,可以向客户端发送响应数据。
-
config - 代表JSP页面的Servlet配置对象,可以用来获取初始化参数。
-
page - 代表JSP页面本身,通常是页面类的一个实例。
-
exception - 只在错误页面中有效,用于访问页面抛出的异常对象。
除了这九个标准隐式对象,还有一些额外的隐式对象,如:
- param 和 paramValues - 用于获取请求参数。
- initParam - 用于获取初始化参数。
JSP指令:
JSP 指令用于指定页面依赖的插件、包含其他文件或定义页面属性。
JSP页面可以包含以下几种指令:
- page指令:定义页面依赖的属性,如contentType、pageEncoding等。
- include指令:在转换为Servlet之前,将一个文件的内容包含到另一个文件中。
- taglib指令:引入自定义标签库,以便在JSP页面中使用。
- errorPage指令:定义错误页面,当页面抛出异常时,会跳转到这个页面。
page指令的例子
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP Page Example</title>
</head>
<body>
<h1>Hello, JSP!</h1>
<!-- JSP代码可以写在这里 -->
</body>
</html>
在这个例子中,page
指令指定了页面的内容类型是text/html
,字符集是UTF-8
,并且页面使用的是Java语言。
include指令的例子
<%@ page language="java" %>
<%@ include file="header.jsp" %>
<h1>Welcome to Our Site!</h1>
<%@ include file="footer.jsp" %>
这里,include
指令用于将header.jsp
和footer.jsp
文件的内容包含到当前页面中。这通常用于重复利用公共代码,如网站的头部和尾部。
taglib指令的例子
<%@ page language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach var="item" items="${list}">
<!-- 迭代输出list中的每个item -->
</c:forEach>
在这个例子中,taglib
指令引入了JSTL核心标签库,并定义了一个前缀c
。然后,使用c:forEach
标签来迭代一个列表。
errorPage指令的例子
<%@ page language="java" errorPage="error.jsp" %>
<!-- 页面内容,如果发生错误,将跳转到error.jsp -->
这里,errorPage
指令定义了一个错误页面error.jsp
,当当前页面发生异常时,将会跳转到这个页面。
EL和JSTL:
表达式语言(EL)简化了页面中的 Java 代码编写,而 JSTL(JavaServer Pages 标准标签库)提供了一套丰富的标签,用于执行常见的任务。
EL的语法格式:
${表达式}
EL中的标识符:
不能以数字开头;
不能是EL中的关键字.例如:and or gt等
不能是EL中的隐式对象,例如:pageContext
不能包含单引号(')双引号('')减号(-) 和正斜线(/)等特殊符号
//以下这些标识符都是合法的
usename
usename123
user_name
_username
以下这些标识符都不合法
123usename
or
user"name"
pageContext
MVC设计模式:
MVC 是一种软件设计模式,用于将应用分为三个核心组件:模型(Model)、视图(View)和控制器(Controller),以提高应用的组织性和可维护性。
JDBC:
JDBC(Java 数据库连接)是一个 Java API,用于执行 SQL 语句和与数据库交互。
应用程序使用JDBC访问数据库的方式:
二.遇到的相关问题
Q1:在IDEA2023中配置Tomcat服务器?
1).首先我们点击New Project,设置好项目的名字和JDK
2).在idea的左上角File中选择Project Structure,在Modules里面点击加号,选择Web,这样可以帮我们创建号webapp文件夹和web.xml配置文件
3). 为项目创建一个web应用artifacts,IDEA在这里会提示,直接点击Create Artifact就可以自动配置
4).点击应用即可
5).现在的文件结构如下:
Q2.配置Tomcat的服务器启动时窗口一闪而过并且会出现乱码?
出现一闪而过可能是因为端口号被占用,Tomcat的默认端口号为8080,而乱码的解决需要我们找到Tomcat的下载路径,对应的文件夹中的conf文件夹中的logging.properties文件 将UTF-8改为GBK,便可以解决问题。
bin:可执行文件(startup.bat开启文件 shutdown.bat关闭文件)
conf:配置文件(server.xml)(可以改端口号)
lib:tomcat依赖的jar文件
log:日志文件(记录出错等信息)
temp:临时文件
webapps:可执行的项目(将我们开发的项目 放入该目录)
work:存放有jsp翻译的java,以及编辑成的class文件jsp->java->class
Q3.Tomcat运行之后,报错404?
可能是Tomcat没有配置环境变量,有可能是因为Tomcat的端口号被占用,如果在是运行tomcat时计算机的程序中也有8080的端口号,这时候会报404。
配置环境变量:
1)右击“我的电脑”,点击“属性”,选择"高级系统设置",点击“环境变量”
2)在系统变量中新建CATALINA_BASE,CATALINA_HOME:
变量名分别为CATALINA_BASE和CATALINA_HOME,变量值为Tomcat的安装目录。
3)在Path的变量值中加入:%CATALINA_HOME%\bin和%CATALINA_HOME%\lib
4)测试是否配置成功:
打开"cmd"/快捷键win+R,输入: startup,进行测试。
修改端口号:首先打开tomcat的conf文件夹,打开server.xml文件修改端口号即可。
Q4.解决响应和请求参数中的中文乱码 ?(例如下面这种情况)
1)在HTML页面的<form>标签中添加accept-charset="UTF-8",确保表单提交使用UTF-8编码。
2)在Servlet中,在读取请求参数之前,设置请求和响应的字符编码为UTF-8。
3)也有可能是服务器的问题,服务器编码方式和文件编码的方式冲突,可以把服务器中虚拟机选项添加下面这句话。
Q5.Servlet重定向之后显示404?
出现这种404问题一般是路径问题,我在检查我的文件路径之后,确认无误之后发现还是不行,最后发现是Tomcat的路径问题,那么就需要在IDEA中的右上角Edit Configuration选项中,在里面找到Deployment选项,修改路径即可。
Q6.模拟实现购物车可以为购买的商品增加图片作为展示?
-
首先,我们需要在Cake类中添加一个字段来储存商品的照片,或者URL
-
在CakeDatabase类中更新添加带有商品照片的蛋糕数据
-
在cartServlet类中添加显示图片和的对应的名称