Application对象
与session类似,也是有来保存信息,实现不同页面的参数传递;但是Appliation是所有用户共享 的,任何用户都可以访问,而session对象则是每个用户是么有的
application属于javax.servlet.ServletContext
此工作目录的路径不是固定的,有可能此工作目录在C盘上或是D盘上
得到工作目录的真实路径:public String getRealPath(String path)
需要一参数: /
applicatin是在整个服务器中保持的只有一个实例的对象
在实际应用中往往使用getServletContext()方法代替application
<h1><%=application.getRealPath("/")%></h1><%--返回当前的路径名根目录--%>
<h1><%=getServletContext().getRealPath("/")%></h1>
问题?为什么此方法没有使用对象调用?
所有的web处理程序,有一个web容器的扶持,实际上此方法是由容器调用的
out 对象
开发原则:
HTML代码 与JAVA代码分离,如果要输出内容,尽量使用表达式出(<%=%>)
要用<%=%>完全代替<%out.println()%>
提高讲解:JSP安全性及config对象的应用
在J2EE中安全性体现 :工作目录的WEB-INF文件夹
如果能够将一个页面保存在WEB-INF文件夹下, 安全性高不高?,
高,但是页面无法发现
解决一个问题;使用页面能够被用户所访问
解决方法:在WEB-INF文件夹之下存在一个Web.xml文件
web.xml文件:属于整个Web站点的配置文件
<servlet>
在web.xml文件内部起作用,与servlet-mapping关联
<servlet-name>mldn</servlet-name>
找到jsp的路径,此路径一般都保存在WEB-INF之中
<jsp-file>/WEB-INF/sdemo.jsp</jsp-file>
</servlet>
<servlet-mapping>
在web.xml文件内部起作用,与<servlet>中的servlet-name完全一致
<servlet-name>mldn</servlet-name>
网页上输入的实际路径地址
<url-pattern>/lxh</url-pattern>
</servlet-mapping>
Config对象
Cofig对象一般用来取得服务器的初化始配置参数,但若要使用此对象就在WEB-INF/web.xml之中配置
要使用config对象的前提:JSP 页面必须在web.xml中进行配置
<servlet>
<servlet-name>mldn</servlet-name>
<jsp-file>/WEB-INF/sdemo.jsp</jsp-file>
<init-param>
<param-name>uname</param-name>
<param-name>mldn</param-value>
<init-param>
<init-param>
<param-name>upass</param-name>
<param-name>lxh</param-value>
<init-param>
</servlet>
<servlet-mapping>
<servlet-name>mldn</servlet-name>
<url-pattern>/lxh</url-pattern>
</servlet-mapping>
如果要取得这些初始化参数,必须通过映射名称进行访问JSP页面,才可以取得初始化参数,就通过config对象取得
<h1><%=config.getInitParameter("uname")%></h1><!-- 取得在web.xml中初始化的参数-->
就是面的代码
<init-param>
<param-name>uname</param-name>
<param-name>mldn</param-value>
</init-param>
<init-param>
<param-name>upass</param-name>
<param-name>lxh</param-value>
</init-param>
<h1><%=config.getInitParameter("upass")%></h1>
输入的地址是; http://localhost/test/lxh
通过此种功能,可以将数年库的一些信息写在配置文件之中—JDBC程序的时候
public java.util.Enumeration getInitParameterNames()