Web(B/S架构)

B/S架构

HTTP

请求数据格式

get和post的请求参数不一样

get的请求参数在请求行,没有请求体

post的请求参数在请求体

响应格式

状态码

通过

404去改路径

服务端

500去修改java代码

Tomcat

部署

Web项目

创建web项目

1.使用骨架

2.不适用骨架

部署到idea

通过pom文件配置

Servlet

实现Servlet接口,重写五个方法

Tomcat会创建servlet对象和自动调用service方法

Request放的是请求的数据,response可以设置成相应的数据

servlet执行流程

servlet生命周期

init()只会被执行一次,sercive()方法是每次请求都会被调用

init()在创建对象时默认调用一次,调用完就不会再调用了

配置服务器启动时自动创建Servlet对象,使用注解时,要是有多个值不能省value=,现在要设置另外一个值,因此要加上url=

service()方法,多次调用

destory()方法

getSercletConfig方法的返回值是一个Sercletconfig对象,而init要传入的参数就是Sercletconfig对象,要把局部变量变成成员变量

先在外面定义config,再在init里面this.config就可以给成员变量赋值,在整个类中都可以用

Serclet体系结构

针对HTTP协议自定义Servlet都会继承HttpServlet,再重写doget()和dopost()方法

收到get请求就会执行doget,收到post请求就会执行dopost

自己实现dpget和dopost

在子类中重写doget和dopost方法;注意:这种写法就是运用多态,对象可以调用父类所有的方法和调用子类中重写的方法,所以可以调用父类的service方法和调用子类的dopost,doget

可以再urlPattern中配置多个访问路径,用数组的形式{}

urlpattern配置

当一个路径同时满足精确匹配和目录匹配,优先调用精确匹配

XML配置servlet

Request和Response

Request

Request

获取请求行的数据方法

获取请求头的数据

获取请求体的数据(post请求中)

字节:文件,图片用字节输入流

字符:文本用字符输入流

通过Request对象先获取输入流的对象,再用br去调用readline(读一行的信息)

前端这个表格一提交就会提交到/req1这个目录下

执行过程

提交完

get获取参数的方法

post获取参数的方法

由于业务逻辑一样,可以用this.doGet简化代码

Request获取请求参数的方法,request会将数据封装成键值对的形式放到map集合中,这个map集合中键是String类型,值是String的数组

1.getparameter();将这个存放数据的map集合返回回来

2.通过键获得值,值是数组String类型的

3.通过键获得单个值

1.遍历map集合;用keyset()获得所有键并返回放在一个set集合中;再用get()方法传入key键名获取对应的值,由于值可能是一个字符串数组;因此也要遍历这个值

注意:这里每个键的名字和都是前端中对应的name,每一个框都是一对键值对,键的名字是前端的name,值就是自己输入的内容

2.根据key获取值的数组

传入复选框的名字进来获取一个string数组

3.根据key获取单个值

Post请求

方法完全一模一样

用this简化

解决post请求中文乱码,设置utf-8

get处理乱码

方法:先编码再解码

请求转发

setAtt存放数据,放一对键值对数据进入域中,会随着发送到req6的时候发送过去

getAtt获取,根据键的名称获取

Response

设置响应数据

response完成重定向

简化重定向

虚拟目录

动态获取虚拟目录

设置响应字符数据的响应体

用Response对象调用setheader方法,传入html,告诉浏览器用html来解析

设置中文不会乱码,setconttype

响应字节数据

先用输入流fis读取文件信息,再用response对象获取字节输出流;设置一个数组,循环中每次fis倒入数组buff一定大小的字节,用os.write来读取buff数组中的元素

导入xml,用工具完成copy

用户登录

定义接口,注意接口中有多个参数要加注解@param后面跟着的名字要和传入#{}的名字相同

前端的form表单中路径前记得加/并且要加虚拟路径

mybatis的代码完成

使用响应,将数据传递给页面

用户注册

接口

xml中,id是自增长,传入null就可以

要是空就添加对象,记得要开启事务commit!!!

代码优化,创建一个工具类

解决乱码

修改

回显操作,当进行修改操作时,要将原来的数据回显到上面

Dao

Service

前端

将修改加上超链接,并将id放到没一个超链接后面

Web

先接收传进来的id,再用selectbyid查询;将查询到的brand对象存储到request数据域中,一同发给jsp

数据回显,利用数据域中的brand和el表达式

在mapper中加入resultmap

相关推荐
摇滚侠9 分钟前
DBeaver 导入数据库 导入 SQL 文件 MySQL 备份恢复
java·数据库·mysql
keep one's resolveY33 分钟前
SpringBoot实现重试机制的四种方案
java·spring boot·后端
天空属于哈夫克31 小时前
企业微信API常见的错误和解决方案
java·数据库·企业微信
摇滚侠2 小时前
VMvare 虚拟机 Oracle19c 安装步骤,远程连接 Oracle19c,百度网盘安装包
java·oracle
梁萌2 小时前
idea报错找不到XX包的解决方法
java·intellij-idea·启动报错·缺少包
Agent产品评测局2 小时前
生产排期与MES/ERP系统打通,实操方法详解 —— 2026企业级智能体自动化选型与实战指南
java·运维·人工智能·ai·chatgpt·自动化
阿丰资源2 小时前
基于Spring Boot的电影城管理系统(直接运行)
java·spring boot·后端
呱牛do it3 小时前
企业级门户网站设计与实现:基于SpringBoot + Vue3的全栈解决方案(Day 8)
java
消失的旧时光-19433 小时前
Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包
java·spring boot·后端·aop·自定义注解
计算机安禾4 小时前
【Linux从入门到精通】第36篇:DNS服务探秘——自己搭建一个内网DNS
linux·运维·servlet