华清远见-重庆中心-java web/知识点梳理/个人总结

1.Servlet

1.1servlet介绍

servlet是sun公司制定的一种用于扩展web服务器的功能的组件规范。

1.2servlet作用

web服务器通常只能处于静态的资源(html,css,js.....),为了解决动态的处理数据就需要对web服务器的功能进行扩展,servlet就是用于处理动态数组的组件规范。

1.3servlet规范

使用servlet的时候,自定义类继承HttpServlet方法,那么就符合servlet规范

1.4servlet的开发步骤

  • 新建的工程是一个java web项目(maven中的web app)

  • servlet类,继承HttpServlet

重写service方法

service(HttpServletRequest request , HttpServletResponse response)

request:请求

response:响应

  • java web工程中的web.xml文件

web.xml文件名字不能修改。

将java类和浏览器访问的地址做一个映射(mapping)

浏览器没办法直接访问java类中的方法,所以需要对java类映射为一个浏览器能够访问url地址

  • 打包(idea帮助完成)

把web项目运行需要的文件按指定的文件结构保存

  • 部署(在idea中可以完成)

把打包好的web程序放到tomacat的过程,就称为部署

  • 启动容器

容器启动之后,就可以通过浏览器,访问这个java web项目了

1.5servlet的生命周期

初始化(init):执行一次(设置容器启动的时候,servlet第一个被访问的时候)

service:每次请求,都会执行service(doGet,doPost)

容器关闭(destroy):执行一次

1.6servlet中数据可以存储的区域

  • servlet的service方法中的变量

  • request对象:可以通过转发的方式,把数据转发到其他的请求中

  • session对象:可以让一个用户在会话期间,直接使用session中的数据

  • servletContext对象:可以所有请求在容器运行期间,直接使用servletcontext中的数据

2.http协议

2.1通信方式

建立连接——发送请求(请求数据包)——发送响应(响应数据包)——断开连接

2.2数据包格式

请求数据包

响应数据包

2.3请求方式

get方式:数据请求参数在url地址后显示、数据量比较小、不安全、不支持文件上传、

使用:1.浏览器直接输地址2.form的method设置为get3.超链接4.异步请求的时候设置为get

post方式:数据放在消息体中、数据量大、相对安全、支持文件上传

使用:1.form的method设置为post2.异步请求设置为post

3.jsp

1.1jsp介绍

jsp是sun公司制定的一种用于服务器端的动态页面的技术规范,也是一种组件,依赖于容器(tomact)

进行运行

1.2jsp和servlet

  • jsp不需要在web.xml中进行配置,直接通过它的路径和文件名进行访问

  • jsp是一种运行在服务器端的页面,它里面可以包含html,嵌入一些java代码,通过在tomcat容器中经过解析,输出为html页面

  • servlet:数据的处理和数据的展示

  • servlet+jsp:servlet做数据处理,jsp做数据的展示

  • servlet做数据展示的时候,不方便(编写代码的时候,维护代码的时候)

  • jsp:让数据的处理和数据的展示进行分离(解耦)

1.3的运行

  • jsp的本质就是servlet

  • 第一次访问一个jsp页面的时候,会将jsp页面,转换为一个servlet类

  • html,js,css这种内容就直接使用输出语句拼接

  • 其他和java相关的内容,就按java的语法规则转换

1.4jsp的内置对象

4.转发和重定向

4.1转发

一个请求完成部分功能,希望剩下的功能由另一个请求完成,这种时候使用转发。

一般使用servlet完成数据处理,转发到jsp页面,实现数据的展示。转发可以

通过request对象,把数据转发给另一个请求转发的本质就是一个请求,因为request对

象不变(可以共享request中的数据)。转发之后,浏览器地址栏显示的是第一个请求地址。

4.2重定向

某个请求完成之后,希望浏览器自动发起另一个请求,则使用重定向。

使用重定向的时候,浏览器消息头中收到一个302状态码和url地址。浏览器根据这个状态码和url地址,自动发起请求。重定向是完全不同的两个请求,是两个request对象,两个请求的数据无法共享。浏览器地址显示的是第二个请求的地址

5.状态管理

状态(数据),管理(数据存储):浏览器和服务器的多次交互作为一个整体,这个过程中有一些需要使用的数据,这些数据(状态)需要保存起来,用于表示某种状态。

  • 客户端状态管理:cookie技术,把数据保存在浏览器中,就是客户端的状态管理。

  • 服务器端状态管理:session技术,把数据保存在服务器的session对象中,就是服务器的状态管理。

