javaweb JSP SERVLET

javaweb JSP SERVLET

servlet

servlet 是java实现动态web的一个接口,配合 jsp实现 B/S 架构,servlet的实现类有 genegatic servlet 和 httpservlet。 httpservlet 继承 genegatic servlet ,genegatic servlet 实现了servlet接口,两个都是抽象类,使用时我们自己定义一个类继承httpservlet即可。

JSP

jsp就是 HTML 代码里面包含了一些 java代码,本质上和 html 代码区别不大

tomcat

tomcat是javaweb服务器,我们将写好的网站发布在里面,配置好项目发布路径deployment。我们写的每一个servlet都要在 WEB-INF下面的 web.xml 中写好servlet 映射,如下
在这里插入图片描述

servletcontext servlet上下文

web容器在启动的时候会为每个web程序创建一个对应的servletcontext对象,他代表了当前的web应运。所有用户可共享,在jsp中相当于applicationContext

1.servletcontext可以共享数据

在这里插入图片描述

2.servletcontext可以在web.xml 中配置的初始化参数

3.servletcontext请求转发

转发的时候url路径不会发生变化,和重定向相反。
RequestDispatcher dispatcher=context.getRequestDispatchR;
在这里插入图片描述

3.servletcontext可以加载属性配置文件

InputStream is = context.getResourceAsStream();
在这里插入图片描述

4.cookie

cookie是小饼干,保存在客户端,第一次访问某个网址的时候没有cookie,该网站不认得这个用户,所以给客户端发送一个cookie,相当于通行证,下次来的时候就认识了,下次来的时候带上cookie.

购物车问题:当我登录时,客户端发送请求,服务器记录下客户端的信息(给用户发一个通行证:Cookie),然后向客户端响应response中带上这个Cookie,浏览器保存这个Cookie,当用户想要将物品加入购物车,客户端发送加入购物车请求,就仅需带上Cookie通行证,有了这张通行证,服务器就记得这是哪个用户,然后就能简单的处理请求

cookie就相当于一个键值对,只能保存一个信息,每次服务器给客户端更新的cookie,键一样的话便会刷新该键值对。
在这里插入图片描述
服务器可以设置发给浏览器的cookie的有效期,不设置的话关闭浏览器则浏览器中的cookie就失效删除,设置了有效期的话在有效期内cookie一直存在于浏览器缓存里。

5.Session

  1. 服务器会给每一个浏览器创建一个session对象。
  2. 一个session独占一个浏览器,只要浏览器没关闭这个session就存在,
  3. 用户登录过后,这个网站都可以访问。
    Httpsession session=req.getSession();
    session也是通过请求获得的,session是保存在服务器中的。

服务器在为浏览器创建session的时候,会把sessionID当做 cookie 发送给浏览器,这样浏览器中对于这个网站的cookies中有一个关于 sessionID的cookie。
在这里插入图片描述

在这里插入图片描述
可以通过session 保存一些信息 session.setAttribute(); session.getAttribute();只要是同一个浏览器req得到的session, 在服务器中都是同一个session。
session是一个网站对于一个浏览器来说的,我们可以通过session在多个servlet之间传递数据。

使用场景

1.保存用户的登录信息
2.购物车信息
3.整个网站经常要用到的信息 ,保存在session中。
在这里插入图片描述
在这里插入图片描述

6. JSP java服务器页面

写jsp就相当于写html,html只给用户提供静态数据,jsp可以嵌入java代码。为用户提供动态数据。jsp是一种开发动态web的技术.

浏览器想服务器发送请求,不管访问什么资源,其实都是在访问servlet。
jsp最终也会被转换成java类。jsp本质上就是一个servlet,其父类继承了httpservlet。 访问jsp页面不需要再web.xml中注册servlet,因为jsp本身就是servlet,直接访问 index.jsp就行啦。
jsp里面的 applicationContext 其实就是web项目的servletContext,jsp所生成的java类里面会把相应的html代码通过resp发送到浏览器。
在这里插入图片描述
在这里插入图片描述
jsp里面可以直接写java代码:
<%= %> 直接输出等号后面的java表达式,EL表达式更好 ${ }.
<% %> 执行尖括号里面的java表达式,当然了里面也可以用对象out向前端输出信息。
在这里插入图片描述

jsp 9大内置对象

在这里插入图片描述
pageContextt,request,session ,applicationContex这四个存信息的作用域大小
在这里插入图片描述
如 **pageContext.getAttribute(String name)**就会按照pageContextt,request,session ,applicationContex这个顺序一层层找对应的属性值。
并且 **pageContext.setAttribute(String name,String value,scope)**中的scope就可以设置将属性放入这四个级别中的哪一个。

JSTL标签库

jstl 标签库就是 jsp 标签库,是为了弥补html标签库的不足,自定义许多标签供我们使用,标签的功能和java代码一样。这样我们写java代码就不用麻烦的在<% %>里面进行,直接 jstl标签就行啦。
在这里插入图片描述
首先要在jsp页面里导入标签库

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值