当前位置: 首页 > ai >正文

关于JavaWeb的总结笔记

  • JavaWeb

    • 基础

      • 描述

        • Web服务器的作用是接受客户端的请求,给客户端响应

      • 服务器的使用

        • Tomcat(最常用的)

        • JBoss

        • Weblogic

        • Websphere

      • JavaWeb的三大组件

        • Servlet

          • 主要负责接收并处理来自客户端的请求,随后生成响应结果。例如,在处理用户登录请求时,Servlet 能够验证用户输入的账号和密码是否正确,并依据验证结果返回相应提示信息给客户端。

        • JSP

          • 基于 HTML 页面嵌入 Java 代码片段或表达式,从而实现动态网页内容的生成与展示。以显示商品列表页面为例,借助 JSP 可从数据库获取商品数据,并在页面中动态呈现商品名称、价格等信息。

        • JavaBean

          • 是一种Java的对象用于封装数据例如:可创建一个 JavaBean 类封装用户的姓名、年龄、性别等属性及其相关的获取和设置方法。

      • 服务器相应码

        • 404 Not Found

          • 含义:服务器无法找到客户端请求的资源。这可能是因为资源不存在、URL 拼写错误等原因

        • 500 Internal Server Error

          • 服务器在处理客户端请求时发生了内部错误。这可能是由于代码错误、服务器配置错误、数据库故障等原因导致的。

        • 503 Service Unavailable

          • 服务器暂时无法处理客户端请求,通常是由于服务器过载、维护或者其他临时故障导致的。

    • Servlet

      • 三种实现方式

        • 实现Servlet接口

          • 需要重写的方法

          • 接口方法的详解init() Servlet在创建的过程中自动调用的方法 。 service()处理客户端请求的方法。Servlet的每调用一次,service()方法就执行一次。 getServletInfo() 放回Servlet的描述信息。 destroy()服务端任务结束,调用该方法摧毁Servlet的对象。

        • 继承GenericServlet类

          • GenericServlet类 帮我们把其他四个方法都实现类, 只留下一个抽象service() 让我们重写

        • 继承HttpServlet类(最推荐的方式)只需要重写doGet()和doPost()方式说明:两种方式都是来处理客户端发送来的请求,写在服务端,是Javaweb处理业务的逻辑的核心代码代码,由程序员来完成。可以实现登录、注册等基础业务。

      • Servlet的生命周期:

        • Servlet对象会在第一次访问的时候由tomcat自动创立,并调用init()初始化方法,而且 一个Servlet类型,服务器只创建一个实例对象 。之后每次访问都会调用Servlet()方法。在服务器结束后调用destroy()摧毁Servlet

    • 请求(request)与响应(response)

      • 一个JavaWeb响应的整个流程

      • requset

        • request概述

          • 在客户端发出每个请求时,服务器都会创建一个request对象,并把请求数据封装到request中,然后在调用Servlet.service()方法时传递给service()方法,这说明在service()方法中可以通过request对象来获取请求数据。

        • 作用

          • 封装了请求头数据; 封装了请求正文数据,如果是GET请求,那么就没有正文; request是一个域对象,可以把它当成Map来添加获取数据; request提供了请求转发和请求包含功能

        • 两种请求的区别 Get请求: 直接在浏览器地址栏输入网址 使用<a href=""/> 也是get请求 使用提交表单form, method没有写, 写get Post请求: 使用提交表单form, method =“post”get 请求,post请求区别: get请求,请求参数通过url传递, post请求: 通过请求体传递参数 get请求不安全, 有敏感字段, 一定不能使用get, post请求安全一些 get请求无法传递文件参数, 提交文件必须使用post请求 get请求参数有大小限制: 4KB, post请求没有限制

        • request域的方法

          • void setAttribute(String name, Object value):用来存储一个对象

          • servletContext.setAttribute(“xxx”, “XXX”),在request中保存了一个域属性,域属性名称为xxx,域属性的值为XXX。

          • Object getAttribute(String name):用来获取request中的数据,当前在获取之前需要先去存储才行

          • void removeAttribute(String name):用来移除request中的域属性

        • 请求转发

          • 概念:客户一个请求,都表示由多个Servlet共同来处理一个请求。例如Servlet1来处理请求,然后Servlet1又转发给Servlet2来继续处理这个请求。如果在AServlet中请求转发到BServlet,那么在AServlet中就不允许再输出响应体,即不能再使用response.getWriter()和response.getOutputStream()向客户端输出,这一工作应该由BServlet来完成

      • response

        • 概念

          • response是响应对象,向客户端输出响应正文(响应体)可以使用response的响应流

        • 字符编码

          • 在使用response.getWriter()时需要注意默认字符编码为ISO-8859-1,如果希望设置字符流的字符编码为utf-8,可以使用response.setCharaceterEncoding(“utf-8”)来设置。这样可以保证输出给客户端的字符都是使用UTF-8编码的!

        • 关于重定向

          • 当你访问http://www.sun.com时,你会发现浏览器地址栏中的URL会变成http://www.oracle.com/us/sun/index.htm,这就是重定向了。重定向是服务器通知浏览器去访问另一个地址,即再发出另一个请求。

          • 重定向是两次请求; 重定向的URL可以是其他应用,不局限于当前应用; 重定向的响应头为302,并且必须要有Location响应头; 重定向就不要再使用response.getWriter()或response.getOutputStream()输出数据,不然可能会出现异常;

      • 请求转发与重定向比较

        • - 请求转发是一个请求,而重定向是两个请求; - 请求转发后浏览器地址栏不会有变化,而重定向会有变化,因为重定向是两个请求; - 请求转发的目标只能是本应用中的资源,重定向的目标可以是其他应用; - 请求转发对AServlet和BServlet的请求方法是相同的,即要么都是GET,要么都是POST,因为请求转发是一个请求; - 重定向的第二个请求一定是GET; - 请求转发是在服务端内部执行的,而重定向是在客户端执行的.

    • Cookie

      • 概念

        • Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务器。

      • 创建方式

        • response.addCookie(cookie)

      • 注意

        • - Cookie大小上限为4KB; - 一个服务器最多在客户端浏览器上保存20个Cookie; - 一个浏览器最多保存300个Cookie;

      • 应用案例

        • 用户身份验证和会话管理:通过 Cookie 可以记录用户的登录状态。比如,用户登录成功后,服务器会设置一个包含用户 ID 或登录令牌的 Cookie。在用户访问网站的其他页面时,服务器通过检查这个 Cookie 来确定用户是否已经登录,避免用户在每个页面都需要重新输入登录信息。

    • 过滤器(Filter)

      • 概念

        • 当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么会继承执行用户请求的Servlet;如果Filter不“放行”,那么就不会执行用户请求的Servlet。

      • 实现案例

        • 过滤器就是写一个类,实现Filter接口。需要在web.xml部署Filter: <filter> <filter-name>helloFilter</filter-name> <filter-class>cn.itcast.filter.HelloFilter</filter-class> </filter> <filter-mapping> <filter-name>helloFilter</filter-name> <url-pattern>/index.jsp</url-pattern> </filter-mapping>

