web.xml中配置Servlet的时候,标签<servlet>来配置初始化参数。一个Servlet可以配置0到多个初始化参数,接下来的例子里配置了3个初始化参数
本文有卡菲牛奶撰写,原文请访问http://fuchangle.iteye.com/blog/1326993
<servlet>
<servlet-name>InitparamServlet</servlet-name>
<servlet-class>com.dapp.InitParemServlet</servlet-class>
<init-param>
<param-name>helloween</param-name> <!--第一个参数-->
<param-value>password</param-value>
</init-param>
<init-param>
<param-name>admin</param-name> <!--第二个参数-->
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>babyface</param-name> <!--第三个参数--> <param-value>babyface</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>InitparamServlet</servlet-name>
<url-pattern>/Servlet/InitparamServlet</url-pattern>
</servlet-mapping>
看一个例子。公司要颁布一个机密文件notice.html。要求能有几个人能够浏览。来实现这种权限控制。把notice.html放在/WEB-INF文件夹里面。因为java Web应用程序的WEB-INF有这个特性,任何人都不能通过浏览器直接获取其下面的文件,即使他知道文件的准确位置和名称。WEB-INF下面 的文件时受保护的,这样就保证了文件的安全性,如果浏览器直接访问服务器会报404Error,即使这个地址是对的
编写一个程序InitparamServlet,提示用户输入用户名密码。如果密码通过,则通过程序转到notice.html中。虽然web-inf下的文件不能通过浏览器直接获取,但是仍然可以通过程序读取到,程序代码如下:
import java.io.IOException;
import java.io.PrintWriter;
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 InitParemServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.print("<!DOCTYPE html PUBLIC\" -//W3C//DTD HTML 4.01 Transitional//EN\">");
out.print("<HTML>");
out.print("<head><title>请登录查看Notice文件</title></head>");
out.print("<body>");
out.print("<form action='"+request.getRequestURI()+" ' method='post'>");
out.print("账户:<input type='text' value='username' style='width:200px'><br/>");
out.print("密码:<input type='password' value='password' style='width:200px'><br/>");
out.print("<input type='submit' value='登录'>");
out.print("</form>");
out.print("</body>");
out.print("<HTML>");
out.flush();
out.close();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username=request.getParameter("username");
String password=request.getParameter("password");
Enumeration params=this.getInitParameterNames();
while(params.hasMoreElements()){
String usernameParam=(String)params.nextElement();//用户名
String passwordParam=getInitParameter(usernameParam);//密码
if(usernameParam.equalsIgnoreCase(username) &&
passwordParam.equals(password)){
request.getRequestDispatcher("/WEB-INF/notice.html").forward(request, response);
return;
}
}
this.doGet(request, response);//username,password不匹配
}
}
一个月后,公司要求Peter为可以浏览该机密文件的人选,同时禁止babyface的账号。由于没有将这些信息写在源程序里而是写在web,xml里,因此改动相当简单,在参数配置里添加一个Peter,删除babyface就可以啦,一分钟搞定!
分享到:
相关推荐
<context-param> 和<init-param>的 区别代码 博文链接:https://xhy0422.iteye.com/blog/46319
System.out.println("系统文件web.xml错误:邮件发送程序初始化失败!"); return; } sender.setServer(server); sender.setPort(port); sender.setAddress(address); sender.setUsername(username); sender....
很棒的工具,可以使用预定义的结构和模板来初始化文件夹结构 用法 /** * @param { String } target Path to target folder * @param { Object|Array<Object> } structure Folder structure includes sub-...
解压缩SSOWebDemo1和SSOWebDemo2文件,分别在它们/WEB-INF/下找到web.xml文件,请修改其中的几个初始化参数 <init-param> <param-name>SSOServiceURL</param-name> <param-value>...
<param-value>classpath:conf/spring/application.xml</param-value> </context-param> <!-- 配置struts过滤应用请求 --> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2....
--全局初始化参数--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> 4.在Servlet中使用...
python初始化 通用库 一,tools / ArgsGet.py 功能 输入参数 使用 代码 from tools . ArgsGet import ArgsGet # 参数获取 a = ArgsGet (). get () print ( a . param1 , a . param2 ) 启动 python main.py --param1 ...
</filter>struts-gpipe过滤器继承了StrutsPrepareAndExecuteFilter,在启动的时候会初始化struts-gpipe容器。2,struts.xml配置 name="gweb.groovy.dir" value="biz" /> name="gweb" namespace="/index" ...
场景:两个web服务器,A当做服务端,B为客户端,...filter配置中,不能加exclusion,所以需要用初始化参数给出不过滤的请求。本例中不过滤的格式为>/SarService。 <!--session过期filter --> <init-param
2、init-param classpath:application.xml contextConfigLoation 3、url-pattern /* 二、初始化、启动阶段 1、init 加载spring的配置文件 2、IOC初始化 声明一个IOC容器,Map 3、scan-package 配置一个包路径,扫描...
* 初始化插件 * @param object:翻页容器对象 * @param function:回调函数 * */ Pagination.init($(".ht-page"), pageChange); /* * 首次调用 * @param object:翻页容器对象 * @param number:当前页 * @...
插入初始化数据:init.data.sql 3.运行。 管理员帐号:admin 密码:sojson ps:定时任务的sql会把密码改变为sojson.com 新版本说明:http://www.sojson.com/blog/164.html 和 ...
初始化数据存储文件夹vsStore.init({ dataFolder: './datastore' }); 你完成了。 方法 在运行期间初始化设置和存储参数 @param {Object} data 任何常见的存储参数,目前数据文件夹是正常工作所必需的。 @return {...
//的到web.xml中的配置文件用于保存上传文件,也可以在已开始定义的时候初始化,不过这样可以通过改动配置文件来改动存放路径,不用该代码,增加了灵活性。 } } web.xml中相应的配置如下: <servlet-name>...
torch.nn.init.calculate_gain(nonlinearity, param=None) 提供了对非线性函数增益值的计算。 增益值gain是一个比例值,来调控输入数量级和输出数量级之间的关系。 fan_in和fan_out pytorch计算fan_in和fan_out的...
egg-init egg-example --type=simple //初始化一个egg模板例子 后面的type跟的是模板类型这里是简单的 cd egg-example//进入例子 npm i //安装依赖 可以去官方教程查看基本配置的讲解。 直接说使用,简单看过Egg的...
/// 初始化连接 /// /// <param name="KeepAlive">是否开启TCP层KeepAlive功能</param> /// <returns></returns> public bool Init(bool KeepAlive) { try { if (mSocket != null) { Close(); } //...
(2)驱动模块和应用程序的一个重要不同是:应用程序退出时可不管资源释放或者其他的清除工作,但模块的退出函数必须仔细撤销初始化函数所作的一切,否则,在系统重新引导之前某些东西就会残留在系统中。 (3)...
参数:param – 初始化参数 返回:true – 成功 false – 失败 wx_send_data 原型:bool wx_send_data(wxDeviceDataType_t type, void *pData, uint16 len); 作用:向BLEM201P发送数据包 参数:type – 数据方向 ...
init ,i 初始化全栈工程结构 init ,initmp 初始化小程序工程结构 jtjs ,jt 导出 jt.js dbscan,db JiaTui 数据库扫描规则 Default: 127.0.0.1/root/123456 commentscan,comment jt前端函数注释扫描 swaggerscan...