Web.XML中 initi-param的妙用

Web.XML中 initi-param的妙用

文章目录

前言一、项目简介二、类图三、实现1.web.xml的配置2.InitParamServlet的实现

总结

前言

将参数存储在web.xml的init-param中,可以给程序提供更多的灵活性。

一、项目简介

这是一个用Eclipse EE创建的Dynamic Web Project, 提供一个登录页面。

当输入正确的用户名,密码后,跳转至/Web-inf/notice.html.

关键点: 正确的用户名信息,存储在web.xml的init-param标签中;Servlet从其中获取。

二、类图

只有一个类: InitParamServlet。

三、实现

1.web.xml的配置

代码如下(示例):

InitParamServlet

InitParamServlet

encoding

utf-8

helloween

password

admin

admin

babyface

babyface

1

InitParamServlet

/initParamServlet

2.InitParamServlet的实现

代码如下(示例):

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {

response.setCharacterEncoding("UTF-8");

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("");

out.println("");

out.println(" 请登录查看 Notice 文件");

out.println("");

out.println(" ");

out.println("

");

out.println("账号:
");

out.println("密码:

");

out.println("");

out.println("

");

out.println("");

out.println("");

out.flush();

out.close();

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

String username = request.getParameter("username");

String password = request.getParameter("password");

Enumeration params = this.getInitParameterNames(); // 所有的初始化参数名称

while (params.hasMoreElements()) {

String nameParam = (String) params.nextElement(); // 获取参数名

String valueParam = this.getInitParameter(nameParam); // 获取参数值

if (nameParam.equalsIgnoreCase(username) && valueParam.equalsIgnoreCase(password)) { // 如果用户名,密码匹配则显示notice.html

request.getRequestDispatcher("/WEB-INF/notice.html").forward(request, response);

return;

}

}

this.doGet(request, response); // 若username,password不匹配,显示登录页面。

}

notice.html可以自己制作,请放置在web-inf下。

总结

使用到了枚举类型: Enumeration params = this.getInitParameterNames(); 1. 获取web.xml中所有的参数名: this.getInitParameterNames(); 2. 对枚举的遍历: while (params.hasMoreElements()){ …} 3. 获取下一个元素: params.nextElement(); 4. 获取名称对应的值: getInitParameter(nameParam); 5. 重定向: request.getRequestDispatcher("/WEB-INF/notice.html").forward(request, response); 6. 当修改完web.xml,需重启服务器,方可生效。

Copyright © 2088 世界杯欧洲预选赛_南非世界杯主题曲舞蹈 - lyzkxt.com All Rights Reserved.
友情链接