背景

失败是成功之母,前提是没有被遗忘的失败,本文记录这几天学习 Java,自己遇到的几个问题和解决方案,希望能达到强化记忆的作用。

开发环境是:Eclipse + Tomcat7.0。

第一个:依赖的第三方 jar 必须拷贝到 WEB-INF\lib 或 Tomcat 的 lib 目录

如果只是将第三方 jar 包添加到 build path 中只能保证编译通过,不能保证运行成功,关于如何配置运行期间类型的加载路径,我还没有查资料。

第二个:使用了 == 号

java 中不能重写运算符,对于 Class 和 Interface 来说,equals 的语义是值比较,== 的语义是引用比较。

第三个:在 Tomcat7.0 中使用了默认包

默认包中的类型在 JSP 中使用的时候,编译时没有问题,运行时就出错了。

第四个:在一个会话里测试 Page 指令的 isThreadSafe 配置

isThreadSafe 为 false 会导致所有请求串行化,为 true 会导致会话内的请求串行化。

如果你用同一个会话测试的话,true 和 false 的效果是一样的,使用两个浏览器可以到达期望的效果。

  1. <%@ page language="java" session="false" isThreadSafe="false"
  2. contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; utf-8">
  7. <title>page 指令学习</title>
  8. </head>
  9. <body>
  10. <p>isThreadSafe为false会导致所有请求串行化,为true会导致会话内的请求串行化。</p>
  11. 开始时间是:
  12. <%
  13. out.println(new java.util.Date());
  14. %>
  15. <br />
  16. <%
  17. Thread.sleep(5000);
  18. %>
  19. 结束时间是:
  20. <%
  21. out.println(new java.util.Date());
  22. %>
  23. <br />
  24. <%=Thread.currentThread().getId()%>
  25. </body>
  26. </html>

第五个:获取请求参数还要手工解码

不明白 Java 为啥不自动解码,是不是有地方可以配置?有知道的兄弟告诉我一下。

  1. <%@page import="java.net.URLDecoder"%>
  2. <%@ page language="java" contentType="text/html; charset=utf-8"
  3. pageEncoding="utf-8"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; utf-8">
  8. <title>request study</title>
  9. </head>
  10. <body>
  11. <p>to get the parameter,you must set the character encoding first.</p>
  12. <%
  13. request.setCharacterEncoding("utf-8");
  14. %>
  15. <p>
  16. get love:
  17. <%
  18. if (request.getParameter("love") != null) {
  19. %>
  20. <%=new String(request.getParameter("love").getBytes(
  21. "iso-8859-1"), "utf-8")%>
  22. <%
  23. }
  24. %>
  25. </p>
  26. <p>
  27. post name:<%=request.getParameter("name")%></p>
  28. <form method="get">
  29. get form<input type="text" name="love" value="段光伟" /> <input
  30. type="submit" />
  31. </form>
  32. <form method="post">
  33. post form<input type="text" name="name" value="段光伟" /> <input
  34. type="submit" />
  35. </form>
  36. </body>
  37. </html>

备注

将自己的遇到的问题记录下来,即使是“白痴”级别的问题。

