牛客网刷题知识点总结(六)java web

六、Java web基础知识

1.会话跟踪是一种灵活、轻便的机制,它使Web上的状态编程变为可能。
HTTP是一种无状态协议,每当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系是离散的、非连续的。当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话跟踪技术就可以解决这个问题。当一个客户在多个页面间切换时,服务器会保存该用户的信息。
有四种方法可以实现会话跟踪技术:URL重写、隐藏表单域、Cookie、Session。
1).隐藏表单域:<input type="hidden">,非常适合不需要大量数据存储的会话应用。
2).URL 重写:URL 可以在后面附加参数,和服务器的请求一起发送,这些参数为名字/值对
3).Cookie:一个 Cookie 是一个小的,已命名数据元素。服务器使用 SET-Cookie 头标将它作为 HTTP
响应的一部分传送到客户端,客户端被请求保存 Cookie 值,在对同一服务器的后续请求使用一个
Cookie 头标将之返回到服务器。与其它技术比较,Cookie 的一个优点是在浏览器会话结束后,甚至
在客户端计算机重启后它仍可以保留其值
4).Session:使用 setAttribute(String str,Object obj)方法将对象捆绑到一个会话


2. 页面请求的工作流程

(1)用户输入网址

(2)把用户请求发送给服务器

(3)服务器查询所请求的页面

(4)找到用户请求的页面

(5)服务器发送相应消息

(6)浏览器返回显示的结果


3. filter(过滤器)作用

filetr 使得用户可以更改一个request或者更改一个response。  filter不是一个Servlet,不能产生response。但是他能在request到达Servlet之前预处理request,也可以在response离开Servlet时处理response。 filter其实是一个 Servlet Chaining(Servlet链)。

在 web开发中可以放置多个过滤器,对request处理是按先后顺序进行,对response的处理则是相反顺序。

Filter是一个接口,类似于Servlet接口。声明了3个基本方法(init、doFilter、destroy)。开发者定义一个filter对象时,需要实现此接口。

FilterChain接口,由容器进行实现。用于将上一个过滤器处理的请求或者响应传递给下一个过滤器对象。

FilterConfig接口,由容器实现。用于获取过滤器出啊实话器件的参数信息。


         创建一个过滤器后,需要进行配置才能使用。在web.xml中

       (1).声明过滤器对象

<filter>

<filter-name>  </filter-name>

<filter-class>        </filter-class> 

</filter>

(2).映射过滤器

<filter-mapping>

<filter-name>  </filter-name>  (一定要与(1)中的那么相同)

<url-pattern>         </url-pattern> 

</filter-mapping>




4.JSP内置对象

request、response、session、application、out、page、pageContext、exception、config


5.cookie和session有什么区别

(1)cookie(文件)存在客户端,session(存储结构)存在服务器

(2)cookie由于存在客户端其他人能够方便得到,安全性不如session

(3)使用cookie,服务器性能高,session会根据访问量增加,进而降低服务器性能。

(4)cookie容量小,一般不超过4kb


6.XML(可扩展标记语言)

优点:实用性强、访问速度快、可扩展性好、跨平台性号

XML解析方式:(1)DOM(2)SAX(Simple API for XML)

DOM会根据XML在内存创建一个树形结构,占用内存较大。适合对XML内容随机访问与频繁修改 的情况。

SAX是时间驱动型XML解析方式,不会在内存中存储XML文件,把每次对数据的请求当做一个事件,通过遍历获得用户所需数据。适合对XML顺序访问、XML文件庞大的情况。

 

7.pageEncoding是jsp文件本身的编码;contentType的charset是指服务器发送给客户端时的内容编码。例如:pageEncoding="GBK"。这句话的意思是,告诉JVM 这个jsp本身采用的"GBK"编码,在JSP编译成Servlet传给JVM的时候,就用“GBK”的编码方式将Jsp网页源文件翻译成统一的UTF-8形式的Java字节码。如果不加设定,则JVM默认的用ISO-8859-1这种编码方式。contentType里的charset=gbk,指的是此网页文件输出到浏览器的输出方式为gbk。在这个过程中,一个JSP的源文件需要经过三个阶段,两次编码,才能完成一次完整的输出。

第一阶段:将jsp编译成Servlet(.java)文件。用到的指令是pageEncoding,根据pageEncoding=“XXX”的指示,找到编码的规则为“XXX”,服务器在将JSP文件编译成.java文件时会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8编码的JAVA源码(即.java)。
第二阶段:从Servlet文件(.java)到Java字节码文件(.class),从UTF-8到UTF-8。在这一阶段中,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。JAVAC用UTF-8的encoding读取java源码,编译成UTF-8编码的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。这一过程是由JVM的内在规范决定的,不受外界控制。
第三阶段:从服务器到浏览器,这在一过程中用到的指令是contentType。服务器载入和执行由第二阶段生成出来JAVA二进制码,输出的结果,也就是在客户端可见到的结果,在这次输出过程中,由contentType属性中的charset来指定,将UTF8形式的二进制码以charset的编码形式来输出。如果没有人为设定,则默认的是ISO-8859-1的形式。

8. include指令标签 :可以在JSP页面转换成Servlet之前,将JSP代码插入其中。用法<%@ include file="Relative Url"%>

jsp:include动作标签       所包含的是次级页面的输出,而非次级页面的实际代码。 用法 <jsp:include page="URL" >
9. jsp页面中 嵌入代码片段,要用<% %>

声明 <%! %>

JSP表达式 <%= %>


10.    pageContext对象, 可以取得任何范围的参数,如 out、request、response、session、application、page等等对象。pageContext对象的创建和初始化都由容器来完成。在JSP对象中可以直接使用该对象


11.    Servlet 容器即是指 Web容器,比如tomcat

Web容器如何知道哪一个请求调用哪一个Servlet对象来处理?

配置web.xml,对servlet起到一个注册作用。

1).声明Servlet对象

<servet>

<servlet-name>  </servlet-name>

<servlet-class> </servlet-class> 

</servlet>

2).映射Servlet

<servet-mapping>

<servlet-name>  </servlet-name>  (一定要与(1)中的那么相同)

<url-pattern>         </url-pattern

</servlet-mapping>


  Servlet的四个阶段(Servlet的生命周期) 

(1)web容器或客户端第一次请求服务,容器将加载servlet类并将其放入servlet实例池;

(2)实例化后,容器调用servlet对象的init()方法完成初始化servlet,

(3)容器通过servlet的service方法处理客户端请求

(4)web容器关闭,容器调用servelt的destroy方法对资源进行释放。。调用完毕后,servlet将被垃圾回收器回收


12. Servlet中需要调用servlet API 接口处理HTTP请求,JSP页面,直接使用内置对象处理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值