【java web篇】Servlet体系结构与urlPatten配置
2023-09-27 14:26:52 时间
📋 个人简介
- 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜
- 📝 个人主页:馆主阿牛🔥
- 🎉 支持我:点赞👍+收藏⭐️+留言📝
- 📣 系列专栏:java 小白到高手的蜕变🍁
- 💬格言:要成为光,因为有怕黑的人!🔥
前言
之前讲了servlet的快速入们以及执行流程和生命周期,这节我们就来看看servlet的体系结构以及web开发中基本都一样的路由配置!
Servlet体系结构
关于Servlet的集成体系结构看下图:
这张图很清晰的描述了Servlet的体系结构,我们的快速入门是以继承的Servlet体系根接口,而我们的web项目都是用封装好的HttpServlet,下面就来探究一下!
首先看看HttpServlet的书写格式:
@WebServlet("/demo2")
public class ServletDemo2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("get...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("post...");
}
}
当然,post的请求是要写个html页面来测试的,在webapp下新建a.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>post表单</title>
</head>
<body>
<form action="/tomcat-demo/demo2" method="post">
<input name="username"> <input type="submit">
</form>
</body>
</html>
然后我们探究HttpServlet中问什么要根据请求方式的不同,调用不同的方法?
来看看原始的Servlet接口对get和post请求的处理:
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
// 根据请求方式的不同进行不同处理
HttpServletRequest request = (HttpServletRequest) servletRequest;
// 1.获取请求方式
String method = request.getMethod();
// 2.判断
if("GET".equals(method)){
// get 处理逻辑
}else if("POST".equals(method)){
// post 处理逻辑
}
}
处理逻辑无非机遇是个判断,没啥麻烦的,但问题是每一个Servlet中你要都这么写,是不是很麻烦,所以HttpServlet就帮我们封装好了doGet()和doPost()方法来分别处理get和post请求!(当然你也可以自己自定义一个类去实现Servlet接口,封装get和post方法!)
我们来看看HttpServlet的源码:
应该能看懂,原理和上面说的一模一样!
urlPatten配置
这个web开发中基本都差不多,我不再多说,贴一张图看看就行,同时,Servlet 3.0之后简化了路由配置,现在是使用注解(python中一模一样,只不过叫装饰器),之前是xml的方式配置,比较麻烦,我也不会总结!
结语
如果你觉得博主写的还不错的话,可以关注一下当前专栏,博主会更完这个系列的哦!也欢迎订阅博主的其他好的专栏。
🏰系列专栏
👉软磨 css
👉硬泡 javascript
👉flask框架快速入门
相关文章
- 简单学JAVA之---接口的定义与实现
- java中ThreadPool的介绍和使用
- linux下配置java环境
- Java课程课堂作业代码
- java.lang.IllegalStateException: 由于没有提供multi-part配置,无法处理parts
- 安装java时,配置环境变量classpath的作用
- Java核心技术卷I基础知识3.10.5 数组排序
- Java IO: 文件
- JAVA17---安装+配置环境变量 JAVA安装完整教学
- java: 无效的目标发行版: 11
- Spring Boot 整合 Quartz 实现 Java 定时任务的动态配置
- Java并发编程学习笔记 深入理解volatile关键字的作用
- 学习JAVA,如何从入门到精通
- Java线程池newSingleThreadExecutor newFixedThreadPool newCachedThreadPool newScheduledThreadPool
- Java中如何判断两个对象是否相等(Java equals and ==)
- 从零开始学 Java - Spring 一主多从、多主多从 数据库配置
- Java的环境变量配置
- Java_动态重新加载Class总结
- Dynamic Web Module 3.0 requires Java 1.6 or newer
- 华为OD机试 - 求最多可以派出多少支团队(Java) | 机试题+算法思路+考点+代码解析 【2023】
- 二分法(折半查找)的运用之java实现猜数字游戏
- Java Web实战开发 | JDK的安装与配置
- 解读Java环境变量配置
- java开发环境配置(windows下JDK7+tomcat7)
- ehcache memcache redis -- java中的三大缓存
- 一键配置Java 环境变量,免安装绿色版本
- 习题5.7 编写Java应用程序,比较命令行中给出的两个字符串是否相等,并输出比较的结果。
- java:springboot1.x/springboot2.x配置swagger2登录密码/设置swagger访问权限