02---jsp内置对象06(web安全性及config对象)

来源:互联网 发布:中国乡村 萧公权知乎 编辑:程序博客网 时间:2024/06/11 16:49

在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对象可以取得初始化的配置参数;