mapengpeng1999@163.com web安全和config对象

1.web安全的基本实现

从最初的tomcat开始,一个可执行的动态web工程,必须存在的一个目录就是web-inf,
所有Web工程中非JSP中的所有的Java程序都会被部署到web-inf目录中执行。
所以JavaWeb工程中的web-inf目录是不可获取的。web-inf目录不能删。
web-inf文件夹是不能被浏览器访问的。也就是说这个目录是一个安全的目录,
那么保存在这个目录中的程序肯定也是安全的,这就是Web安全的基本实现。
我们现在在WEB-INF目录中创建了webSafe.jsp,但是编写完成之后,浏览器不能够直接访问这个jsp,
http://localhost/JavaWeb/WEB-INF/webSafe.jsp  ,出现的是404错误。
因为WEB-INF目录中的内容就是不能够被浏览器访问的。这个时候我们必须提供另一种访问方式。 

2.web映射文件的配置

映射文件的配置,指的是给一个jsp或者其他的可以使用浏览器打开的页面指定一个新的访问路径。
映射的配置在web.xml文件中完成。web.xml文件叫做web工程的部署描述符文件,具体来说就是对Web工程进行一些配置。
在web.xml文件中底部</web-app>标签前加上配置代码。
<servlet>
  	<!-- 给要配置的Servlet起别名,命名要有语义,不能与其他的serlvet-name重复 -->
  	<servlet-name>webSafe</servlet-name>
  	<!-- 配置jsp-file,配置这个servlet对应的jsp在web工程中的实际路径 -->
  	<jsp-file>/WEB-INF/webSafe.jsp</jsp-file>
  </servlet>
  <!-- 给指定的Servlet标签配置一个URL的映射地址 -->
  <servlet-mapping>
  	<servlet-name>webSafe</servlet-name>
  	<!-- 配置的新的映射地址 -->
  	<url-pattern>/abc</url-pattern>	
  </servlet-mapping>
现在浏览器中,通过/abc路径就可以访问之前WEB-INF中配置的jsp文件。
(http://localhost/JavaWeb/abc) 配置好web.xml文件后要重新启动服务器
当然要说的是,一个servlet标签可以配置多个servlet-mapping,也就是说可以配置多个映射地址。
  <!-- 使用Servlet标签进行映射地址的配置,后期我们学习Servlet程序也是使用同样的配置 -->
  <servlet>
  	<!-- 给要配置的Servlet起别名,命名要有语义,不能与其他的serlvet-name重复 -->
  	<servlet-name>webSafe</servlet-name>
  	<!-- 配置这个servlet对应的jsp在web工程中的实际路径 -->
  	<jsp-file>/WEB-INF/webSafe.jsp</jsp-file>
  </servlet>
  <!-- 给指定的Servlet标签配置一个URL的映射地址 -->
  <servlet-mapping>
  	<servlet-name>webSafe</servlet-name>
  	<!-- 配置的新的映射地址 -->
  	<url-pattern>/abc</url-pattern>	
  </servlet-mapping>
  <servlet-mapping>
  	<servlet-name>webSafe</servlet-name>
  	<url-pattern>/1/2/3</url-pattern>	
  </servlet-mapping>
  <servlet-mapping>
  	<servlet-name>webSafe</servlet-name>
  	<url-pattern>/a.b.c.e</url-pattern>	
  </servlet-mapping>
现在一个serlvet配置了三个映射地址,修改web.xml一定要重新启动tomcat。
以后我们在开发中,不建议一个servlet配置多个映射地址,提倡一个servlet就配置一个地址。

如果在一个web工程中,没有web.xml文件,怎么配置?
可以配置在tomcat的web.xml文件中。效果一致,实际上,如果工程中没有web.xml文件,
本应该配置在web.xml文件中的内容,都可以配置到tomcat的web.xml中去。
但是建议配置在web工程里的web.xml文件中。

在创建web工程的时候,是不是可以不选择web.xml文件,如果工程中没有web.xml文件,
我们本应该配置在web.xml中的内容怎么配呢?
可以将配置的内容配置到tomcat/conf/web.xml文件中,
但是注意一点:此tomcat/conf/web.xml是对所有部署在此tomcat中的工程有效。

3.web.xml文件的其他配置

- 配置错误页面(404错误,如网页被外星人抢走了)
- 配置session失效时间(登入一个网站一段时间不用自动注销)
- 配置初始界面(欢迎界面)
- 配置初始化参数(config对象使用)
 
  <!-- 配置错误页面 -->
 <error-page>
  	<error-code>404</error-code>
  	<location>/error/error.jsp</location>
  </error-page>
  <error-page>
  	<error-code>500</error-code>
  	<location>/error/error.jsp</location>
  </error-page> 
  <!-- 配置session失效时间,表示30分钟后session被注销 -->
  <session-config>
  	<session-timeout>30</session-timeout>
  </session-config>
  <!-- 配置欢迎界面 欢迎界面可以配置多个,多个欢迎界面只会访问第一个-->
  <welcome-file-list>
    <!-- <welcome-file>login/login.jsp</welcome-file> 不再是列表而是直接跳到登入欢迎界面-->
    <welcome-file>hello.jsp</welcome-file>
  </welcome-file-list>
如果欢迎界面存在:
- 浏览器访问项目的根路径,则直接显示欢迎界面的内容
如果欢迎界面不存在:
- 判断tomcat是否开启了列表功能
- 开启了,则显示列表
- 没有开启,则显示404
欢迎界面可以配置多个,多个欢迎界面只会访问第一个,
都会先判断欢迎界面是否存在,最终都不存在,则判断需不需要显示列表。

4.config对象的使用(配置初始化参数)

Config对象实际开发中使用并不多,从字面理解来说叫做配置,
是ServletConfig接口的对象,用来取得配置的初始化参数,常用的方法有两个:
-String getInitParameter(String name):根据参数名称获得初始化配置的参数
-Enumeration getInitParameterNames():获得所有初始化配置参数的名称
初始化参数在也是在web.xml文件中配置。

范例:设置和取得初始化参数

<servlet>
  	<servlet-name>webSafe</servlet-name>
  	<jsp-file>/WEB-INF/webSafe.jsp</jsp-file>
  	<!-- 配置初始化参数 -->
  	<init-param>
  		<param-name>company</param-name>
  		<param-value>万邦易嵌</param-value>
  	</init-param>
  	<init-param>
  		<param-name>tel</param-name>
  		<param-value>12312431243</param-value>
  	</init-param>
  	<!-- 表示tomcat启动的时候就加载这个Servlet,如果不配置,则表示此Servlet在第一次访问之前被加载 -->
  	<load-on-startup>1</load-on-startup> 
  </servlet>
  
  
	<h1><%=config.getInitParameter("company") %></h1>
	<h1><%=config.getInitParameter("tel") %></h1>

总结:

web安全的基本实现就是将jsp丢在WEB-INF这个安全的目录中,访问的时候必须要在web.xml配置映射;
config对象作用就是用于获得配置的初始化参数,在实际的开发中使用较少。
web.xml的常用的配置要掌握。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值