文章目录
javaweb开发核心之应用上下文和JSP核心知识
什么是应用上下文ServletContext
Javaweb作用域对象介绍和ServletContext讲解
什么是作用域对象:
- 就是对象的生命周期,在javaweb开发里面有多个不同生命周期的对象
- 比如:PageContext,ServletRequest,HttpSession,ServletContext;
- 对象里面包含属性和对应的数据,所以不同作用域对象使用场景会不同
ServletContext:
- 它代表了servlet环境的上下文,相当于一个全局存储空间
- 同一个WEB应用程序中,所有的Servlet和JSP都可以共享同一个区域,是最大的作用域对象
(webapps下的每个目录就是一个应用程序) - 四大作用域对象-用于存取数据(举个形象的例子):
- PageContext(页面)->ServletRequest(请求)->HttpSession(会话)->【ServletContext】(应用);
- 生命周期:在WEB服务器启动时创建,服务器关闭时销毁
- 加载应用默认参数
- web.xml
<context-param>
<param-name>username</param-name>
<param-value>jack</param-value>
</context-param>
- 获取api
ServletContext servletContext = req.getServletContext();
String url = servletContext.getInitParameter("url");
System.out.println(url);
- 储存全局数据(只要是同个应用,都可以共享这些数据,类似map结构)
servletContext.setAttribute("appInfo","xdclass.net info");
String appInfo = (String)servletContext.getAttribute("appInfo");
System.out.println("TestServlet appInfo="+appInfo);
什么是JSP和Servlet的微妙关系
介绍什么是JSP JSP和Servlet的关系
什么是JSP
- 全称Java Server Pages,是一种动态网页开发技术;
- 使用JSP标签在HTML网页中插入Java相关代码,标签通常以<%开头以%>结束
- JSP本身就是一种Servlet,JSP在第一次被访问的时候会被编译为HttpJspPage类,是HttpServlet的一个子类
- 为什么用这个:和原生Servle 相比JSP可以很方便的编写HTML网页而不用去大量的用printin语句输出html代码
- 通俗来说:jsp就是在html里面写java代码,servlet就是在java里面写html代码
- JSP内置了9个对象可以直接用(先简单知道就行):out、session、response、request、config、page、application、pageContext、exception
request HttpServletRequest类的实例
response HttpServletResponse类的实例
out PrintWriter类的实例,⽤用于把结果输出⾄至网页上
session HttpSession类的实例
application ServletContext类的实例,与应⽤下文有关
config ServletConfig类的实例
pageContext PageContext类的实例,提供对JSP⻚⾯所有对象以及命名空间的访问
page Java类中的this关键字
Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象
JSP脚本程序
<% 代码片段 %>
<%
out.println("IP address is " + request.getRemoteAddr());
%>
JSP表达式的语法格式:(不能用分号结束)
<%= 代码片段 %>
<%=request.getRequestURL()%>
中文编码问题
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
- JSP的现状:2015年之前很公司使用,过后互联网发展很块,各类分布式技术架构,前端框架、后端框架大量出现,性能和便利性比JSP强很多,所以基本很少企业使用]SP了,但是这个是学javaweb里面基础知识,大家可以简单学,不用花特别多时间(学校或者其他老旧的书本会花很多时间讲这个).
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%><html>
<head>
<title>hello,word</title>
</head>
<body>
<h4>
<%=request.getRequestURL()%>
</h4>
</html>