我遇到的一些问题(空指针异常、jsp页面传值)
我遇到的一些问题(2019.3.10)
声明:本人还是一个大三小白,有错误请谅解。
1.如何避免NullPointerException
空指针异常是导致Java应用程序失败的最常见原因。最近老是跳出NullPointerException,针对性的查阅了相关资料,发现一大部分是自己的习惯问题。
1.字符串与文字的比较
以前老是把字符串写到括号内,经常出现空指针异常。
例如,最近在写jsp代码时通过equals()和三目运算符判断男女时:
stat.setString(2,t3.equals("1")?"男":"女");/ *会抛出异常。* /
}
上面的代码片段会抛出一个NullPointerException。
但是,如果我们从文字中调用方法,那么执行流程通常会继续:
stat.setString(2,"1".equals(t3)?"男":"女");/ *正确的用例。不会抛出异常。* /
}
2.转换成String字符串的时候使用String.valueOf()不使用toString();
因为如果参数为空String.valueOf()方法会返回"null"字符串,toString()方法则会抛出空指针异常。
3.检查方法中的参数是否为空
…
参考:https://blog.csdn.net/kuyuyingzi/article/details/16973429
2.两个jsp页面间如何传值
- URL传值
1.跳转不显示XXX.jsp?XXX=XXX
login.jsp:
<%pageContext.forward("home.jsp?sno="+t1);%>
home.jsp
<% String sno = pageContext.getRequest().getParameter("sno") ;
%>
2.显示XXX.jsp?XXX=XXX
home.jsp:
<%<button onclick="location.href='self.jsp?sno=<%=sno%>'" type="button">修改个人信息</button>
%>
self.jsp:
<%String sno = pageContext.getRequest().getParameter("sno")
%>
优点:
简单性和平台支持的多样性(没有浏览器不支持URL)。
缺点:
1)传输的数据只能是字符串,对数据类型具有一定的限制;
2)传输数据的值会在浏览器地址栏里面被看到,从保密的角度讲,这是不安全的。特别是秘密性要求比较严格的数据,比如说密码。
- 表单传值
方法一中通过URL传的值会被看到,为了避免这个问题,我们可以使用表单将页面1中的变量传给页面2。
该方法的问题:
1)和URL方法类似,该方法传输的数据,也只能是字符串,对数据类型具有一定的限制;
2)传输数据的值虽然可以保证在浏览器地址栏里不被看到,但是在客户端源代码里面也会被看到,从保密的角度讲,这是不安全的。对于是秘密性要求比较严格的数据,比如说密码来说还是不建议用表单来进行传输
- Cookie方法
为了解决以上问题,在页面之间进行数据传递的过程中,Cookie是一种常见的方法。
Cookie是一个小的文本数据,由服务器端生成,发送给客户端浏览器,客户端浏览器如果设置为启用 cookie,则会将这个小文本数据保存到其目录下的文本文件内。
客户端下次登录同一网站,浏览器则会自动将 Cookie 读入之后,传给服务器端。服务器端可以对该 Cookie 进行读取并验证(当然也可以不读取)。
一般情况下,Cookie 中的值是以key-value的形式进行表达的。基于这个原理,上面的例子可以用 Cookie来进行。即:在第一个页面中,将要共享的变量值保存在客户端 Cookie 文件内,在客户端访问第二个页面时,由于浏览器自动将 Cookie读入之后,传给服务器端,因此只需要第二个页面中,由服务器端页面读取这个 Cookie 值即可。
Cookie xh1=new Cookie("get_xh",xh); xh1.setMaxAge(600);response.addCookie(xh1);
另一个界面:
String t1=null; Cookie[] cookies=request.getCookies(); for(int i=0;i<cookies.length;i++) { if(cookies[i].getName().equals("get_t1")) { t1=cookies[i].getValue(); break; }
参考:https://blog.csdn.net/mrleeapple/article/details/78552777
我遇到的一些问题(空指针异常、jsp页面传值)相关推荐
- 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】...
页面传值--最佳答案6种方式: 一. 使用QueryString变量 QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全 ...
- 【已解决】对JSP页面传值中文乱码的简单解决方法
很多java程序员在日常的工作中总会遇到对JSP页面传值中文乱码的情况,一些朋友由于操作不当,造成了很大的麻烦.本文将为大家讲解关于对JSP页面传值中文乱码的简单解决方法的内容. 方法/步骤 方法一: ...
- jsp页面页面post传值_几种JSP页面传值方式
2010-01-25 几种JSP页面传值方式: 文章分类:Web前端 几种JSP页面传值方式: 1. 隐藏域传值: <form method="post" action ...
- layer用ajax往jsp页面传值,layer.open中父页面向子页面传值(示例代码)
1.咱先看图说话 父list.jsp 子operate.jsp 实现的代码 1 在父页面上完成对子页面的数据渲染 function setData(data) { var lay=layer.open ...
- JSP 页面传值方法总结
JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式. 1. URL 链接后追加参数 <a href=&quo ...
- MVC架构接收jsp页面传值
一.jsp页面提交请求方式 1.发送ajax方式: get提交:参数可以用请求路径?a=1&b=2&c=3...方式 post提交:参数可以new 对象,然后用对象的属性进行传参. 2 ...
- JSP页面传值出现中文乱码的问题
在接收值的jsp页面代码的body里添加: <%request.setCharacterEncoding("utf-8"); %> //这里是设置utf-8为jsp页 ...
- java jsp页面传值_JSP 页面传值方法总结
JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式. 1. URL 链接后追加参数 URL 后面追加参数 resp ...
- JSP页面传值方法总结
出处:http://www.cnblogs.com/java-class/ 阅读目录 1. URL 链接后追加参数 2. Form 3. 设置 Cookie 4. 设置 Session JSP 页面间 ...
最新文章
- 对tf.reduce_mean API的理解就是求平均值,reduce指的是一串数据求平均值后维数降低了,可不是吗,一串向量变成了一个数,维数自然降低了
- xftp permission is not allowed
- linux系统/var目录的作用
- html 移动端关于长按图片弹出保存问题
- 数据库备份还原顺序关系(环境:Microsoft SQL Server 2008 R2)
- Rx2.0后台开发分享
- Python datetime astimezone()方法与示例
- Spring Security 示例UserDetailsS​​ervice
- 4.15_strategy_行为型模式:策略模式
- 经常用到的一个分页存储过程
- C语言课程设计|学生成绩管理系统(含完整代码)
- 左耳朵耗子的技术书籍建议
- 有监督学习和无监督学习的异同
- DEL计算机英语翻译,哥德尔计算机,G·del computer,音标,读音,翻译,英文例句,英语词典...
- 学习javaweb第四天
- 自然语言三兄弟NLP、NLU、NLG傻傻分不清?一文搞懂它们的区别
- Typora设置标题自动标号
- MOSES系统训练中间过程和意义详解
- python语音识别分析_python数据建模分析 - 语音识别
- 20岁以后增高方法大全
热门文章
- springboot疑难杂症
- 使用爬虫抓取淘宝商品数据
- 程序员护眼心得——20171229
- java 邮件 客户端_JAVA编写ESMTP客户端发送邮件代码
- 请求数据应该放在Created还是Mounted
- OpenCV C++案例实战六《绿幕视频背景替换》
- 软文营销拒绝一成不变用故事建立情感依恋
- python设计一个动物类_「Python」每日一练:设计圆类计算周长和面积、设计动物类...
- 《途客圈创业记:不疯魔,不成活》一一2.12 Nanfang离职
- 基于SSM实现企业生资源管理系统-ERP系统