基于SpringMVC的网上订餐系统

article/2025/9/29 22:37:47

一、系统分为两端

(1)网上订餐前端

(2)网上订餐管理端

系统开发的技术(Javaweb技术、Spring、jsp页面、MVC模式)以及使用的工具(Eclipse集成开发工具、MySQL数据库)等基础知识;

二、系统主要功能

用户:
① 用户注册
② 用户登录
③ 菜品浏览
④ 菜品订购
⑤ 菜品查询
⑥ 订单修改
⑦ 修改密码
⑧ 修改个人信息
管理员:
① 用户信息管理
② 销售订单管理
③ 系统用户管理
④ 菜单管理
⑤ 菜单类别管理
⑥ 公告发布管理

三、系统截图

四、主要功能代码

 (1)管理员登录

package com.example.meal_ordering_system.controller;import com.example.meal_ordering_system.entity.Admin;
import com.example.meal_ordering_system.entity.Menus;
import com.example.meal_ordering_system.entity.Types;
import com.example.meal_ordering_system.service.AdminService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;/*** (Admin)表控制层** @author makejava* @since 2021-02-04 12:51:19*/
@Controller
@RequestMapping("admin")
public class AdminController {/*** 服务对象*///自动注入业务层的AdminService类@Autowired@Qualifier("adminService")private AdminService adminService;//修改管理员信息@RequestMapping("update")public String update(Admin admin) {adminService.update(admin);return "/admin/menus";}@RequestMapping(value = "/login",method = RequestMethod.GET)public String toLogin(){return  "/admin/index";}//login业务的访问位置为/admin/login@RequestMapping(value = "/login",method = RequestMethod.POST)public String login(Admin admin, HttpServletRequest request,HttpSession session){//调用login方法来验证是否是注册用户boolean loginType = adminService.login(admin.getName(),admin.getPwd());if(loginType){//如果验证通过,则将用户信息传到前台request.setAttribute("admin",admin);session.setAttribute("admin_session",admin);//并跳转到success.jsp页面return "/admin/main";}else{//若不对,则返回request.setAttribute("message","用户名密码错误");return "/admin/index";}}//登出,地址/admin/logout@RequestMapping("logout")public String logout(HttpSession session){//清除sessionsession.removeAttribute("admin_session");//重定向到登录页面的跳转方法return "/admin/index";}}

package com.example.meal_ordering_system.service;import com.example.meal_ordering_system.entity.Admin;
import com.example.meal_ordering_system.entity.Types;import java.util.List;/*** (Admin)表服务接口** @author makejava* @since 2021-02-04 12:49:13*/
public interface AdminService {/*** 通过ID查询单条数据** @param name 主键* @return 实例对象*/Admin queryByName(String name) ;boolean login(String name,String pwd);/*** 查询多条数据** @param offset 查询起始位置* @param limit  查询条数* @return 对象列表*/List<Admin> queryAllByLimit(int offset, int limit);/*** 新增数据** @param admin 实例对象* @return 实例对象*/Admin insert(Admin admin);int update(Admin admin);/*** 通过主键删除数据** @param id 主键* @return 是否成功*/boolean deleteById(Integer id);}

package com.example.meal_ordering_system.service.impl;import com.example.meal_ordering_system.dao.AdminDao;
import com.example.meal_ordering_system.entity.Admin;
import com.example.meal_ordering_system.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.List;/*** (Admin)表服务实现类** @author makejava* @since 2021-02-04 12:49:13*/
@Service("adminService")
public class AdminServiceImpl implements AdminService {@Resourceprivate AdminDao adminDao;/*** 通过ID查询单条数据** @param name 用户名* @return 实例对象*/@Overridepublic Admin queryByName(String name) {return this.adminDao.queryByName(name);}/*** 查询多条数据** @param offset 查询起始位置* @param limit  查询条数* @return 对象列表*/@Overridepublic List<Admin> queryAllByLimit(int offset, int limit) {return this.adminDao.queryAllByLimit(offset, limit);}/*** 新增数据** @param admin 实例对象* @return 实例对象*/@Overridepublic Admin insert(Admin admin) {this.adminDao.insert(admin);return admin;}@Overridepublic int update(Admin admin){this.adminDao.update(admin);return 0;};//登录方法的实现,从jsp页面获取username与passwordpublic boolean login(String name, String pwd) {Admin admin = adminDao.queryByName(name);if (admin != null) {if (admin.getName().equals(name) && admin.getPwd().equals(pwd))return true;}return false;}/*** 通过主键删除数据** @param id 主键* @return 是否成功*/@Overridepublic boolean deleteById(Integer id) {return this.adminDao.deleteById(id) > 0;}
}
package com.example.meal_ordering_system.dao;import com.example.meal_ordering_system.entity.Admin;
import org.apache.ibatis.annotations.Param;import java.util.List;/*** (Admin)表数据库访问层** @author makejava* @since 2021-02-04 12:44:06*/
public interface AdminDao {/*** 通过ID查询单条数据** @param name 用户名* @return 实例对象*/Admin queryByName(String name);/*** 查询指定行数据** @param offset 查询起始位置* @param limit  查询条数* @return 对象列表*/List<Admin> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);/*** 通过实体作为筛选条件查询** @param admin 实例对象* @return 对象列表*/List<Admin> queryAll(Admin admin);/*** 新增数据** @param admin 实例对象* @return 影响行数*/int insert(Admin admin);/*** 修改数据** @param admin 实例对象* @return 影响行数*/int update(Admin admin);/*** 通过主键删除数据** @param id 主键* @return 影响行数*/int deleteById(Integer id);}
package com.example.meal_ordering_system.entity;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;public class Admin  {private Integer id;private String name;private String pwd;private String authority;public Admin() {}public Admin(Integer id, String name, String pwd, String authority) {this.id = id;this.name = name;this.pwd = pwd;this.authority = authority;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getAuthority() {return authority;}public void setAuthority(String authority) {this.authority = authority;}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.meal_ordering_system.dao.AdminDao"><resultMap type="com.example.meal_ordering_system.entity.Admin" id="AdminMap"><result property="id" column="id" jdbcType="INTEGER"/><result property="name" column="name" jdbcType="VARCHAR"/><result property="pwd" column="pwd" jdbcType="VARCHAR"/><result property="authority" column="authority" jdbcType="VARCHAR"/></resultMap><!--查询单个--><select id="queryByName" resultMap="AdminMap">select id,name,pwd,authorityfrom apsfc.adminwhere name = #{name}</select><!--查询指定行数据--><select id="queryAllByLimit" resultMap="AdminMap">select id,name,pwd,authorityfrom apsfc.admin limit #{offset}, #{limit}</select><!--通过实体作为筛选条件查询--><select id="queryAll" resultMap="AdminMap">selectid, name, pwd, authorityfrom apsfc.admin<where><if test="id != null">and id = #{id}</if><if test="name != null and name != ''">and name = #{name}</if><if test="pwd != null and pwd != ''">and pwd = #{pwd}</if><if test="authority != null and authority != ''">and authority = #{authority}</if></where></select><!--新增所有列--><insert id="insert" keyProperty="id" useGeneratedKeys="true">insert into apsfc.admin(name, pwd, authority)values (#{name}, #{pwd}, #{authority})</insert><!--通过主键修改数据--><update id="update">update apsfc.admin<set><if test="name != null and name != ''">name = #{name},</if><if test="pwd != null and pwd != ''">pwd = #{pwd},</if><if test="authority != null and authority != ''">authority = #{authority},</if></set>where id = #{id}</update><!--通过主键删除--><delete id="deleteById">deletefrom apsfc.adminwhere id = #{id}</delete></mapper>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html>
<head>
<title>网上订餐管理员登陆</title>
<style type="text/css">
<!--
body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;background-color: #1D3647;
}
-->
</style> <script language="JavaScript">function login11() {if (document.form1.name.value == "") {alert("请输入用户名!");document.form1.name.focus();return false;}if (document.form1.pwd.value == "") {alert("请输入密码!");document.form1.pwd.focus();return false;}}
</script><link href="${pageContext.request.contextPath}/public/admin/css/login.css" rel="stylesheet" type="text/css">
</head><body><table width="100%" height="166" border="0" cellpadding="0"cellspacing="0"><tr><td height="42" valign="top"><table width="100%" height="42"border="0" cellpadding="0" cellspacing="0" class="login_top_bg"><tr><td width="100%" height="21">&nbsp;</td></tr></table></td></tr><tr><td valign="top"><table width="100%" height="532" border="0"cellpadding="0" cellspacing="0" class="login_bg"><tr><td width="49%" align="right"><table width="91%" height="532"border="0" cellpadding="0" cellspacing="0" class="login_bg2"><tr><td height="138" valign="top"><table width="89%"height="427" border="0" cellpadding="0" cellspacing="0"><tr><td height="149">&nbsp;</td></tr><tr><td height="80" align="right" valign="top"><imgsrc="${pageContext.request.contextPath}/public/admin/images/logo.png" width="279" height="68"></td></tr><tr><td height="198" align="right" valign="top"><tablewidth="100%" border="0" cellpadding="0" cellspacing="0"><tr><td width="35%">&nbsp;</td><td height="25" colspan="2" class="left_txt"align="center"><p><img src="${pageContext.request.contextPath}/public/admin/images/icon-mail2.gif" width="16" height="11">客户服务邮箱:admin@apsfc.com</p></td></tr><tr><td>&nbsp;</td><td height="25" colspan="2" class="left_txt"align="center"><p><img src="${pageContext.request.contextPath}/public/admin/images/icon-phone.gif" width="17" height="14">官方网站:http://www.apsfc.com</p></td></tr><tr><td>&nbsp;</td><td height="25" colspan="2" class="left_txt"></td></tr><tr><td>&nbsp;</td><td width="30%" height="40"><imgsrc="${pageContext.request.contextPath}/public/admin//images/icon-demo.gif" width="16" height="16">使用说明</td><td width="35%"><imgsrc="${pageContext.request.contextPath}/public/admin//images/icon-login-seaver.gif" width="16"height="16"> 在线客服</td></tr></table></td></tr></table></td></tr></table></td><td width="1%">&nbsp;</td><td width="50%" valign="bottom"><table width="100%"height="59" border="0" align="center" cellpadding="0"cellspacing="0"><tr><td width="4%">&nbsp;</td><td width="96%" height="38"><span class="login_txt_bt">登陆网上订餐后台管理</span></td></tr><tr><td>&nbsp;</td><td height="21"><table cellSpacing="0" cellPadding="0"width="100%" border="0" id="table211" height="328"><tr><td height="164" colspan="2" align="middle"><form name="form1" action="/admin/login"method="post" onSubmit="return login11()"><table cellSpacing="0" cellPadding="0" width="100%"border="0" height="143" id="table212"><tr><td width="13%" height="38" class="top_hui_text"><spanclass="login_txt">管理员:&nbsp;&nbsp; </span></td><td height="38" colspan="2" class="top_hui_text"><inputname="name" class="name" value="" size="20"></td></tr><tr><td width="13%" height="35" class="top_hui_text"><spanclass="login_txt"> 密 码: &nbsp;&nbsp; </span></td><td height="35" colspan="2" class="top_hui_text"><inputclass="pwd" type="password" size="20" name="pwd"><img src="${pageContext.request.contextPath}/public/admin//images/luck.gif" width="19" height="18"></td></tr><tr><td width="13%" height="35">&nbsp;</td><td height="35" colspan="2" class="top_hui_text"><inputclass=AutoLogin name=AutoLogin type=checkbox value="Y"maxLength=4 size=10 id="AutoLogin"> <spanclass="login_txt"> 5天内自动登录</span></td></tr><tr><td height="35">&nbsp;</td><td width="20%" height="35"><input name="Submit"type="submit" class="button" id="Submit" value="登 陆"></td><td width="67%" class="top_hui_text"><inputname="cs" type="button" class="button" id="cs"value="取 消" onClick="showConfirmMsg1()"></td></tr></table><br></form></td></tr><tr><td width="433" height="164" align="right" valign="bottom"><imgsrc="${pageContext.request.contextPath}/public/admin/images/login-wel.gif" width="242" height="138"></td><td width="57" align="right" valign="bottom">&nbsp;</td></tr></table></td></tr></table></td></tr></table></td></tr><tr><td height="20"><table width="100%" border="0" cellspacing="0"cellpadding="0" class="login-buttom-bg"><tr><td align="center"><span class="login-buttom-txt">Copyright&copy; 2015-2020</span></td></tr></table></td></tr></table>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!--开启Spring的注解--><context:annotation-config/><!--Spring的注解扫描包路径--><context:component-scan base-package="com.example"/><!--加载数据源连接池--><bean name="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/apsfc?serverTimezone=UTC"/><property name="username" value="root"/><property name="password" value="root"/></bean><!--创建SqlSessionFactory对象--><bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!--注入数据源连接池--><property name="dataSource" ref="druidDataSource"/><!--注入Mybatis的主配置文件--><property name="configLocation" value="classpath:sqlMapConfig.xml"/><!--配置DAO的映射文件扫描路径--><property name="mapperLocations" value="classpath:mapper/*.xml"/></bean><!--加载DAO接口扫描--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--将SqlSessionFactory对象进行注入--><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!--配置DAO接口的扫描基础路径--><property name="basePackage" value="com.example.meal_ordering_system.dao.**"/></bean><!--加载事务管理器--><bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!--加载数据源连接池--><property name="dataSource" ref="druidDataSource"/></bean><!--配置事务增强通知--><!--transaction-manager加载指定的事务管理器--><tx:advice id="txAdvice" transaction-manager="transactionManager"><!--事务规则列表--><tx:attributes><!--propagation定义动作的规则--><!--REQUIRED阻断操作--><!--NOT_SUPPORTED非阻断操作--><!--对新增数据操作的规则定义--><tx:method name="insert*" propagation="REQUIRED"/><tx:method name="add*" propagation="REQUIRED"/><!--对修改数据操作的规则定义--><tx:method name="update*" propagation="REQUIRED"/><tx:method name="edit*" propagation="REQUIRED"/><!--对删除数据操作的规则定义--><tx:method name="delete*" propagation="REQUIRED"/><!--对查询数据操作的规则定义--><tx:method name="get*" propagation="NOT_SUPPORTED"/><tx:method name="select*" propagation="NOT_SUPPORTED"/><tx:method name="query*" propagation="NOT_SUPPORTED"/></tx:attributes></tx:advice><!--托管通知工具类--><bean name="advice" class="com.example.meal_ordering_system.util.AdviceUtil"/><!--切面的配置--><aop:config><!--切面定义在Service层--><aop:pointcut id="pointCut" expression="execution(* com.example.meal_ordering_system.service..*(..))"/><!--将事务增强通知与切面进行绑定--><aop:advisor advice-ref="txAdvice" pointcut-ref="pointCut"/><!--切面织入--><aop:aspect ref="advice"><aop:before method="before" pointcut-ref="pointCut"/><aop:after method="after" pointcut-ref="pointCut"/><aop:around method="around" pointcut-ref="pointCut"/><aop:after-throwing method="exception" pointcut-ref="pointCut"/></aop:aspect></aop:config>
</beans>


http://chatgpt.dhexx.cn/article/S2B8877b.shtml

相关文章

基于SSH的网上订餐系统设计与实现

目录 摘 要 I 第一章 引言 1 1.1背景和意义 1 1.2国内外现状 1 第二章 系统开发平台 3 2.1开发工具介绍 3 2.2主要开发技术介绍 4 2.2.1 JavaEE平台 4 2.2.2 SSH技术介绍 5 2.2.3 MySQL数据库 7 2.3系统环境需求 8 第三章 需求分析 9 3.1可行性分析 9 3.1.1经济可行性 9 3.1.2…

Java简单小项目---网上订餐系统

1、系统需求说明 概要&#xff1a;现今已进入网络时代&#xff0c;网上购物、看新闻、交友等人们的日常生活已离不开网络。“只要点点手指&#xff0c;就能送餐上门”&#xff0c;网上定餐越来越受到都市年轻人的青睐 现要求开发一个网上订餐系统&#xff0c;其具体功能如下…

基于Java的网上订餐系统(附:源码 课件)

项目介绍 基于SSM框架实现一个网上点餐系统&#xff0c;包括用户端和管理员端; 前台主要功能有用户注册, 用户登录, 我的购物车、我的订单、用户中心、我的餐车,配送说明等; 管理员端主要功能有&#xff1a;菜单管理、公告管理、销售订单管理、系统用户管理等 运行环境 jdk8…

SSM+校园网上订餐系统 毕业设计-附源码211510

校园网上订餐系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对校园网上订…

统计网站访问量

要统计网站访问量&#xff08;访问人次&#xff09;&#xff0c;即PV&#xff0c;需要下载相应的插件。 第1步&#xff0c;将插件文件复制到网站目录&#xff08;插件下载地址http://pan.baidu.com/s/1hOfNK 密码: g3t5 &#xff09; 第2步&#xff0c;在模板中相应位置加入以…

javaweb之统计网站访问量小案例

效果图 主页 第一次访问 第二次访问 切换浏览器&#xff0c;数据连续累加&#xff08;全局作用域&#xff0c;服务器不重启&#xff0c;数据会一直保留&#xff09; html代码 <h2><a href"CountServlet">点我查看网站访问量</a></h2>Count…

php+mysql实现统计网站访问量(一)

环境&#xff1a;centos6.9&#xff1b;mysql5.1&#xff1b;php7.2 1.创建一个存储数据的表 create table wp_jc_count(id int not null auto_increment primary key,ip varchar(20) not null,times int default 0);2.创建一个php脚本 <?php class visitorInfo {//获取…

网站每天的总访问量、总带宽、ip统计和url统计

脚本内容 根据情况自行修改变量 log_path domain email [rootcentos8 ~]# cat logall.sh #!/bin/bash log_path/var/log/nginx/access.log domain"csctbb.com" email"1547571920qq.com" maketimedate %Y-%m-%d" "%H":"%M logdatedat…

网站访问量统计实现.

通过用户对网站的访问,来统计该网站的总访问量.实现起来非常简单.把每一次访问的数累加即可.由于数据 更新频繁,所以数据存储在文本文件中.每次更新其中的文本文件数据即可. 然后把数字替换成相应图片.不知道为何,CSDN又不能上传图片了.CSDN的blog做得很不稳定..图略.(非常简…

如何统计网页访问量

目录 一、搭建Nginx服务 安装Nginx服务 第一步 关闭防火墙和安全机制 第二步 安装扩展包 第三步 安装Nginx和依赖环境 第四步 安装依赖包 第五步 创建一个用户和组 第六步 解包 第七步 进入Nginx目录下编译安装 第八步 进行编译 第九步 添加系统识别操作 第十步 检…

网站访问量统计 | hexo

这里使用的是不蒜子提供的阅读统计功能&#xff0c;使用的hexo主题是next。 以下是方法。 添加是否开启统计功能的配置 找到next主题的配置文件themes/next/_config.yml&#xff0c;找到原来的footer字段&#xff0c;加入一个配置&#xff0c;这里我们叫它counter吧&#…

怎样在网站中实现统计访问量的功能

有很多网站都会加一个访问量统计的功能&#xff0c;其实代码很简单&#xff0c;全都是js写的&#xff0c;而且代码也不多 这个功能解释一下就是&#xff0c;每访问一次&#xff0c;网页上面写的访问量就会增加一个&#xff0c;依次类推&#xff0c;下面就与大家分享一下实现这个…

【转载】如何统计分析网站的访问量

在网站建设完成后&#xff0c;很多人都希望统计到网站的访问情况&#xff0c;如访问了哪个页面、页面停留时间、访问者的IP地址以及访问设备、访问者所在的省份区域、访问来源等诸多信息&#xff0c;要实现这种功能可以自行编写代码&#xff0c;从http请求信息中获取&#xff0…

网站访问量实时统计

一、需求&#xff1a;统计网站访问量&#xff08;实时统计&#xff09; 技术选型&#xff1a;特点&#xff08;数据量大、做计算、实时&#xff09;实时流式计算框架&#xff1a;storm1)spout 数据源&#xff0c;接入数据源 本地文件2)splitbolt 业务逻辑处理 切分数据 拿到网址…

如何实现网站访问量统计(html页面)

如何为HTML网页添加访问计数器 如何实现网站访问量统计 不利用站长之家实现网站访问量统计 一行代码实现访问量统计 1. 访问http://www.amazingcounters.com/index.php网站 2. 进入网站后选择Sign Up 3. 选择一个能看的统计数字界面 4. 然后拉到底端进入下一步

统计网站的访问次数

本文介绍如何利用ServletContext统计一个网站的访问总量&#xff0c;而不是分IP地址统计网站的访问次数。这个练习题是一个固定的模型&#xff0c;先获取值&#xff0c;然后对值进行判断&#xff0c;如果值存在如何处理&#xff0c;如果值不存在又如何处理&#xff0c;然后输出…

web开发技术重点

一、单项选择 (30题共30分) 来自课后习题html、css 二、判断 (10题共10分) 来自课后习题html、css 三、简答题 (4题共20分) 八选四 P24 简述HTML代码书写规范 (1)标签可以嵌套使用&#xff0c;但要注意标签间的前后匹配&#xff0c;避免引起交叉而出现语法错误…

JavaWeb技术

目录 背景&#xff1a;B/S架构&#xff1a;静态资源&#xff1a;动态资源&#xff1a; Tomcat&#xff1a;Maven创建Web项目&#xff1a;使用骨架&#xff1a;Tomcat Maven插件 ServletServlet 执行流程Servlet 生命周期urlPattern配置Request请求参数中文乱码解决方案请求转发…

WEB技术与应用---概述

WEB技术与应用–概述 万维网 概述&#xff1a;万维网www&#xff08;world wide web&#xff09; 1.web模型 2.web客户端 3.web服务器 超链接&#xff1a; 超链接指向的资源可以处于lnternet的任一Web服务器之中&#xff0c; 利用超链接Web页面可以与其他Web页面进行关联。…

web各个技术

Web 知识框架 控制浏览器行为技术&#xff1a;HTML 、CSS 、JavaScript控制硬盘上数据库行为技术&#xff1a;MySql数据库服务器管理使用&#xff08;SQL重点&#xff09;、JDBC规范控制服务端Java行为技术&#xff1a;Http服务器、Servlet、JSP互联网通信流程开发规则&#…