6.cookie

6.1cookie的使用

  • 服务器端创建cookie对象,在添加到浏览器中。

  • 浏览器保存响应结果中邀请你需要add的cookie对象,每个cookie和自己的请求的域名一致

  • 浏览器每次给服务器发请求的时候,会将请求对应的域名中保存的cookie数据,一起发送到服务器。

  • 服务器通过request获取cookie对象数据,根据cookie的name,找到value值,进行使用value

6.2cookie的有效期

  • setMaxAge(负数)

  • setMaxAge(正数):有效期就是当前时间+正数的秒数

  • setMaxAge(0)立即失效,表示cookie过期了

  • 没有调用setMaxAge 或者 setMaxAge(负数):表示会话期间有效。浏览器关闭,cookie失效了。默认设置。

  • 会话期间:浏览器第一次访问某个服务器,到浏览器关闭的期间,称为一个会话。

6.3cookie的特点

  • 用户可以删除cookie

  • 用户可以禁止使用cookie

  • 存储小于4k的内容

  • cookie的个数不能超过300个

  • 只能存字符串

  • cookie不安全

7.session

7.1session的使用

  • 状态管理

cookie:客户端状态管理技术

session:服务器端状态管理技术

  • session对象的获取

session对象的获取,和请求中从浏览器中传输到服务器的cookie(JSESSION)有关系

根据JSESSIONID这个cookie,去查找当前请求对应的session对象

8.Filter

8.1Filter介绍

sun公司提供的一种特殊的组件规范,主要用于拦截容器的调用过程。
  • 规范:实现Filter接口(实现doFilter方法)

  • 特殊:过滤器不能单独使用 ,需要和servlet进行配合使用

  • 容器:一个特殊的软件,可以运行组件

  • 支持多个Filter,以在web.xml中的配置的顺序进行过滤。

8.2Filter生命周期

  • 实例化(调用构造函数)--1次

  • 初始化(调用init函数)--1次

  • 就绪(调用doFilter函数)--任意次

  • 销毁(调用destory函数)--1次

9.EL表达式

  • el表达式,主要用于替换掉<%=xx%>输出语句

  • 在jsp页面中,可以直接通过el表达式,,获取到存储在pageContext,request,session,application中的数据

  • 语法规则

${对象} [<%=xx%>]

${对象.属性名}[<%=xx.getxxx()%>]

对象符合java bean的规范()描述类的属性私有化,提供公开的get/set方法。比如属性名abc,对应的方法叫getAbc/setAbc)

${对象。属性名},这里的本质是调用属性名对应的get方法。

  • el表达式的查找数据方式

从pageContext,request,session,application等对象中,查找需要输出的对象

pageContext,request,session,application如果出现同名key,那么查找按小范围优先得原则查找

可以通过pageScope,requestScope,sessionScope,applicationScope指定查找范围

  • el表达式可以做运算

条件运算、数学运算、逻辑运算、empty运算

  • el表达式的输出结果

如果没有这个key,输出是空字符串

如果有这个key,但是key对应的value值是null,输出的是空字符串

其他情况,输出的是key对应的value值。

10.jstl:jsp标签

  • jstl标签,用于替换掉jsp页面上的<%java代码%>

  • jsp页面上,如果有太多的java代码,修改,维护,前端人员都不友好。

10.1常用的标签

c:if --判断

c:choose --if...else

c:forEach ...循环

11.错题

  1. 用什么方式在jsp页面上,包含另一个jsp页面

<%@ include file="head.jsp"%>
  1. 怎么配置context级别的初始参数,怎么配置单独每个servlet中使用的参数

 <context-param>
        <param-name>key</param-name>
        <param-value>hello world!</param-value>
    </context-param>
 <servlet>
        <servlet-name>book</servlet-name>
        <servlet-class>action.BookInfoServlet</servlet-class>
    </servlet>

总结:

刚开始思路不够清晰,没有弄懂,后面一直练习,思路基本清晰了,自己可以调试相应的问题,在考试上,发现自己有很多知识点没有掌握到,还有一点是,自己知道的没有完全写上去,其实可以像老师说的,应该把内容写的详细一点,还有把考试空着的题,我总结在上面了,这是我考试动不起笔的题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值