Java:初学 Java,遇到的问题及解决方案小结。的更多相关文章

  1. Ant学习-002-ant 执行 TestNG 测试用例时 [testng] java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException 解决方案

    上篇文章中概述了 Ant windows 环境的基本配置,此文讲述在初次使用的过程中遇到的问题. 今天通过 ant 执行 TestNG 测试用例时,执行报错,相应的错误信息如下所示: Buildfil ...

  2. 初学 Java Web 开发,请远离各种框架,从 Servlet 开发

    Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...

  3. java初学的分析

    java初学的分析第一阶段:入门阶段学习目标:简单项目开发学习内容:1.Java入门书籍,Java基础知识.关于Java入门级的书,给大家推荐过<Java编程思想>.<Java核心技 ...

  4. encodeURIComponent编码后java后台的解码 (AJAX中文解决方案)

    encodeURIComponent编码后java后台的解码 (AJAX中文解决方案) 同学的毕业设计出现JavaScript用encodeURIComponentt编码后无法再后台解码的问题. 原来 ...

  5. 初学Java的那段日子

    最近因为一个朋友想要学习Java,在帮助他找教程的过程中回想到了我自己当年学习Java的那段岁月,故写了此篇文章总结了一下初学Java所必须要掌握的知识点,然后把一部分常见的面试题罗列出来.给予刚刚开 ...

  6. 初学Java web(转)

    转自 http://www.oschina.net/question/12_52027 OSCHINA 软件库有一个分类——Web框架,该分类中包含多种编程语言的将近500个项目. Web框架是开发者 ...

  7. Can't accept UDP connections java.net.BindException: Address already in use_解决方案

    一.问题描述 在Linux服务器(CentOS7系统)中配置并启动JMeter远程监控服务器资源所需的ServerAgent目录下的 startAgent.sh 文件时,系统出现异常提示,如下: [r ...

  8. 【全网最优方法】JAVA初学:错误: 找不到或无法加载主类HelloWorld

    JAVA初学:错误: 找不到或无法加载主类 HelloWorld 我这是看的黑马2019网课(B站)出现的问题. 放一下别人的图,我也是大概的问题:就是javac没问题,java却无论怎么弄都报错. ...

  9. java初学复习

    作为学Java的小白,忽然想看一看自己学了些什么东西,话不多说,(这都是新手弄的总结)让我们看一看: 1.我们要先了解Java技术 Java SE:标准版java技术的基础和核心 Java EE:企业 ...

  10. (Java初学篇)IDEA项目新建流程和软件配置优化以及怎么彻底删除项目

    相信很多小伙伴们在初学 Java 时都会出现这样的情况,就是在网上一顿搜索加捣鼓终于把 JDK 和IDEA 这两款软件安装配置好,但是发现面对这个陌生的软件此时却无从下手,那么接下来我就给大家简单地介 ...

随机推荐

  1. 数据库连接池(c3p0与druid)

    1.数据库连接池概念 其实就是一个容器(集合),存放数据库连接的容器.当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归 ...

  2. 以太坊go-ethereum客户端(三)两种全节点启动模式

    这篇博客介绍一下go-ethereum全节点的两种启动模式:主网络快速启动和测试网络快速启动.这也是客户端所提供的两种启动方式,直接拿来使用即可.下面具体介绍一下使用方法. 主网络快速启动 其实,我们 ...

  3. 1、量化投资—为什么选择Python?

    Python在量化领域的现状 就跟Java在web领域无可撼动的地位一样,Python也已经在金融量化投资领域占据了重要位置,从各个业务链条都能找到相应的框架实现. 在量化投资(证券和比特币)开源项目 ...

  4. hdu 5202(DFS)

    Rikka with string Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  5. [实战]MVC5+EF6+MySql企业网盘实战(16)——逻辑重构3

    写在前面 本篇文章将新建文件夹的逻辑也进行一下修改. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实战]MVC5 ...

  6. 牛客网 牛客练习赛43 B.Tachibana Kanade Loves Probability-快速幂加速

    链接:https://ac.nowcoder.com/acm/contest/548/B来源:牛客网 Tachibana Kanade Loves Probability 时间限制:C/C++ 1秒, ...

  7. esxi上引起vm绑定浮动IP无法和外面通信

    在vmware esxi环境通过创建VM安装完成openstack之后,发现创建Instance后网络不通,经过多方面排查,最后确定是vmware esxi标准交换机拒绝“混杂模式”所致,故打开“混杂 ...

  8. I/O 多路复用之select、poll、epoll详解

    select,poll,epoll都是IO多路复用的机制.I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作.但s ...

  9. 批量 修改 android eclipse 项目名

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 最外层的 文件夹名字.

  10. android fragment activity 区别

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha fragment  负责一个模块 的展示. 由 活动 管理. 碎片 可以 解决 太多活动 ...