java web.xml 详解_Xml参数详解----JavaWeb学习笔记(一)

现在在JavaWeb开发中,倾向于将常量信息写于某个配置文件中,这样做好处是当需求变化时,只需要修改一下配置文件就可以了,不用修改源程序,不用重新编译,维护方便。

初始化参数(init-param)

初始化参数(init-param)位于web.xml文件的标签下,一个Servlet可以配置0到多个初始化参数。

下面看一个例子:利用初始化参数(init-param)进行权限控制。

本实例存在四个页面:index.jsp(登录页面) ,InitParamServlet(权限判断),notice.html(放入/WEB-INF目录下,该目录下文件不能直接访问),web.xml文件(配置文件)。

index.jsp源码:

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

登陆后查看机密文件

登陆后查看机密文件

账号:

密码:

悄悄告诉你:账号密码都是admin

InitParamServlet源码:

package com.javaweb.servlet;

import java.io.IOException;

import java.util.Enumeration;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class InitParamServlet extends HttpServlet{

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

req.setCharacterEncoding("utf-8");

resp.setCharacterEncoding("utf-8");

String name = req.getParameter("username");

String passw = req.getParameter("userpw");

// 获取初始化参数方法 getInitParameterNames

Enumeration params = this.getInitParameterNames();

while(params.hasMoreElements()){

//获取初始化参数名 即用户名

String nameParam = (String) params.nextElement();

//获取密码 getInitParameter方法获取参数值

String passwParam = this.getInitParameter(nameParam);

if(name.equals(nameParam)&&passw.equals(passwParam)){

req.getRequestDispatcher("/WEB-INF/notice.html").forward(req, resp);

return;

}

}

req.getRequestDispatcher("/index.jsp").forward(req, resp);

}

}

notice.html源码:

这是一个机密网页

恭喜你,进入内部页面!

此页面存放于/WEB-INF

幸运的人,请点击传送门

web.xml配置源码:

InitParamServlet

com.javaweb.servlet.InitParamServlet

admin

admin

codinghjy

codinghjy

123456

123456

InitParamServlet

/servlet/InitParamServlet

当我们需要控制用户权限时,可以直接在web.xml文件中进行增加和删除用户,不用修改源代码。

上下文参数(context- param)

初始化参数(init-param)只属于其servlet的参数,并不是全局参数,而上下文参数(context-param)属于全局参数,可以被所有servlet访问。

我们可以通过

ServletContext servletContext = getServletConfig().getServletContext();

获取上下文,然后使用

servletContext.getInitParameter("")获取参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值