精华内容
下载资源
问答
  • session:封装用户会话的对象,可以用于保存用户的私有的信息,也可以作为域对象使用; application:封装服务器运行环境的对象; out:输出服务器响应的输出流对象; config:Web应用的配置对象; exception:封装...
  • java中的域对象

    千次阅读 2020-07-29 09:05:21
    java中的域对象 1.什么是域对象 域对象主要用在web应用中,负责存储数据,通俗的将就是这个对象本身可以获得一定范围内的所有数据, 可以理解为万能的一个属性,只要调用它就可以获得这个范围()内的想要的数据 2...

    java中的域对象

    1.什么是域对象

    域对象主要用在web应用中,负责存储数据,通俗的讲就是这个对象本身可以存储一定范围内的所有数据,通过它就能获取和存储数据,
    可以理解为万能的一个属性,只要调用它就可以获得这个范围(域)内的想要的数据,也可以修改删除数据,当然也可以给这个域添加数据

    2.域对象分类

    根据 作用域的不同主要分为:

    • PageContext域
    • HttpServletRequest域
    • session域
    • ServletContext域

    从上到下作用域依次增大,可以理解为类似修饰符private 、protected 、默认、public 的等级

    3.域对象通用方法

    getAttribute(String name) 获取对应的数据
    getAttributeNames()获取所有的key
    removeAttribute(String name) 移除对应的数据
    SetAttribute(String name, Object object) 设置数据

    4.具体域对象

    ServletContext域
    Session域对象
    HttpServletRequest请求域对象
    PageContext域对象

    展开全文
  • 域对象

    千次阅读 2018-09-12 00:06:59
    域对象 可以在不同Servlet之间传递数据的对象,就是域对象 只要是域对象都有如下方法 setAttribute(name,value);存储数据的方法 getAttribute(name);根据name获取对应数据值 removeAttribute(name);删除数据...

    域对象

    可以在不同Servlet之间传递数据的对象,就是域对象
    
    只要是域对象都有如下方法
        setAttribute(name,value);存储数据的方法
        getAttribute(name);根据name获取对应数据值
        removeAttribute(name);删除数据

    request域对象

    
    request里面的数据只有当前的一个请求域内,也就是请求转发前后的servlet可以共享。
    
    Request,一次请求来到服务器,服务器创建,服务器这次请求响应结束后销毁requestrequest对象是一次请求内有效。
    
    注意: request域对象数据只能在页面跳转-请求转发才能共享获取,
    如果想要页面不跳转就能获取共享数据,就只能使用ServletContext域对象.
    //定义数据
    List<String> list = new ArrayList<String>();
    
    list.add("张三");
    list.add("李四");
    list.add("王五");
    
    //使用域对象request存储数据
    request.setAttribute("emplist", list);
    
    response.getOutputStream().write("进入了ForwardOneServlet".getBytes());
    
    //请求转发到ForwardTwoServlet
    request.getRequestDispatcher("ForwardTwoServlet").forward(request, response);//可以访问
    
    //请求转发是服务器执行的路径跳转,路径写法有2种
    //1.资源路径,相对路径,就代表访问当前工程目录下的
    //2./资源路径,第一个“/”,代表当前工程目录下,因为路径是由服务器执行的,所以第一个“/”就是当前工程目录下
    
    //注意:只有请求转发是由服务器执行的
    //request.getRequestDispatcher("https://www.baidu.com").forward(request,response);//不能访问的
    //请求转发浏览器栏不变
    
    *  路径写法
    *    全路径,绝对路径  url=/工程名字/资源路径
    *    相对路径        url=资源路径
    
    *    浏览器执行的路径第一个“/”代表webapps根目录
    *    服务器执行的路径第一个“/”代表当前工程目录下
    *    只有请求转发时服务器执行的,所以不能写工程名字。
    request.getRequestDispatcher("/requestGetData").forward(request, response);
    request.getRequestDispatcher("requestGetData").forward(request, response);
    response.getOutputStream().write("进入了ForwardTwoServlet".getBytes());
    
    //从域对象里面获取数据
    Object object = request.getAttribute("emplist");
    
    if(object!=null){
        List<String> list = (List<String>) object;
        for (int i = 0; i < list.size(); i++) {
            response.getOutputStream().write(list.get(i).getBytes());
        }
    }

    ServletContext域对象

    作用域范围全局
    
    当前工程只有一个ServletContext对象,存储的数据在当前工程内部共享。
    
    当服务器启动的时候被创建,当前服务器正常关闭或重启的时候才销毁。
    servletContext里面存储的数据在当前项目下的所有servelt都可以共享
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        List<String> list = new ArrayList<String>();
        list.add("aa");
        list.add("bb");
        list.add("cc");
    
        //将数据存储到ServletContext中
        getServletContext().setAttribute("emplist", list);
    }
    
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    
        //获取数据
        Object object = getServletContext().getAttribute("emplist");
        if(object!=null){
            List<String> list = (List<String>) object;
            for (String string : list) {
                response.getWriter().write(string);
            }
        }
    }

    获取全局配置参数

    <!--web.xml-->
    <context-param>
        <param-name>dbuser</param-name>
        <param-value>root</param-value>
    </context-param>
    
    <context-param>
        <param-name>dbuserpwd</param-name>
        <param-value>123</param-value>
    </context-param>
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    
        //使用ServletContext获取web.xml中全局配置参数
        //getServletContext().getInitParameter(name);
        //getServletContext().getInitParameterNames();
    
        Enumeration<String> enumeration = getServletContext().getInitParameterNames();
    
        while (enumeration.hasMoreElements()) {
    
            String paramName = enumeration.nextElement();
    
            String paramValue = getServletContext().getInitParameter(paramName);
    
            System.out.println(paramName+":"+paramValue);
        }
    }

    统计成功登录的人数

    登录---数据库
    
    开发步骤
    1.设计数据表
    2.导入相关jar包
    mysql的jar
    c3p0的jar
    dbutil的jar
    
    3.配置数据库连接池
    
    4.设计程序类
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>login.html</title>
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    
        <meta http-equiv="description" content="this is my page">
    
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
      </head>
    
      <body>
        <form action="/TEST/login" method="post">
        <p>用户名:<input type="text" name="userName" /></p>
        <p>密&nbsp;码:<input type="password" name="pwd" /></p>
        <p><input type="submit" value="登录" /></p>
        </form> 
      </body>
    </html>
    public class LoginServlet extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doPost(request, response);
    
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //处理post提交中文乱码问题
            request.setCharacterEncoding("utf-8");
            //获取数据
            String userName = request.getParameter("userName");
            String pwd = request.getParameter("pwd");
    
            //数据封装起来
            User user = new User(0, userName, pwd);
    
            //实例业务处理类
            UserService userService = new UserService();
    
            //验证登录
            if(userService.login(user)){
    
                //统计登录成功人数,使用servletContext统计,name为count
                //先获取已有count人数,在此基础上+1
                Object object = getServletContext().getAttribute("count");
                if(object==null){
                    //统计人数为1
                    getServletContext().setAttribute("count", 1);
    
                }else{
                    int count = (int) object;
                    count++;
                    getServletContext().setAttribute("count",count);
                }
    
    
                request.setAttribute("result", true);
            }else{
                request.setAttribute("result", false);
            }
            //页面跳转
            request.getRequestDispatcher("/result").forward(request, response);
        }
    }
    /**
     * 业务处理类
     */
    public class UserService {
    
        /**
         * 实例数据访问类
         */
        UserDao userDao = new UserDao();
    
        /**
         * 验证登录
         * @param user
         * @return
         */
        public boolean login(User user) {
            //查找数据库是否存在对应用户
            if(userDao.isExists(user)){
                return true;
            }
            return false;
        }
    }
    /**
     * 数据访问类
     * @author songyu
     *
     */
    public class UserDao {
    
        /**
         * dbutil工具类
         */
        private QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
    
        /**
         * 判断用户是否存在
         * @param user
         * @return
         */
        public boolean isExists(User user) {
            try {
                String sql = "select * from user where username=? and pwd=?";
                User user2 = runner.query(
                        sql,
                        new BeanHandler<User>(User.class) ,
                        user.getUserName(),user.getPwd());
                return user2!=null;
            } catch (SQLException e) {
    
                e.printStackTrace();
    
                throw new RuntimeException(e);
            }
        }
    }
    /**
     * dopost2
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    
            //设置输出中文乱码问题
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
    
            //获取登录的结果
            Object object = request.getAttribute("result");
            if(object!=null){
                boolean flag = (boolean) object;
                if(flag){
    
                    //显示成功登录人数
                    Object object2 = getServletContext().getAttribute("count");
    
                    int count = 0;//用于存储统计的人数
                    if(object2!=null){
                        count = (int) object2;
                    }
    
                    out.write("<font color='green'>目前登录成功的人数:"+count+"</font>");
    
    
                }else{
                    out.write("<font color='red'>登录失败</font>");
                }
          }
    }
    展开全文
  • jsp的九大内置对象和四大作用.一共有九大内置对象: request、response、out、session、application、pageContext、page、config、exception 四大作用 page(页面作用),request(请求作用),session(会话...
  • JAVA中的四大域对象总结

    千次阅读 2019-04-16 19:12:57
    域对象的定义 可以在不同的Servlet中进行数据传递的对象就称为域对象域对象必须有的方法 setAttribute(name,value);存储数据的方法 getAttribute(name);根据name获取对应数据值 removeAttribute(name);...
    • 域对象的定义

    可以在不同的Servlet中进行数据传递的对象就称为域对象。

    • 域对象必须有的方法
        setAttribute(name,value);存储数据的方法
        getAttribute(name);根据name获取对应数据值
        removeAttribute(name);删除数据
    
    • 四种域对象及其使用范围
    1. page(jsp有效)–>page域指的是pageContext.(前后端分离模式下基本不用了,本文也就不讲了)
    2. request(一次请求)–>request域指的是HttpServletContext(需要掌握)
    3. session(一次会话)–>session域指的是HttpSession
    4. application(当前web应用)–>application域指的是application ServletContext;
      之所以他们是域对象,原因是他们都内置了map集合,都有setAttribute和getAttribute方法。

    Request域

    • Request域对象的数据传递

    request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发,从而共享请求中的数据。

    • Request的生命周期
    1. 当请求来时创建request对象
    2. 当请求结束时,request就销毁。
    3. 每次请求都是一个新的request对象。
      request域对象,是建议使用,并被频繁使用的域对象,因为它声明周期比较短,也就代表着,它效率比较高,释放资源比较及时。

    Session域对象

    • Session生命周期

    在第一次调用request.getSession()方法时,服务器会检查是否已经有对应的session,如果没有就在内存中创建一个session并返回。
    (1)当一段时间内session没有被使用(默认为30分钟),则服务器会销毁该session。
    (2)如果服务器非正常关闭,没有到期的session也会跟着销毁。
    (3)如果调用session提供的invalidate(),可以立即销毁session。
    用户打开浏览器访问,创建session(开始),session超时或者被声明失效,该对象生命周期结束;

    • Session的作用范围

    HttpSession 在服务器中,为浏览器创建独一无二的内存空间,在其中保存会话相关的信息
    注意:服务器正常关闭,再启动,Session对象会进行钝化和活化操作。同时如果服务器钝化的时间在session 默认销毁时间之内, 则活化后session还是存在的。否则Session不存在。 如果JavaBean 数据在session钝化时,没有实现Serializable 则当Session活化时,会消失。

    • 在同一服务器上不同的request请求是会得到唯一的session

    Session生成时机:request对象调用getSession方法时生成,服务器会为该Session对象生成一个唯一的ID。
    服务器端响应客户端请求时会在报文头中设置Set-Cookie属性,该属性内容中有一个JSESSIONID即是Session对象的标识,返回后由浏览器进行处理。客户端再次发送请求时,浏览器会在报文头中自动追加Cookie属性,该属性将JSESSIONID传到服务器端。在服务器端用request.getSession时会取得SessionId对应的对象而不会重新生成Session。

    • 监听Session的利器HttpSessionListener

    Session创建事件发生在每次一个新的session创建的时候,类似地Session失效事件发生在每次一个Session失效的时候。任何一个Session被创建或者销毁时,都会通知SessionCounter 这个类。比如在统计网站在线人数的这个场景下,可以使用HttpSessionListenner进行监听。

    • Session何时创建

    Session并不是一打开网页就创建了session对象。对于Servlet的请求中,只有当Servlet内部调用了如下代码,才会生成session

    HttpSession session = request.getSession();
    // or
    HttpSession session = request.getSession(true);
    

    如果写成如下,则不会创建session

    HttpSession session = request.getSession(false);
    

    加入我们访问的是jsp页面,因为Jsp页面内置了session对象,封装了调用session的代码,则一打开jsp页面会创建session

    ServletContext域对象

    • ServletContext的生命周期

    随着WEB应用的创建而创建,随着WEB应用关闭而销毁。

    • 作用范围

    整个WEB应用

    • 作用

    1.不同的servlet之间进行调整。

    this.getServletContext().getRequestDispatcher("/servlet1").forward(request,response); 
    
    • 读取文件
    1. Web应用的根目录
    InputStream stream = this.getServletContext().getResourceAsStream("conf.properties");
    Properties properties = new Properties();
    properties.load(stream);
    String name = properties.getProperty("name");
    String password = properties.getProperty("password");
    
    1. Src下面
    InputStream stream = MyServlet.class.getClassLoader().getResourceAsStream("conf.properties")
    
    1. Src下某个包下面,则
    InputStream stream = MyServlet.class.getClassLoader().getResourceAsStream("com/haoeasy/conf.properties")
    

    4.获取绝对路径

    MyServlet.class.getClassLoader().getResourceAsStream("com/haoeasy/conf.properties").getPath()
    
    展开全文
  • JSP的九个内置对象及四个作用
  • 域对象详解

    千次阅读 2018-09-25 10:01:28
    域对象作用: 在一定范围内可以共享数据  request : 一次请求 多个资源 共享 数据  session : 默认一次会话 多个请求 多个资源共享数据  servletContext : 一个项目 多个会话 多个请求 多个资源 共享同一份...

    域对象作用: 在一定范围内可以共享数据

             request  : 一次请求 多个资源 共享 数据

             session :  默认一次会话  多个请求 多个资源共享数据

             servletContext :  一个项目 多个会话 多个请求 多个资源 共享同一份数据

    域对象的api

    setAttribute(String key , Object Value )

    getAttribute(String key )

    removeAttribute (String key )

    域对象的生命周期

                                       创建                                        销毁
    request请求开始响应结束
    session第一次调用

    1.tomcat超时三十分钟(默认)

    2.手动调用invalidate()

    3. 服务器非正常关闭

    ServletContext启动创建关闭销毁

    域对象该如何选择

    1.能小不大原则

    2.需求优先原则

    展开全文
  • application对象及作用 四大作用

    千次阅读 2020-06-25 09:50:43
    1 application对象概念 application对象,上下文对象,其生命周期和...2、将计数器存储在全局作用中,计数器+1后存储到全局作用中。 3、每次在访问该页面时,先获取原来的访问次数,然后在原油的次数上+1,最后将最
  • 九大隐含对象和四大域对象

    千次阅读 2018-06-13 21:23:45
    隐含对象 隐含对象也称为内置对象,隐含对象可以在jsp中直接拿来使用,不必再去声明。 在jsp中一共有9个隐含对象,分别为:pageContext、request、response、session、out、config、page、exception、application...
  • Java对象作用

    千次阅读 2017-06-11 21:40:41
    大多数程序设计语言都提供了“作用”(Scope)的概念。对于在作用里定义的名字,作用同时决定了它的“可见性”以及“存在时间”。在C,C++和Java 里,作用是由花括号的位置决定的。参考下面这个例子: { ...
  • 域对象对象不都是存储数据吗?为什么还要分域对象对象?这个是指的作用还是什么?那么多对象为什么Javaweb中只有四个域对象?求解...
  • jsp四大作用和九大对象

    千次阅读 多人点赞 2018-11-20 21:59:11
    jsp四大作用和九大对象 详情查看 我的脑图 四个作用:request、session、application、page 1. request request是表示 一个请求 ,只要发出一个请求就会创建一个request,它的作用:仅在当前...
  • 模型域对象

    2019-03-29 08:46:18
    模型是面向对象的,在面向对象术语中,模型也称为设计模型。模型由以下内容组成: 具有状态和行为的域对象 域对象之间的关系 关联、依赖、聚集、一般化 域对象 域对象可以代表业务领域中的人、地点、...
  • JSP 九大内置对象及四个作用详解

    万次阅读 多人点赞 2019-01-18 10:29:13
    JSP中一共预先定义了9个内置对象:内置对象,又叫做隐含对象,不需要预先声明就可以在脚本代码和表达式中随意使用 request、response、session、application、out、pagecontext、config、page、exception ...
  • 模型(DomainModel)

    2021-02-27 09:14:15
    面向对象域模型通常看起来与数据库模型很相似,但是也有很多不同。域模型混合数据和过程,有多值属性和复杂的关联网络,并使用继承。结果我看到了两种风格的域模型。简单域模型看起来与数据库设计非常相似,它对于每...
  • JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception1、request对象request 对象是 javax.servlet.httpServletRequest类型的对象。...
  • JS基础知识(作用对象

    千次阅读 2020-09-29 09:38:34
    JavaScript基础知识作用全局作用局部作用变量的作用全局变量局部变量作用总结预解析变量预解析(变量提升)函数预解析(函数提升)函数表达式声明函数问题对象创建对象利用字面量创建对象利用 new Object ...
  • jsp之九大内置对象与四大域对象

    万次阅读 多人点赞 2017-03-31 15:15:10
    一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp...
  • JAVA之四大作用域对象

    千次阅读 2018-03-06 20:44:45
    java四大作用按作用范围从大到小为:ServletContext,Session,request,pageContext其作用就是为了在一定范围内共享数据,下面这张图聚合了四大作用的生命周期,作用范围,主要功能....
  • request域对象和session域对象

    千次阅读 2017-04-19 23:59:07
    当你只想servlet穿过来的域对象只存留一次会话中的时候,用request域对象 request.setAttribute("successModify", "修改资料成功"); 当你像一直使用的时候,用session域对象 request.getSession()....
  • Spring 对象作用

    千次阅读 2017-05-21 20:28:12
    默认情况下, Spring 将创建的对象放在它的容器中缓存,当我们需要某个对象时,Spring 将缓存的对象返回给我们,并不会创建新对象,如果你想让 Spring 每次返回一个新对象该怎么办呢?看看下面的例子吧。package ...
  • Jsp的四个域对象

    千次阅读 2018-03-16 17:38:50
    域对象的作用: 用于保存数据,获取数据,在不同资源之间共享数据。 域对象的方法: setAttribute(name,object) ; 保存数据方法 getAttribute(name) 获取数据 romveAttribute(name) 清除数据 四个域对象的作用...
  • JSP四大域对象

    千次阅读 2018-11-20 14:51:08
    这四个域对象都提供了一对相同的方法: 设置一个属性: setAttribute(“属性名”,“属性值”); 获取一个属性: getAttribute(“属性名”); 一、pageContext: 它是四大域对象中域最小的,只能获取本页中set设置的属性 ...
  • 四大域对象: (1)pageContext page -指当前页面,在当前 jsp 页面有效,跳到其它页面失效 (2)request request -指一次请求范围内有效,从 http 请求到服务器处理结束,返回响应的整个过程。在这个过程中使用...
  • servlet的三大作用域对象:request(HttpServletRequest)session(HttpSession):application(ServletContext):tomcat启动时创建,tomcat关闭时销毁,整个web的生命周期只有一个括号内为其对应的类jsp的九大...
  • JSP中一共有九个内置的对象,分别是:request、response、session、application、out、pagecontext、config、page、exception ...request对象的作用为一次请求。 2.response 该对象是对客户端的响应,主要是将JS...
  • java内置对象作用

    2011-03-13 14:24:17
    java内置对象作用java内置对象作用java内置对象作用java内置对象作用
  • 简述Java Web三大作用域对象

    千次阅读 多人点赞 2020-08-28 22:15:40
    Java Web三大作用域对象 导航栏Java Web三大作用域对象1、HttpServletRequest——请求对象2、HttpSession——用户会话对象3、ServletContext——Web应用程序全局对象另外有些开发建议: 这三个对象的作用和生命...
  • 九大内置对象和四大作用

    千次阅读 2019-10-27 14:18:39
    一、JSP九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用。 1、request对象:代表的是来自客户端的请求,例如我们在...作用为request(用户请求期)。 2、...
  • ServletContext对象之作为域对象存取数据 域对象概述: 域对象:指的是将数据存入到域对象中,这个数据就会有一定的作用范围。指的是一定的作用范围。 ServletContext作为域对象 ServletContext作为域对象的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 878,373
精华内容 351,349
关键字:

对象的域