jsp中application.getAttribute()的返回类型是什么?

问题描述

<%@ page import="java.util.*"%><%@ page language="java" contentType="text/html;charset=gb2312"%><html><body><% int num; if(application.getAttribute("num")==null) { application.setAttribute("num","1"); } else{ num=Integer.parseInt((String)application.getAttribute("num"));//mark num++; application.setAttribute("num",Integer.toString(num)); out.println(application.getAttribute("num").getClass().getName()); out.println((String)application.getAttribute("num").getClass().getName()); }%><h1>这个页面已经被浏览了<%=(String)application.getAttribute("num")%>次</h></body></html> ------------------------------输出----------------------------------既然application.getAttribute("num")返回类型是String,那么为什么把//mark处的代码改为num=Integer.parseInt(application.getAttribute("num");则会提示:The method parseInt(String) in the type Integer is not applicable for the arguments (Object)?

解决方案

因为你往里面放的就是String 所以获取的时候就是java.lang.String 若是你往里面放Integer,则取出来就是java.lang.Integer,所以application.getAttribute("num").getClass().getName()取出来是实际的数据类型但是application.getAttribute("num")取出来的是Object,因为Object是所有的类的父类,你可以使用instanceof进行判断
解决方案二:
第一,返回的是Object,需要强转第二,String也属于object第三,application.getAttribute("num").getClass().getName()里的getname()方法返回的是一个字符串
解决方案三:
说有的getAttribute()方法返回的都是Object对象。需要强制类型转换。
解决方案四:
1、application.getAttribute("num")返回的是Object类型的,不是String类型的。2、Integer.parseInt(String)参数为String类型不是Object类型。3、你的写法太复杂了,可以直接Integet num = (Integer)application.getAttribute("num")。

时间: 2024-09-05 10:16:53

jsp中application.getAttribute()的返回类型是什么?的相关文章

jsp-关于JSP中application 中 对页面的计数代码,谁给讲解一下啊!!

问题描述 关于JSP中application 中 对页面的计数代码,谁给讲解一下啊!! <% if(application.getAttribute("counter") == null) { application.setAttribute("counter", "1"); } else { String strnum = null; strnum = application.getAttribute("counter"

JSP中实现判断客户端手机类型并跳转到app下载页面_JSP编程

判断客户端手机类型,并跳转到相应的app下载页面 实现的原理,是检测浏览器的 USER-AGENT 这个header,然后根据正则表达式来确定客户端类型. 如果都不匹配,Fallback回退策略是显示对应的页面,让用户自己选择. 适合采用二维码扫描方式下载APP: JSP版本的代码如下所示:其他服务端版本请百度搜索. <%@page import="java.util.regex.Matcher"%> <%@page import="java.util.re

Servlet及JSP中的多线程同步问题

js|servlet|多线程|问题 Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率.由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的同步问题.然而,很多人编写Servlet/JSP程序时并没有注意到多线程同步的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题,对于这类随机性的问题调试难度也很大. 一.在Servlet/JSP中的几种变量类型 在

JSP 中EL表达式用法详解

EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${为起始.以}为结尾的.上述EL范例的意思是:从Session的范围中,取得 用户的性别.假若依照之前JSP Scriptlet的写法如下: User user =(User)session.getAttribute("user"); String sex =user.getSex( );

复杂类型javabean(数组成员)在jsp中的运用:在jsp页面间传递数组

js|数组|页面 在论坛上常看见有人问如何在jsp页面间传递数组,其实用javabean是很容易实现的. 下面给个简单的例子,只要遵循javabean的游戏规则,什么类型的数据结构都可以传递: 1:写一个测试用的javabean:package com.infoearth;public class JobBean{private int[] b;  /**  * @return 返回 b.  */ public int[] getB() {  return b; } /**  * @param

怎么在jsp中设置一个数组全局变量,加static报错??能用application吗,怎么用

问题描述 急求大神解救 解决方案 解决方案二:小弟刚来,分给的少别介意.....解决方案三:你是什么意思啊,是不同页面共享这个数组全局变量吗?那就用request.getSession().setAttribute解决方案四:你在class里加,然后把这个classimport进来试试解决方案五:我用Arraylist数组new了一个goodslist对象用来存商品信息,然后把goodslist存到session中,我想定义一个全局变量,当从jsp传值(商品的name等)过来时依次存到goods

jsp 时间相减-jsp中两个string类型的时间怎么相减,回答的好的提高悬赏

问题描述 jsp中两个string类型的时间怎么相减,回答的好的提高悬赏 java.util.Date endDate3 = new java.util.Date(iYear,iMonth,iDate-iDay+7+ (iNext*7));//根据系统时间获取的时间 java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd"); String sEndDate3 = formatt

二次开发过程中,如何获取CRM4检索类型的返回值。使用JAVASCRIPT等技术

问题描述 二次开发过程中,如何获取CRM4检索类型的返回值.使用JAVASCRIPT等技术.也就是点击检索类型旁边的放大镜后,需要对弹出的子页面的返回的值进行处理.谢谢各位大侠啦. 解决方案

webservice-WebService中方法返回类型为Map时发布报错

问题描述 WebService中方法返回类型为Map时发布报错 发布时报错: 解决方案 webservice返回的应该是json格式吧.你MAP格式要转换成json 解决方案二: webservice返回的是xml格式的soap消息吧.现在的情况是发布webservice的时候报错