ServletContext,可以把它想象成一个公用的空间,可以被所有用户访问。
也就是说A客户能访问,B客户能访问,C客户也能访问。
在asp或者jsp中称之为Application.
1:如何得到ServletContext实例
this.getServletContext();
2:与Session非常相似,也是键值对,键是String型,值是Object型。
添加属性:setAttribute(String name,Object ob);
得到值:getAttribute(String name); 返回Object
删除属性removeAttribute(String name)
3:生命周期
ServletContext中的属性的生命周期从创建开始,到服务器关闭结束。
JSP基础
--JSP的基本语法
(1)指令元素用于从JSP发送一个信息到容器,比如设置全局变量,文字编码,引入包等
1,page指令
<%@page contentType="text/html;charset=gb2312"%>
2,include指令
<%@include file="filename"%>
3,taglib指令:这个指令允许在JSP页面使用自定义标签
<myTag:yourTag numl="123">
(2)脚本元素
1.script <%java代码%>
2.表达式 <%=java表达式%> <%=rs.getString(1)%>
3:declaration
<%!变量声明 %> <%! int count = 10%>
<%!函数声明 %>
<%!int jisuan(int num)
int result=0;
for(int i=0;i<num;i++){
result = result + i;
}
%>
(3)动作元素--动作元素是使用xml语法写的,是jsp规定的一系列标准动作,在容器处理jsp时,当容器遇到动作元素时,就执行响应的操作
1:<jsp:useBean> //创建一个javaBean实例
2:<jsp:setProperty> //给一个javaBean实例设置初始值
3:<jsp:param> //给一个jsp设置参数,常常与<jsp:include>结合使用
<jsp:include file="info.jsp">
<jsp:param name="parameter1" value="parameterValue"/>
<jsp:param name="parameter2" value="parameterValue"/>
</jsp:include>
4:<jsp:getProperty> //取得一个javabean实例的成员变量
5:<jsp:include> //引入另外一个文件
6:<jsp:plugin> //使用插件
7:<jsp:forward> //转发
8:<jsp:fallback> //
--jsp九大内置对象(jsp的核心)
(1)out //向客户端输出数据,字节流
(2)request //接受客户端http请求
getParameter(String name); //name表示表单的参数名
getParameterValue(String name);//使用得到是String[]
getAttribute(String name,Object obj);//设置名字为name的obj,值为obj
getAttribute(String name);//返回由name制定的属性值,如果不存在就返回null;
getCookie();
(3) response//封装jsp的产生的回应
addCookie(Cookie cookie);
sendRedirct("/wecome.jsp");
(4) session//用于保存用户的信息,跟踪用户的行为
getAttribute(String name,Object obj);
getAttribute(String name);
(5)application //多个用户共享该对象,可以做计数器
(6)pageContext //代表jsp页面的上下文
(7)execption //代表运行时的一个异常
getMessage();
(8)page //代表jsp这个实例本身(使用比较少)
(9)config //代表jsp对应的servlet的配置可以得到web.xml中的参数
##访问jsp的过程
如果是第一次访问jsp,文件被服务器翻译成一个对应的java文件(servlet)
然后再被加载到.class文件加载到内存中
如果是以后访问jsp,那直接调用内存中的jsp实例,所以第一次访问jsp慢,后面访问jsp的速度就变快了。
要注意的事
jsp文件要放在跟WEB-INF文件夹同级的文件夹下,不能放到WEB-INF里面
改了servlet需要reload,改了jsp不需要reload
一个jsp的helloword
<%@ page contentType="text/html;charset=gb2312"%> <html> <body> <h1>jsp1</h1> <% out.println("hello jsp"); %> </body> </html>