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就可以啦,一分钟搞定!
分享到:
相关推荐
另一方面,`<init-param>`用于Servlet或Filter的初始化参数。这些参数是特定于某个Servlet或Filter的,而不是全局的。它们在Servlet或Filter实例化时被加载。`<init-param>`的格式如下: ```xml <servlet-name>...
在Spring框架中,`<context-param>` 和 `<init-param>` 是两种不同的参数配置方式,它们在Web应用的初始化阶段起着关键作用。了解这两者的区别是优化和理解Spring应用程序运行时行为的重要知识点。 首先,`<context...
其中,`context-param`和`init-param`是两个重要的元素,用于设置应用级和Servlet级的初始化参数。理解它们的用法和如何在Servlet中获取这些参数对于构建和维护Web应用程序至关重要。 首先,`context-param`是用来...
Servlet 初始化参数和上下文初始化参数训练及处理数据库示例 本文主要讲解 Servlet 初始化参数和上下文初始化参数的概念、定义、配置和获取方法。同时,通过实践演示,展示了如何在 Servlet 中读取初始化参数和上...
Servlet初始化参数是在Servlet容器启动时设置的,这些参数可以在整个应用生命周期中被Servlet访问,通常用来配置Servlet的行为或应用的配置信息。本示例提供了对Servlet初始化参数的演示,帮助开发者了解如何在实际...
在 web.xml 文件中,我们可以使用 `<init-param>` 元素来定义 Servlet 初始化参数。例如,在上面的示例代码中,我们定义了两个 Servlet 初始化参数:`username` 和 `email`。这些参数可以在 Servlet 的生命周期中...
3. **获取所有初始化参数**:使用 `getInitParameterNames()` 方法返回一个枚举,包含所有初始化参数的名称,然后通过循环遍历每个名称,并使用 `getInitParameter(String name)` 获取对应值。 #### 总结 通过上述...
然后,需要配置Servlet和Filter的相关参数,例如Servlet的名称、类名、初始化参数等。 在Servlet配置中,需要指定SSI Servlet的名称、类名、初始化参数等。例如: <servlet-name>ssi</servlet-name> <servlet-...
在配置中指定过滤器类(通常为`org.apache.catalina.filters.CorsFilter`)以及相应的初始化参数,例如允许的源、方法、头部等。 ```xml <filter-name>CorsFilter</filter-name> <filter-class>org.apache....
此配置中包含了多个重要的初始化参数: - `TemplatePath`:指定模板文件的存放位置。 - `NoCache`:是否禁用模板缓存。 - `ContentType`:设置响应的内容类型。 - `template_update_delay`:设置模板文件更新后的...
这里定义了一个名为`ssi`的servlet,并指定了几个重要的初始化参数: - `buffered`:控制SSI是否使用缓冲区。 - `debug`:调试模式的级别,通常设为0表示不开启调试模式。 - `expires`:设置过期时间,单位为秒...
`web.xml`是Java Web应用的标准配置文件,用于定义Servlet、过滤器、监听器等组件,以及它们的初始化参数和映射路径。 在Java Web应用中,处理跨域问题通常会使用过滤器(Filter),这里的`cors-filter-2.4.jar`...
你需要在`web.xml` 文件中添加`<filter>` 和 `<filter-mapping>` 标签,指定`cors-filter` 并设置其初始化参数,比如允许的源、请求方法、认证和暴露的头部等。 例如,以下是一个基本的`<filter>` 配置示例: ```...
Struts框架在Web.xml中的配置 Struts框架是Java EE中的一种基于MVC模式的Web应用程序框架,它提供...在Web.xml中配置Struts框架需要配置ActionServlet和初始化参数,以便Servlet容器能够正确地加载和使用Struts框架。
- `initApplicationScopeCreatorsAtStartup`:启动时是否初始化应用范围创建者,默认为`true`。 - `maxWaitAfterWrite`:最大等待时间(毫秒),默认为`3000`。 - `debug`:调试模式,默认为`true`。 - `logLevel`:...
其中,`<init-param>` 元素用于配置初始化参数,`<param-name>` 元素用于指定参数名称,`<param-value>` 元素用于指定参数值。在上面的示例中,配置了三个初始化参数:config、debug 和 detail。 4. 扩展 Struts ...