X65535JavaWeb部分02

X65535JavaWeb部分02

Servlet请求转发

		/*
        请求转发有如下几个步骤
        1. 配置web.xml文件,配置servlet标签和servlet-map标签
        2. 调用HttpServletRequest参数(req)的getParameter方法,获取请求参数名
        3. 调用req的setAttribute方法,盖章
        4. 调用req的getRequestDispatcher方法,参数是servlet2路径,需要/开头
           返回RequestDispatcher对象
        5. RequestDispatcher对象实例调用forward方法,传递参数req,resp
        6. 此时servlet2处理请求的方法中只需要查看是否有servlet1的章就行了
         */

X65535JavaWeb部分02
X65535JavaWeb部分02

ServletContext类的作用

/*
		ServletContext类的4个作用
        1. 获取web.xml中配置的上下文参数context-param
        2. 获取当前工程路径,格式:/project path
        3. 获取工程部署后在服务器硬盘上的绝对路径
        4. 像Map一样存取数据
        */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1. 获取上下文参数context-param
        ServletContext servletContext = getServletConfig().getServletContext();
        String s = servletContext.getInitParameter("computerModel");
        // 访问 <project path>/real5即可在控制台打印apple
        System.out.println(s);
        // 2. 获取当前工程路径
        String contextPath = servletContext.getContextPath();
        System.out.println(contextPath);
        // 3. 获取当前工程绝对路径,磁盘上的绝对路径映射到IDEA代码的web目录下
        servletContext.getRealPath("/");
        // 4. 像Map一样存取数据
        // 这里注意1个点,就当我们工程加载完成后,无论我们在工程下的哪里,都可以得到我们存入的数据,这就是域,ServletContext是域对象
    }

X65535JavaWeb部分02
X65535JavaWeb部分02

ServletConfig类的作用

/*
		ServletConfig类3大作用
        1. 可以获取Servlet程序别名servlet-name值
            servletConfig.getServletName();
        2. 获取初始化参数init-param
            servletConfig.getInitParameter("paramName");
        3. 获取ServletContext对象
            servletConfig.getServletContext();
        4. 注意在init方法中使用
	    */

base标签的作用

X65535JavaWeb部分02

相对路径参照当前浏览器地址栏当前路径
X65535JavaWeb部分02
下面的第1张图片应该是理想的跳转路径,但是使用了请求转发的时候,
此时浏览器地址栏显示的并不是/a/b/c.html,而是/project/forward请求转发页面,
所以在相对路径工作参照地址栏的时候,就会找不到原来的index.html界面

X65535JavaWeb部分02
base标签可以解决这一问题,
base标签可以设置当前页面中所有相对路径工作时,参照哪个路径来进行跳转
base标签是写在head标签里面的,然后一般写在title标签下面

X65535JavaWeb部分02
此时忽略掉浏览器地址栏显示什么路径,c.html界面都可以跳转回首页,下面补充一下相对路径和绝对路径的知识点
X65535JavaWeb部分02

总目录

上一篇:javaweb 获取资源


下一篇:【Java web:servletconfig、context】