在Tomcat服务器配置的时候虚拟目录中必须存在一个WEB-INF的文件夹,但是我们访问的时候
并不能发现该文件夹;
WEB-INF文件夹一般是不会让用户 的,所以其安全性很高;
如果现在将一个jsp文件保存在了web-inf文件夹之中,那么肯定是很安全的;
但是一个新的问题出现了,我们如何访问web-inf中网页呢?
此时我们可以通过映射路径的方式完成。要想完成映射,修改web.xml即可;
<servlet>
<servlet-name>he</servlet-name>
<jsp-file>/WEB-INF/hello.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>he</servlet-name>
<url-pattern>/hello.lid</url-pattern>
</servlet-mapping>
servletmapping表示的是一个映射路径的配置,在访问的时候直接输入
url-pattern后面的内容之后就可以找打servlet-name再找到servlet节点中配置的
jsp-file,从而实现jsp的页面的访问;
输入url:http://localhost/lid/hello.lid即可访问到;
但是这些与config对象有什么关系呢?
以为config对象只对映射后的文件起作用;
1、config对象:
config对象是javax.servlet.ServletConfig接口的实例,主要的功能是取得一些初始化的配置
信息;
常用的方法:
public String getInitParameter(String name);
public Enumeration getInitParameterNames();
所有的初始化参数都需要在web.xml文件之中配置出来;
<servlet>
<servlet-name>he</servlet-name>
<jsp-file>/WEB-INF/hello.jsp</jsp-file>
<init-param>
<param-name>driver</param-name>
<param-value>org.gjt.mm.mysql.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/lid</param-value>
</init-param>
</servlet>
上面的两个初始化参数只是针对于配置的hello.lid的映射有作用,对其他的没有任何作用;
hello.jsp:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<html>
<head><title>这是测试</title></head>
<body>
<h1>你好,终于见面了,嘿嘿……</h1>
<%
String dbDriver=config.getInitParameter("driver");
String dbURL=config.getInitParameter("url");
%>
<h3>驱动程序:<%=dbDriver%></h3>
<h3>连接地址:<%=dbURL%></h3>
</body>
</html>
config只能获得映射文件中的初始化参数,由此可见web安全性与config是绑定在一起的;
小结:
·将页面资源保存在WEB-INF文件夹之中是最安全的,但是必须通过映射路径才可以访问;
·通过config对象可以取得初始化的配置参数;