Java教程

java web虚拟路径和web.xml参数读取

本文主要是介绍java web虚拟路径和web.xml参数读取,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

主题:1、虚拟路径映射;2、servletConfig;3、servletContext

一、回顾—用idea来开发servlet

1、打开idea,创建普通java工程:文件file—>new–>project–>两次next—>第二个文本框后面三点中选择项目存放地址,在后面添加项目名

2、将java工程转换成java web工程:在左上角项目名上右击,选择第二项,把web application勾上,默认4.0版本

3、添加servlet模板:file–>ps—>modules–>右边选择第三个dependencies–>点击±->lib–>java–>tomcat服务器里面lib文件夹里面的servlet-api.jar,连点三次OK

4、创建servlet类:左上角src上右击,选择new–》选择servlet—》取类名—》可取包名–》暂时把最下面的勾勾去掉

5、在web.xml中创建一个路由映射:把浏览器中地址映射到服务器中某一个servlet

6、在servlet类中的doget方法中写上一行代码

7、配置调试运行参数,可以自动完成如下工作

编译–》到tomcat服务器中webapps文件夹下创建网站文件夹—》创建web.xml—>复制目标代码到网站里面WEB-INF下面的classes文件夹里面—》启动服务器—》启动浏览器

  • run菜单–》点击第5项,再点击edit–》±–》选择tomcat local
  • 右边选择server–》文本框后面configure,配置tomcat服务器的位置
  • 配置浏览器,配置到文件名
  • 点击最下面右边fix按钮,就配置好了,可以点击run运行,会自动启动服务器,自动编译,自动启动浏览器

二、虚拟路径—路由表/api表

1、作用:

浏览器地址栏中输入的地址,传送服务器,服务器如何根据地址来寻找对应的代码程序(servlet)

2、一一映射

一个地址对应一个代码程序

3、多个地址映射到一个代码程序

通过地址栏来获取某个学生的成绩:/student/001,/student/002

我们把具有某种特征的访问地址,归类用同一个代码程序来处理

注意:如果有多条路由匹配地址,则匹配程度越高的优先

4、默认路由

当浏览器输入的地址在路由表中没有找到匹配的路由条目,则用默认路由来匹配

5、根路由

指的是地址栏中指输入根地址,没有子地址,这是匹配/*这条路由

6、补充—如何将servlet中处理结果直接输出到浏览器中

这里是将浏览器看出cmd窗口输出,不是网页文件

//        第一步:通过response参数获取PrintWriter对象,把输出内容写入到这个对象中就会自动输出到浏览器
        PrintWriter out=response.getWriter();
//        第二步:把输出内容用write方法写入out
        out.write("hello1");

三、servletConfig读取web.xml中的私有参数

1、作用:

有些servlet在处理请求时,需要读取一些初始化参数,可以在web.xml中保存这些参数,servletConfig可以读取保存的数据

保存在何处:web.xml文件
数据属于这个servlet独有,其他servlet不能访问读取

代码中没有提供手段来写这些参数

2、在web.xml中编辑参数

 <servlet>
        <servlet-name>Servlet1</servlet-name>
        <servlet-class>ldzy.soft2.Servlet1</servlet-class>
        <init-param>
            <param-name>schoolName</param-name>
            <param-value>ldzy</param-value>
        </init-param>
        <init-param>
            <param-name>AAA</param-name>
            <param-value>aaa</param-value>
        </init-param>
    </servlet>

3、代码中读取参数

//        第一步:通过this的方法来获取ServletConfig对象
        ServletConfig config=this.getServletConfig();
//        第二步:ServletConfig对象的方法来读取对应键的值
        String schoolName=config.getInitParameter("schoolName");

四、servletContext读取web.xml中的共享参数

1、作用

所有servlet在处理请求时,需要读取一些公共参数,这些参数可以保存到web.xml中,servletContext可以读取这些参数,代码中不能写这些参数

注意:参数是所有servlet共享,每一个servlet都可以读取

2、在web.xml中编辑这些参数

<context-param>
        <param-name>companyName</param-name>
        <param-value>itcast</param-value>
    </context-param>
    <context-param>
        <param-name>address</param-name>
        <param-value>beijing</param-value>
    </context-param>

3、代码中读取参数

//        第一步:通过this的方法来获取servletContext对象
        ServletContext context=this.getServletContext();
//        第二步:通过ServletContext对象的方法来读取指定的键的值
        String companyName=context.getInitParameter("companyName");
        String address=context.getInitParameter("address");
        //        第一步:通过response参数获取PrintWriter对象,把输出内容写入到这个对象中就会自动输出到浏览器
        PrintWriter out=response.getWriter();
//        第二步:把输出内容用write方法写入out
        out.write(companyName+":"+address);

五、servletContext来在不同的servlet中共享参数

1、参数存放在哪里

就存放在servletContext对象中,并没有保存到文件中

2、servletContext对象的生命周期

创建时间:该网站第一次接受浏览器访问时

释放时间:tomcat服务器关闭重启,或者该网站长时间(可以设置)没有访问请求到来,就会自动释放

3、写数据

context.setAttribute("companyName","abc");

4、读数据

ServletContext context=this.getServletContext();String companyName=(String) context.getAttribute("companyName");

5、作用

不同servlet交换数据

这篇关于java web虚拟路径和web.xml参数读取的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!