http://www.xdnf.cn/news/15878.html

相关文章:

  • 云原生周刊:K8s 中的后量子密码学
  • 【学习路线】C#企业级开发之路:从基础语法到云原生应用
  • docker 容器学习
  • zabbix企业级分布式监控环境部署
  • 【Prometheus+Grafana篇】监控通过Keepalived实现的MySQL HA高可用架构
  • 在翻译语义相似度和会议摘要相似度评估任务中 ,分类任务 回归任务 生成任务区别
  • 布局AI +文化新赛道,浙江省文化产业投资集团赴景联文科技调研交流
  • uniapp【uni-ui】【vue3】样式覆盖方式记录
  • Git上传与下载GitHub仓库
  • Neo4j 5.x版本的导出与导入数据库
  • 【系统全面】Linux内核原理——基础知识介绍
  • Python-数据库概念-pymysql-元编程-SQLAlchemy-学习笔记
  • 【ASP.NET Core】ASP.NET Core中Redis分布式缓存的应用
  • Python day20 - 特征降维之奇异值分解
  • 隧道代理的动态IP切换机制与实现原理
  • 农村供水智慧化管理系统:从精准监测到智能调度,破解农村用水安全与效率难题
  • 康复器材动静态性能测试台:精准检测,为康复器械安全保驾护航
  • Gradio项目部署到魔搭创空间
  • 开发避坑短篇(3):解决@vitejs plugin-vue@5.0.5对Vite^5.0.0的依赖冲突
  • [特殊字符] Java反射从入门到飞升:手撕类结构,动态解析一切![特殊字符]
  • Dockerfile 完全指南:从入门到精通
  • Three.js 全景图(Equirectangular Texture)教程:从加载到球面映射
  • AR技术:石化行业培训的“游戏规则改变者”
  • 【C语言】字符串与字符函数详解(下)
  • 【UE5医学影像可视化】读取dicom数据生成2D纹理并显示
  • Python趣味算法:借书方案知多少 | 排列组合穷举法详解
  • 均值漂移累积监测算法(MDAM):原理、命名、用途及实现
  • 分治算法---归并
  • 【java】消息推送
  • 编程语言Java入门——核心技术篇(一)封装、继承和多态