1. web.xml中,上下文(全局)参数的使用。 2. HTML中,使两个div在同一行中显示。
前言
开发环境Eclipse EE 2020, Dynamic Web Project
一、web.xml
其中定义了两个上下参数: upload folder, allowed file type。 :
代码如下:
<context-param>
<param-name>upload folder</param-name>
<param-value>attachment</param-value>
</context-param>
<context-param>
<param-name>allowed file type</param-name>
<param-value>.gif,.jpg,.bmp</param-value>
</context-param>
<servlet>
<servlet-name>contextParamServlet</servlet-name>
<servlet-class>ContextParamServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>contextParamServlet</servlet-name>
<url-pattern>/contextParamServlet</url-pattern>
</servlet-mapping>
二、类图与CSS文件
该工程只有一个类: ContextParamServlet,其输出了Html文档。
该html中引用了: css/style.css文件。
style.css:
.line {
margin: 2px;
}
.leftDiv {
width: 110px;
float: left; <!--第一个div靠左后,则第二个div就可以和它在同一行出现。-->
height: 22px;
line-height: 22px;
font-weight: bold;
}
.rightDiv {
height: 22px;
line-height: 22px;
}
public class ContextParamServlet extends HttpServlet {
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("<!DOCTYPE HTML PUBLIC \" - //W3C//DTD HTML 4.0.1//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>读取上下文参数</TITLE></HEAD>");
out.println("<link rel = 'stylesheet' type = 'text/css' href = 'css/style.css'>");
out.println(" <BODY>");
out.println("<div align = 'center'><br/>");
out.println("<fieldset style = 'width:90%'><legend>所有的文档参数</legend><br/>");
ServletContext servletContext = getServletConfig().getServletContext(); // 获取上下文参数
String uploadFolder = servletContext.getInitParameter("upload folder"); // 获取参数
String allowedFileType = servletContext.getInitParameter("allowed file type");
out.println("<div class='line'>");
out.println(" <div align = 'left' class = 'leftDiv'>上传文件夹</div>");
out.println(" <div align = 'left' class='rightDiv'>" + uploadFolder + "</div>");
out.println("</div>");
out.println("<div class='line'>");
out.println(" <div align = 'left' class='leftDiv'>实际磁盘路径</div>");
out.println(" <div align = 'left' class='rightDiv'>" + servletContext.getRealPath(uploadFolder) + "</div>");
out.println("</div>");
out.println("<div class='line'>");
out.println(" <div align='left' class='leftDiv'>允许上传的类型</div>");
out.println(" <div align='left' class='rightDiv'>" + allowedFileType + "</div>");
out.println("</div>");
out.println("</fieldset></div>");
out.println("</BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}
servletContext.getRealPath(String path) : 获取某文件在服务端的磁盘路径。
总结
关于web.xml中的<context-param>
是全局的,所有Servlet都可以读取。
但定义在 <servlet><init-param>....</init-param></servlet>
中的参数,只能被对应的Servlet获取。