JavaWeb 基础学习
1.JavaWeb应用的核心技术是Java Server Page和Servlet,开发一个完整的Java Web应用涉及以下概念及技术。
1JavaBean
2EJB组件
3自定义JSP标签
4XML
5Web服务器和应用服务器
2.Servlet组件
1Servlet组件在web应用中担任重要角色,Servlet运行于Servlet容器中,可以被Servlet容器动态加载,来扩展服务器的功能,
并提供特定的服务,Servlet按照请求/响应的方式工作。在Struts框架中,控制器组件就是由Servlet组成的。
2当用户访问某个Servlet时,Servlet容器将会创建一个ServletRequest对象和ServletResponse对象,
在ServletRequest对象中封装了用户请求信息,然后Servlet容器把ServletRequest和ServletResponse对象传给用户所请求的Servlet
Servlet把响应结果写到ServletResponse中,然后由Servlet容器把响应结果传给用户。
3.在Java Servlet API中有以下几个比较重要的类,它们决定了Web应用的请求/响应方式及各种共享数据的存放特点。
1HttpServletRequest:
Servlet容器把HTTP请求信息包存在HttpServletRequest对象中,Servlet组件从request对象中读取用户的请求数据,
此外,HttpServletRequest可以存放request范围内的共享数据。
2HttpServletResponse:用于生成Http响应结果
3HttpSession:Servlet容器为每个Http会话创建一个HttpSession实例,HttpSession可以存放session范围内的共享数据
4ServletContext:Servlet容器为每个Web应用创建一个ServletContext实例,ServletContext可以存放application范围内的共享数据
4.Jsp组件
1当JSP容器接收到web用户的一个jsp文件请求时,它对jsp文件进行语法分析并生成Java Servlet源文件,然后对其编译,
一般情况下,Servlet源文件的生成和编译仅在初次调用JSP时发生,如果原始的JSP文件被更新,JSP容器检测所做的更新,在执行它之前重新生成
Servlet并进行编译。
2尽管JSP在本质上就是Servlet,但这两者的创建方式不一样,Servlet完全由java程序代码构成,擅长于流程控制和事务处理,而通过Servlet来生成动态网页很不直观。
JSP由Html代码和Jsp标签构成,可以方便的编写动态网页,因此在实际应用中,采用Servlet来控制流程,而采用JSP来生成动态网页。
5.共享数据在WEB应用中的范围
1在web应用中,如果多种数据需要被多个web组件共享,可以把这些共享数据存放在特定的范围内,共享数据有四种存在范围
page:共享数据的有效范围是用户请求访问的当前JSP网页
request:共享数据的有效范围为“用户请求访问的当前web组件”,以及和当前web应用共享同一个用户请求的其他web组件,如果用户请求访问的是jsp网页,
那么该jsp网页的include和forward标记包含的其它jsp文件也能访问其共享数据。
session:共享数据存在整个Http会话的生命周期内,同一个Http会话中毒web组件共享它。共享数据实际上是存放于HttpSession中
application:共享数据存在整个web应用的生命周期内,web应用中的所有web组件都能访问它。共享数据实际上是存放于ServletContext中
关于HttpSession会话:当客户第一次访问web应用中支持会话的某个网页时,就会开始一个新的Http会话,Servlet容器为这个会话创建一个HttpSession对象,
接下来,当客户浏览这个web应用的不同网页时,
始终处于同一个会话中,会话拥有特定的生命周期,在以下情况下,会话将结束生命周期,Servlet容器将Http会话所占用的资源释放掉
1客户端关闭浏览器
2会话过期
3服务器端调用了HttpSession的invalidate方法