我遇到的一些问题(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页面传值)相关推荐

  1. 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】...

    页面传值--最佳答案6种方式: 一. 使用QueryString变量 QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全 ...

  2. 【已解决】对JSP页面传值中文乱码的简单解决方法

    很多java程序员在日常的工作中总会遇到对JSP页面传值中文乱码的情况,一些朋友由于操作不当,造成了很大的麻烦.本文将为大家讲解关于对JSP页面传值中文乱码的简单解决方法的内容. 方法/步骤 方法一: ...

  3. jsp页面页面post传值_几种JSP页面传值方式

    2010-01-25 几种JSP页面传值方式: 文章分类:Web前端 几种JSP页面传值方式: 1. 隐藏域传值: &ltform method="post" action ...

  4. layer用ajax往jsp页面传值,layer.open中父页面向子页面传值(示例代码)

    1.咱先看图说话 父list.jsp 子operate.jsp 实现的代码 1 在父页面上完成对子页面的数据渲染 function setData(data) { var lay=layer.open ...

  5. JSP 页面传值方法总结

    JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式. 1. URL 链接后追加参数 <a href=&quo ...

  6. MVC架构接收jsp页面传值

    一.jsp页面提交请求方式 1.发送ajax方式: get提交:参数可以用请求路径?a=1&b=2&c=3...方式 post提交:参数可以new 对象,然后用对象的属性进行传参. 2 ...

  7. JSP页面传值出现中文乱码的问题

    在接收值的jsp页面代码的body里添加: <%request.setCharacterEncoding("utf-8"); %>  //这里是设置utf-8为jsp页 ...

  8. java jsp页面传值_JSP 页面传值方法总结

    JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式. 1. URL 链接后追加参数 URL 后面追加参数 resp ...

  9. JSP页面传值方法总结

    出处:http://www.cnblogs.com/java-class/ 阅读目录 1. URL 链接后追加参数 2. Form 3. 设置 Cookie 4. 设置 Session JSP 页面间 ...

最新文章

  1. 对tf.reduce_mean API的理解就是求平均值,reduce指的是一串数据求平均值后维数降低了,可不是吗,一串向量变成了一个数,维数自然降低了
  2. xftp permission is not allowed
  3. linux系统/var目录的作用
  4. html 移动端关于长按图片弹出保存问题
  5. 数据库备份还原顺序关系(环境:Microsoft SQL Server 2008 R2)
  6. Rx2.0后台开发分享
  7. Python datetime astimezone()方法与示例
  8. Spring Security 示例UserDetailsS​​ervice
  9. 4.15_strategy_行为型模式:策略模式
  10. 经常用到的一个分页存储过程
  11. C语言课程设计|学生成绩管理系统(含完整代码)
  12. 左耳朵耗子的技术书籍建议
  13. 有监督学习和无监督学习的异同
  14. DEL计算机英语翻译,哥德尔计算机,G·del computer,音标,读音,翻译,英文例句,英语词典...
  15. 学习javaweb第四天
  16. 自然语言三兄弟NLP、NLU、NLG傻傻分不清?一文搞懂它们的区别
  17. Typora设置标题自动标号
  18. MOSES系统训练中间过程和意义详解
  19. python语音识别分析_python数据建模分析 - 语音识别
  20. 20岁以后增高方法大全

热门文章

  1. springboot疑难杂症
  2. 使用爬虫抓取淘宝商品数据
  3. 程序员护眼心得——20171229
  4. java 邮件 客户端_JAVA编写ESMTP客户端发送邮件代码
  5. 请求数据应该放在Created还是Mounted
  6. OpenCV C++案例实战六《绿幕视频背景替换》
  7. 软文营销拒绝一成不变用故事建立情感依恋
  8. python设计一个动物类_「Python」每日一练:设计圆类计算周长和面积、设计动物类...
  9. 《途客圈创业记:不疯魔,不成活》一一2.12 Nanfang离职
  10. 基于SSM实现企业生资源管理系统-ERP系统