WEB

WEB
mengnankkzhou基础知识
- HTML:超文本标记语言,用于描述网页内容(文本、图片、声音等)。
作用:负责网页的结构与内容。
说明:定义页面中有哪些元素,如标题、段落、表单、图片、链接等。
本质:网页的“骨架”。
- JavaScript:脚本语言,用于实现前台数据验证(如判空)和增加网页交互性。
作用:负责网页的行为与交互逻辑。
说明:实现表单校验、事件响应、DOM 操作、异步请求(Ajax)等。
本质:网页的“动态与交互”。
- CSS:层叠样式表,用于增强网页样式并实现样式与内容分离
作用:负责网页的样式与布局。
说明:控制颜色、字体、大小、位置、页面布局(如 Flex、Grid)等。
本质:网页的“外观与美化”。
常考 <form> 标记的 action(提交地址)和 method(提交方式)属性,以及 <input> 的各种类型(text, password, submit, reset 等)
request:用于封装和获取页面提交的数据信息,常用方法是 getParameter(String name)。
response:用于设置响应信息,如重定向 sendRedirect() 或设置自动刷新/禁止缓存。
session:用于实现会话跟踪,如用户登录验证或购物车功能
Model 1:JSP + JavaBean,适合小型应用。
Model 2:JSP + Servlet + JavaBean (MVC 模式),适合复杂系统
2.代码分析题目:
JSP 基本语法:区分 JSP 声明(
<%! ... %>定义全局变量/方法)、脚本段(<% ... %>定义局部变量)和 表达式(<%= ... %>用于输出)。JSP 动作元素与指令:
include 指令(
<%@ include ... %>)是静态包含;include 动作(<jsp:include ... />)是动态包含。forward 动作(
<jsp:forward ... />)实现请求转发。
JavaBean 的使用:熟练掌握
<jsp:useBean>(实例化)、<jsp:setProperty>(赋值)和<jsp:getProperty>(取值)三个标准动作。Servlet 核心框架:理解 Servlet 的生命周期(
init,service,destroy)以及如何重写doGet和post方法,同时注意使用@WebServlet注解进行路径配置EL 表达式:
${EL}语法及隐含对象(如param,sessionScope)。JSTL 标签库**:核心标签如
<c:if>,<c:forEach>,<c:set>的用法。Servlet 过滤器 (Filter):用于统一编码或登录安全控制
典型题目
1.题目内容: 在 JSP 页面中,<%! int i = 0; %> 和 <% int j = 0; %> 分别定义了什么类型的变量?如果多次刷新页面,这两个变量的值会如何变化?
变量类型:
<%! ... %>是 JSP 声明,其中定义的变量i是全局变量(成员变量);而<% ... %>是 JSP 脚本段,其中定义的变量j是局部变量。变化规律:
变量
i:由于是全局变量,在服务器运行期间只初始化一次,每次刷新页面时,其值会累加。变量
j:由于是局部变量,每次请求页面时都会重新声明并初始化,每次刷新页面时,其值都会重置为 0。
2.题目内容: 请写出在 cookie1.jsp 中创建一个名称为 “login”、值为 “lily”、有效期为 1 分钟的 Cookie 并写入客户端的核心代码;并说明如何在 cookie2.jsp 中读取该 Cookie。
写入代码:
```jsp
<%// 1. 创建 Cookie Cookie cookie = new Cookie("login", "lily"); // 2. 设置有效期(单位:秒,1 分钟 = 60 秒) cookie.setMaxAge(60); // 3. 可选:设置作用路径(建议加上) cookie.setPath("/"); // 4. 写入客户端 response.addCookie(cookie);%>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
```jsp
<%
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie c : cookies) {
if ("login".equals(c.getName())) {
String value = c.getValue();
out.println("login 的值是:" + value);
break;
}
}
}
%>
- 读取逻辑:调用
request.getCookies()方法获取 Cookie 数组,通过遍历数组并利用getName()和getValue()方法匹配名称为 “login” 的对象。
3.简述 <jsp:forward> 动作的作用,并说明它与重定向(sendRedirect)在地址栏和数据共享方面的区别。
作用:<jsp:forward> 用于在服务器端结束当前页面的执行,并从当前页面跳转到指定的新页面。
- 核心区别:
地址栏:转发是服务器内部行为,浏览器地址栏不会发生变化;重定向是客户端行为,地址栏会变为新 URL。
数据共享:转发属于同一次请求,可以共享 request 级别的数据;重定向涉及至少两次请求,不共享 request 数据。
4.说明 JSTL 中 <c:if> 和 <c:forEach> 标签的用途,并写出利用 EL 表达式访问 Session 中 “user” 属性的语法。
标签用途:
◦
<c:if>:用于进行单条件判断处理,通过test属性设置判断条件。◦
<c:forEach>:用于循环和迭代,通常配合items属性遍历集合(如 List 或 Map)。EL 语法:访问 Session 作用域数据的语法为
${sessionScope.user}。
5.Servlet 过滤器的主要功能是什么?在 Servlet 3.0 及以上版本中,如何通过注解配置 Servlet 的访问路径?
- 过滤器功能:过滤器位于客户端和处理程序之间,能够对请求和响应进行检查或修改,常用于统一字符编码、实施安全控制(如登录验证)等通用操作。
- 注解配置:使用
@WebServlet注解。例如,配置访问路径为 “/login” 的代码为@WebServlet("/login")。
6.JSP的运行原理
当用户第一次请求 JSP 页面时,服务器端(如 Tomcat)的处理流程如下:
- 客户端发起请求
- 浏览器请求某个
.jsp页面。
- 浏览器请求某个
- JSP 转换为 Servlet
- Web 容器将 JSP 文件 翻译成一个 Servlet 的 Java 源文件。
- Servlet 编译
- 将生成的
.java文件编译成.class字节码文件。
- 将生成的
- Servlet 加载与实例化
- 容器加载该 Servlet 类,并创建实例。
- 调用
jspInit()- Servlet 初始化(仅一次)。
- 调用
_jspService()- 处理请求并生成响应内容。
- 返回 HTML 响应
- 生成的 HTML 发送给浏览器。
📌 后续请求:不会再转换和编译,直接执行已生成的 Servlet,提高效率。
7.若要封装页面提交的数据,应使用哪个 JSP 内置对象?获取参数值的方法是什么?
request 对象,request.getParameter(“参数名”);
<%
String username = request.getParameter(“username”);
String password = request.getParameter(“password”);
%>
8.Session 的工作原理及与 Cookie 的区别
- 客户端第一次访问服务器
- 服务器创建一个
HttpSession对象,并生成唯一的 SessionID - 服务器通过 Cookie(JSESSIONID) 或 URL 重写方式将 SessionID 发送给客户端
- 客户端后续请求携带 SessionID
- 服务器根据 SessionID 找到对应的 Session 对象,实现会话跟踪
| 对比点 | Session | Cookie |
|---|---|---|
| 存储位置 | 服务器端 | 客户端(浏览器) |
| 安全性 | 高 | 较低 |
| 存储数据量 | 较大 | 有大小限制 |
| 生命周期 | 可配置,默认一次会话 | 可设置过期时间 |
| 依赖关系 | 依赖 Cookie 或 URL | 不依赖 Session |
9.什么是 Model 1 和 Model 2?分别说明它们的组成部分及适用场景
Model 1(JSP 模型)
- 组成:
- JSP = 显示 + 业务逻辑 + 控制逻辑
- 特点:
- JSP 中直接写 Java 代码
- 页面与逻辑耦合严重
- 适用场景:
- 小型项目
- 教学、实验、快速原型
Model 2(MVC 模型)
- 组成:
- Model:JavaBean(业务逻辑、数据)
- View:JSP(页面展示)
- Controller:Servlet(请求控制)
- 特点:
- 结构清晰
- 低耦合,易维护
- 适用场景:
- 中大型 Web 项目
- 企业级开发(Spring MVC)
10.Java 中的可重用组件技术是什么?简述其编码规范
JavaBean 编码规范
- 必须是一个 public 类
- 提供 无参构造方法
- 属性私有(
private) - 提供 getter / setter 方法
- 实现
Serializable接口(推荐)
11.什么是 EL 表达式?在 JSTL 核心标签库中,<c:if> 和 <c:choose> 的作用分别是什么?
EL 表达式(Expression Language)
- 作用:简化 JSP 中的数据访问
- 特点:
- 无需 Java 代码
- 自动查找作用域(page → request → session → application)
- 登录验证流: 请编写核心代码逻辑:在 check.jsp 中接收 login.jsp 提交的 username 和 password,若用户名为 “admin” 且密码为 “123”,则使用 请求转发 跳转至 success.jsp;否则重定向回登录页。
1 | <%@ page contentType="text/html;charset=UTF-8" %> |
12.数据库操作: 请利用 JDBC 编写一个简单的 add.jsp 片段,将前台提交的图书名称 bookname 插入到数据库表 bookinfo 中。
13.如何实现页面的对齐:
- CSS 布局方式(推荐)
text-alignmargin: autodisplay: flex(Flex 布局)display: grid(Grid 布局)
- 表格布局方式
- 利用
<table>、<tr>、<td>实现对齐(传统方式)
- 利用
14.JDBC写代码:
- 代码1:
Class.forName(...)—— 加载数据库驱动 - 代码2:
DriverManager.getConnection(...)—— 获取数据库连接 - 代码3:
Statement stmt = con.createStatement(); - 代码4:
ResultSet rs = stmt.executeQuery(sql); - 代码5:
int id = rs.getInt(1);
- jsp小题
代码1:<%@ page contentType="text/html; charset=GBK" %>
代码2:<jsp:useBean id="book" class="beans.Book" scope="request" />
代码3:<jsp:setProperty name="book" property="id" />
代码4:window.alert("<%= msg %>");
代码5:<meta http-equiv="refresh" content="1;url=index.jsp">
代码1:new Cookie("login","lily")
代码2:setMaxAge(60)
代码3:response.addCookie(c)
代码4:request.getCookies()
代码5:out.println(...)
代码1:@WebServlet("/ls")
代码2:HttpServlet
代码3:String user = request.getParameter("user");
代码4:
1 | HttpSession session = request.getSession(); |
代码5:response.sendRedirect("login.html");
实战
- html页面
(1)该页面主要采用了 HTML 技术,说明其含义。
(2)该页面需要使用哪些 HTML 标记?
(3)最后一行跨两列是如何实现的?
(4)若所有数据不能为空,利用什么技术实现前台数据的验证?简要介绍该技
术及代码实现的核心。
(5)采用什么技术能美化 Web 页面?简要介绍该技术。
(6)前台数据验证通过后,单击添加按钮后,可采用本课程的哪两种动态网页开发技术与后台服务器进行动态交互?简要介绍这两种技术。
(7)利用哪种 JSP 内置对象来封装页面提交的数据信息?本页面需使用该对象的什么方法?
(8)页面数据若需存入数据库,需要采用何种技术?简要说明该技术。
(9)为提供代码的重用性,可采用组件技术。Java 中的可重用组件技术是什么?简要介绍其含义。
(10)JavaWeb 开发技术中的两种开发模型是什么?本页面适合采取哪种模型?
说明其含义。
答案:
HTML 是英文 Hyper Text Markup Language 的缩写,中文译为“超文本标记语言”,其主要作用是通过 HTML 标记对网页中的文本、图片、声音等内容进行描述。
该页面需要使用以下常用的 HTML 标记:
利用
实现跨两列。 若所有数据不能为空,利用什么技术实现前台数据的验证?简要介绍该技术及代码实现的核心。
利用 JavaScript 技术进行前台数据的验证。JavaScript 技术介绍:JavaScript 是 Web 中一种功能强大的脚本语言,被设计为向HTML 页面增加交互性,常用来为网页添加各式各样的动态功能,它不需要进行编译,直接嵌入在 HTML 页面中,就可以把静态的页面转变成支持用户交互并响应事件的动态页面。代码实现的核心:编写 JavaScript 函数 check()(可随便命名),然后更改静态页面中采用 CSS 技术能美化 Web 页面。CSS 是 Cascading Style Sheet 的缩写,译作“层叠样式表单”,是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。
JSP 全称为 Java Server Pages,是由 Sun 公司倡导、许多公司参与一起建立的一种应用范围广泛的动态网页技术标准,是 Java 语言编写的服务器端运行的页面。JSP 页面由 HTML 代码和嵌入其中的 Java 代码组成。支持 JSP 的服务器在 JSP页面被客户端请求以后对这些 Java 代码进行处理,然后将生成的 HTML 页面返回给客户端的浏览器。Servlet 是用 Java 语言编写的程序,运行于支持 Java 的 Web 服务器或应用服务器中。它先于 JSP 出现,提供和客户端动态交互的功能。Servlet 可以处理来自客户端的 HTTP 请求,并生成响应返回给客户端。
利用 JSP 内置对象 request 来封装页面提交的数据信息。本页面需使用该对象的 getParameter(String name)方法。
页面数据若需存入数据库,需要采用 JDBC 技术。JDBC 的全称是 Java 数据库连接(Java Database Connectivity),它是一套用于执行 SQL 语句的 Java API。应用程序可通过这套 API 连接到关系数据库,并使用 SQL 语句来完成对数据库中数据的查询、更新和删除等处理。
Java 中的可重用组件技术是 JavaBean。JavaBean 是一种符合某些命名和设计规范的 Java 类,通过封装属性和方法而具有某种功能或者处理某个业务。
JavaWeb 开发技术中的两种开发模型分别是 Model1 和 Model2。本页面适合采取 Model1,因为比较简单。Model1 采用 JSP+JavaBean 技术开发 Web 应用。其中,JSP 实现页面显示、业务逻辑和流程控制,数据处理由 JavaBean 完成。适合快速和小规模的应用开发。
常用的 CSS 设置方式有内联样式,嵌入样式和外部样式。
评论匿名评论隐私政策TwikooValine✅ 你无需删除空行,直接评论以获取最佳展示效果数据库加载中通知你好呀






