首页 > 编程语言 >java - ServletContext

java - ServletContext

时间:2022-10-27 22:02:29浏览次数:78  
标签:username java String ServletException resp ServletContext servlet

ServletContext:

web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的web应用;

作用:共享数据---->我们在这个servlet保存的数据可以在另外一个servlet中拿到:

public class Helloservlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Hello,servlet");
        //this.getInitParameter()初始化参数
        //this.getServletConfig()servlet配置
        //this.getServletContext()servlet上下文
        ServletContext context=this.getServletContext();
        String username="java_小白";//数据
        context.setAttribute("username",username);//将一个数据保存在了servletContext中,名字为:username = 值为 username

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }
}

  我们在helloservlet中创建了一个ServletContext对象,通过ServletContext的setAttribute方法,把一个数据(username)放入了这个对象之中;用于被公共取用

public class Getservlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext context1=this.getServletContext();
        String username =(String) context1.getAttribute("username");
        resp.setContentType("text/hrml");
        resp.setCharacterEncoding("utf-8");
    resp.getWriter().print("名字:"+username);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}

  我们继续在Getservlet中创建了一个ServletContext对象,不同的是我们使用了ServletContext的getAttribute方法;用于拿到username中的值,并且将它输出来

      值得注意的是,这个时候的返回值是object类,所以在我们知道返回值是String类型的时候我们可以将它强制转换为String,才不发生错误

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="3.1"
         metadata-complete="true">
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>top.lostyou.servlet.Helloservlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>getc</servlet-name>
        <servlet-class>top.lostyou.servlet.Getservlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>getc</servlet-name>
        <url-pattern>/getc</url-pattern>
    </servlet-mapping>
</web-app>

我们在编辑好了servlet后,每编辑好一个我们都要取对应的XML中注册

分别是   servlet   和   servlet-mapping   两个

resp.setContentType("text/hrml");
resp.setCharacterEncoding("utf-8");
以上两个代码是用于处理servlet的乱码问题的,比如:中文输出为????

标签:username,java,String,ServletException,resp,ServletContext,servlet
From: https://www.cnblogs.com/5ran2yl/p/16834151.html

相关文章

  • Java反射
    Java反射作用原理:反射机制在运行时,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意个对象,都能够调用它的任意一个方法,在Java中,只要给定类的名字,就可以通过反射......
  • 学习java第一天
    关键字public权限修饰符表示公共的,任何地方都可以用class类的修饰符。static表示静态的void表示没有返回结果main主方法的名字,main方法是程序的入......
  • javaSE基础-比较器
    Java比较器1、java对象正常情况下只能进行==或!=,不能进行比较大小。若需要比较对象的大小,需要实现两个接口中的任何一个:Comparable或Comparator2、Comparable接口......
  • JavaScript数组相关操作方法以及数组扩展与修复
    JavaScript一些常用的操作方法join()将数组中所有元素转化为字符串并连接一起,返回最后生成的字符串。可以指定分隔符;vararr=[23,56,78,0,98,190];consol......
  • JavaScript设计模式-行为设计模式
    行为设计模式用于不同对象之间职责划分、算法抽象,包含:模板方法模式、观察者模式、状态模式、策略模式、职责链模式、命令模式、访问者模式、中介模式、备忘录模式、迭代器模......
  • JavaScript设计模式-结构型设计模式
    结构型设计模式关注如何把类或者对象组合成为更大、更复杂的结构,简化设计。包含:外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式外观模式(套餐服......
  • JavaScript中的
    "=="和"==="运算符使用于比较两个值是否相等。都允许任意类型的操作数,若操作数相等则返回true,否则返回false。"===":严格相等运算符(恒等运算符),用来检测两个操作数是......
  • JavaScript中易忘的运算符
    eval()JavaScript通过全局函数eval()可以解释运行由JavaScript源码组成的字符串并且产生一个值。eval("25*4");//==100eval()是一个原本是一个函数,但是已经被当成运算符来......
  • JavaScript函数进阶
    JavaScript中函数是第一类对象。函数与对象共存,函数也可以被视为其他人一类型的JavaScript对象。函数能被变量引用、能以字面量形式声名,甚至可以作为函数参数进行传递。Java......
  • JavaScript数组的push()等方法的使用
        数组是值得有序集合。每个值在数组中有一个位置,用数字表示,叫做索引。JavaScript数组是无类型的:数组元素可以是任何类型,而且同一个数组中可以存在不同类型元素,甚......