JavaWeb-复习回顾(上)
admin
2024-03-05 11:47:31
0

文章目录

  • 一、JavaEE和JavaWeb的区别
  • 二、项目创建的两种方式
  • 三、三大组件
  • 四、请求和响应
  • 五、创建Servlet的三种方式
  • 六、配置Servlet
  • 七、Servlet其他对象
  • 八、url-pattern
  • 九、application域对象ServletContext
  • 十、常见请求码
  • 十一、转发和重定向
  • 十二、jsp
    • 1、jsp中java脚本的写法
    • 2、jsp中三大指令
  • 十三、session域对象HTTPSession
  • javaweb常见面试题
    • 1、Servlet的生命周期
    • 2、四大域对象
    • 3、jsp九大内置对象
    • 4、session工作原理

一、JavaEE和JavaWeb的区别

什么是javaEE呢?
javaEE包含两个部分:B/S(浏览器/服务器)架构以及C/S(客户端/服务器)架构 
而JavaWeb属于B/S架构,是基于浏览器的,所以可以说javaEE包含了JavaWeb两者使用的服务器也不同:
javaweb使用的服务器是Tomcat
JavaEE使用的服务器是TomEE

二、项目创建的两种方式

静态创建动态创建
了解即可借助Idea软件,参考博客:javaweb项目创建

三、三大组件

ServletFilterLisenter
接收、处理、响应用户请求过滤器,拦截请求监听器,监听某一行为

四、请求和响应

请求响应
组成请求头、请求体(get没有,post有)响应头、响应体(又称响应正文)

五、创建Servlet的三种方式

创建方式实现Servlet接口继承GenericServlet抽象类继承HTTPServlet抽象类 (开发常用)
所属包javax.servletjavax.servletjavax.servlet.http
区别能够看到Servlet的生命周期,但是比较繁琐跟前一个相比,继承该类后只需要实现其中的service方法避免了重写多个方法,只需要重写doGET和doPOST来处理请求(后续不再需要手动创建Servlet类,可以使用快捷的方式)

六、配置Servlet

方式WEB-INF/web.xml在Servlet类上
操作使用标签的方式完成Servlet的配置,但是过于繁琐通过在类上方添加注解的方式(后续使用较多)

七、Servlet其他对象

名称ServletConfigServletRequestServletResponse
在init()函数中请求对象创建响应对象创建
常见方法------getParameter(String name) 根据请求参数name拿到请求参数的值getWriter() 得到字符响应输出流,可以往页面写内容

八、url-pattern

/字符串/字符串/**.字符串/*
精准匹配到字符串前缀匹配,只要前面是该字符串的都会匹配到后缀匹配,以该字符串结尾的都会匹配到匹配所有

九、application域对象ServletContext

\
生命周期 =>跟随Tomcat,Tomcat启动时创建,关闭时销毁
作用范围 =>由于是application域的对象,所以在整个项目中都有效
存放内容=>存放的是 key=value 的键值对,key为String类型,value为Object类型
创建方式=>通过ServletConfig的getServletContext()方法得到直接通过this.getServletContext()方法获得

十、常见请求码

200304404405400500
成功转发资源不存在不支持请求方式失败请求服务器内部错误

十一、转发和重定向

名称转发重定向
区别转发到一个页面后存在request域中的值还是能够访问到重定向到一个页面后存在request域中的内容将不能够被访问
使用场景数据存活周期短,只在一次请求中有效除了前面的情况外,其他都用该方法
共同点都可以进行页面的跳转

十二、jsp

1、jsp中java脚本的写法

语法<% %><%= %><%! %>
作用java能够写的代码这里都能写,也可以调用response,不能定义属性将表达式的结果在页面展示如a+1,不能写if语句定义属性,定义方法 如private int b=10

2、jsp中三大指令

pagetaglibinclude

十三、session域对象HTTPSession

获取方式保存和获取的方法删除的方法session存活时间
request.getSession()setAttribute(),getAttribute()invalidate默认存活时间为30分钟

javaweb常见面试题

1、Servlet的生命周期

1、Servlet默认情况下是第一次请求发起时有Tomcat创建
2、先调用init()函数,由Tomcat创建,只调用一次,又叫做生命周期函数
3、用户每请求一次Servlet,Tomcat都会调用一次service()函数
4、在Tomcat关闭时销毁所有的对象,包括Servlet,而在Servlet销毁之前会调用destroy()函数,释放资源,只执行一次

2、四大域对象

<作用范围从大到小>

名称applicationsession(常用)request(常用)page
作用范围整个项目都有效在同一次会话中有效(从浏览器打开开始到关闭结束)在同一次请求中有效(只有请求了该页面才能够有效)在同一个页面有效

3、jsp九大内置对象

都可以直接使用,不需要创建

四大域对象applicationsessionrequestpageContext
响应对象response
响应流对象out
配置对象config
表示thispage
异常exception

4、session工作原理

服务器会为用户创建一个Session对象,
并且把sessionId以cookie的方式保存在用户浏览器中,
用户每次发送请求都会把cookie和JSESSIONID带回服务器服务器拿到cookie中的JSESSIONID后到session池中进行匹配
得到对应的session对象,这样服务器就知道当前请求是哪个会话
的如果客户端的cookie被删除了,那么请求不会带Jsessionid,那么服务器就无法匹配到session池中的对象,而30分钟后该session中的对象就会自动销毁如果服务器把session删除了,那么就算客户端有sessionid的cookie,也无法得到session池中对应的session对象,这时服务器会重新创建一个新的session并将新的sessionid以cookie的形式保存进客户端

相关内容

热门资讯

战力“超预期”,黎真主党是怎么... 本文转自【新华国际头条】; 美国和以色列对伊朗进行大规模军事打击后,黎巴嫩方向战火也愈演愈烈。以色列...
微信宣布:这项功能将全面停运 4月2日消息,微信宣布“微信支付有优惠”小程序将于2026年12月31日结束运营,相关服务将整合升级...
特朗普暗示再次推迟摧毁伊朗能源... 本文转自【新华网】; 新华社华盛顿4月5日电 美国总统特朗普5日在社交媒体发文称,“美东时间周二(7...
特朗普暗示最后期限推迟1天,伊... 当地时间4月5日,美国总统特朗普在接受采访时再次发出最后通牒,称若在4月7日期限前无法与伊朗达成协议...
以色列宣布已停止所有对法国防采... 当地时间5日,总台记者获悉,据以色列国防军发言人消息,由于法国采取了多项“损害以色列安全”的措施,包...
俄称打击乌军用机场 乌称击落大... 俄罗斯国防部5日通报称,过去一天,俄军对148个区域的乌克兰武装部队使用的军用机场、能源和燃料基础设...
伊朗最高领袖最新发声 央视新闻 当地时间4月5日,伊朗最高领袖穆杰塔巴·哈梅内伊在社交媒体发文称,伊朗人民的意愿是继续开展...
贵州:2025年推动城中村改造... 8月1日消息,贵州省人民政府办公厅近日印发《贵州省提振消费专项行动实施方案》。其中提出,满足住房消费...
天臣医疗:累计回购250.53... 8月1日消息,天臣医疗公告,公司于2023年12月27日至2025年12月26日期间实施股份回购计划...