JavaWeb课程系列

5.ServletContext接口

1) web容器在启动时,他会为每个web应用都创建一个对应的ServletContext对象。注意:            一个web应用对应的是一个ServletContext对象。就行每个web应用就像是不同的餐厅,       而Servlet是餐厅服务员,可以有很多,ServletContext是这个餐厅的经理只能有一个。

  • 由于一个web应用程序的所有Servlet都共享的是同一个ServletContext对象,所以ServletContext对象也被称为application对象(web应用程序对象)
  • 在应用程序中能够获取运行环境或者容器信息的对象通常称之为“上下文对象”。
  • ServletContext的主要功能

  a)获取虚拟路径所映射的本地路径

虚拟路径:浏览器访问web应用中资源时所使用的路径

本地路径:资源在文件系统中的实际保存路径

 b)application域范围的属性

 c)获取web应用程序的初始化参数

设置Web应用初始化参数的方式是在web.xml的根标签下加入如下代码

<!-- Web应用初始化参数 -->

         <context-param>

                   <param-name>ParamName</param-name>

                   <param-value>ParamValue</param-value>

         </context-param>

获取Web应用初始化参数

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

                            //1.获取ServletContext对象

                            ServletContext context = this.getServletContext();

                            //2.获取Web应用初始化参数

                            String paramValue = context.getInitParameter("ParamName");

                            System.out.println("paramValue="+paramValue);

              }

5.HttpServletRequest接口

该接口是ServletRequest接口的子接口,封装了HTTP请求的相关信息,由Servlet容器创建其实现类对象并传入service(ServletRequest req, ServletResponse res)方法中。我们请求的详细信息都可以通过HttpServletRequest接口的实现类对象获取。这个实现类对象一般都是容器创建的,我们不需要管理。

HttpServletRequest主要功能

7.1 获取请求参数

1)什么是请求参数?

请求参数就是浏览器向服务器提交的数据

2)浏览器向服务器如何发送数据

a)附在url后面,如:http://localhost:8989/MyServlet/MyHttpServlet?userId=20

b)通过表单提交

<form action="MyHttpServlet" method="post">

                   你喜欢的足球队<br /><br />

                   巴西<input type="checkbox" name="soccerTeam" value="Brazil" />

                   德国<input type="checkbox" name="soccerTeam" value="German" />

                   荷兰<input type="checkbox" name="soccerTeam" value="Holland" />

                   <input type="submit" value="提交" />

         </form>

 

3)使用HttpServletRequest对象获取请求参数

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

                   //一个name对应一个值

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

                   System.out.println("userId="+userId);

         }

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

                   //一个name对应一组值

                   String[] soccerTeams = request.getParameterValues("soccerTeam");

                   for(int i = 0; i < soccerTeams.length; i++){

                            System.out.println("team "+i+"="+soccerTeams[i]);

                   }

         }