Java中易混淆问题总结


(自用)持续更新…

一、路径问题

1. Java EE中的路径

① 简介

  • 1)首先,一个Java Web工程其文件结构如图所示:


  • 2)其次,该项目发布到Tomcat服务器时,将out目录下的文件发布到Tomcat服务器

    • 如:E:\Project\JAVA\javaEE\idea\Practice\out\artifacts\Servlet_war_exploded
  • 3)静态资源(存放项目web下的html、jsp等文件)存放目录

    • Servlet_war_exploded目录下**(即项目根目录)**
    • 如图:
  • 4)项目中存放在WEB-INF文件夹下的文件的路径

    • 如:Servlet_war_exploded\WEB-INF
  • 5)java文件的字节码(class)文件

    • 如:Servlet_war_exploded\WEB-INF\classes\包名
  • 6)src下的文件存放目录

    • 如:Servlet_war_exploded\WEB-INF\classes

② 路径

  • 1)当前请求从服务器发出,不需添加虚拟路径,如:

    • 请求转发:request.getRequestDispatcher("/requestDemo4_2").forward(request, response)
  • 2)当前请求从客户端发出,需添加虚拟路径,如:
    • 重定向:response.sendRedirect("/servlet/responseDemo1_2");
  • 3)ServletContext获取文件路径(默认web目录下)
    • 当前目录(即web目录下):/a.txt
    • web/WEN-INF下文件:/WEB-INF/b.txt
    • src目录下文件:/WEB-INF/classes/c.txt

2. Java SE中的路径

  • 1)ClassLoader:默认路径为src下的路径

    • 若访问src下的文件,例如:类名.class.getClassLoader().getResourceAsStream("jdbc.propertyes")
  • 2)IO流,如File对象:默认路径为项目或Mudule根目录
    • 若访问src下的文件,需添加src,例如:File file = new File("src/jdbc.properties")

二、乱码问题

1. 请求/响应

  • 1)获取请求参数乱码

    • get方式:tomcat8以上已解决
    • post方式:在获取参数前设置request的流的编码(因为post获取参数的方式是先获取流,在获取参数)
      • request.setCharacterEncodinf("utf-8")
  • 2)响应给浏览器的中文乱码
    • 原因:浏览器默认编码为系统编码(GBK),而服务器中response.getWriter();获取的流的编码为tomcat编写时的编码(ISO-8859-1)。由于编码与解码方式不一致,故导致中文乱码。
    • 解决1:在获取流之前设置编码为浏览器默认编码(GBK):response.setCharacterEncoding("gbk");
    • 解决2:或者设置响应头的Content-Tyoe告诉浏览器本次响应的数据格式
      ding(“gbk”);`
    • 解决2:或者设置响应头的Content-Tyoe告诉浏览器本次响应的数据格式
    • 解决3(★):直接设置:response.setContextType("text/html;charset=utf-8")

Java中易混淆问题总结相关推荐

  1. java中容易混淆的方法_java中容易混淆的概念

    java中容易混淆的概念 1. 谈谈 final, finally, finalize 的区别final-修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不 能作为父类被 ...

  2. java中容易混淆的方法_java中容易混淆的区别

    本文会随时更新一些java中容易混淆的关键字或者知识点,如有偏见之处,望留言! final和static的差别: 1,final的英语意思"最后的",在java中修饰类,方法和变量 ...

  3. 计算机组装与拆解中容易混淆的知识点,教资干货 | 教资笔试中易混淆的知识点整合...

    原标题:教资干货 | 教资笔试中易混淆的知识点整合 教师资格笔试越来越近, 同学们要会进行归纳整理和总结, 很多同学复习的很好, 但一看到题目的时候就不确定具体答案是哪个了, 今天小编就来归纳整理教资 ...

  4. C语言中易混淆的标识符,C语言指针中易混淆的概念

    C语言指针中易混淆的概念 一.数组指针与指针数组的区别 考虑数组的指针的时候我们要同时考虑类型和维数这两个属性.换一句话,就是说一个数组排除在其中存储的数值,那么可以用类型和维数来位置表示他的种类. ...

  5. MSSQL SERVER中易混淆的数据类型

    本篇文章由 泉州SEO www.234yp.com 整理发布,php连接mssql www.234yp.com/Article/168210.html 谢谢合作! php连接mssql 数据类弄是数据 ...

  6. Java中易忽略的基础知识

    欢迎关注我的公众号[软件大爆炸] Java学习中的碎碎念 Java中易忽略的基础知识 Java面向对象基础 Java中的核心类 Java抽象类和接口 Java中的异常 Java中的泛型与集合 Java ...

  7. drools规则引擎中易混淆语法分析_相互触发导致死循环分析

    整理了下最近在项目中使用drools出现的问题,幸好都在开发与测试阶段解决了,未波及到prod. 首先看这样两条规则: /*** 规则1_set默认利率a */ rule "rate_def ...

  8. EMV中易混淆概念总结

     CDOL(卡风险管理数据对象列表):GAC命令中需要传送给卡片的数据对象列表.CDOL是终端在读应用记录处理过程中从卡片中读取的 TDOL(交易证书数据对象列表):列出生成交易证书(TC)哈希计 ...

  9. 记录在学习python中易混淆的知识点

    这里写目录标题 列表 元组 Python中的*args和**kwargs 具有两个以上维度的数据帧切片 列表 访问列表中的列表元素: list = [123,['hello','world'],456 ...

  10. Java中易混知识点

    1.&与&&,|与||的区别: A&B,A&&B:二者都表示逻辑与运算符(and),只有AB表达式都为true时,整个运算结果才为true. A& ...

最新文章

  1. Debian 6 7 8 utc时间设置
  2. acwing算法题--多重背包问题二
  3. ogre3D学习基础10 -- 键盘控制与鼠标控制(直接控制)
  4. Qt修炼手册11_多线程编程和QThread类
  5. 2020年 第11届 蓝桥杯 Java C组 省赛真题详解及小结【第1场省赛 2020.7.5】
  6. 电工助手App开发 第三周
  7. github初学者指南_GitHub初学者指南
  8. ubuntu全局配置文件
  9. 怎么在html mui中找到下拉刷新,HelloMUI例子中的下拉刷新
  10. 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法...
  11. DV、OV、EV :SSL证书那么多,我该选择哪一种?
  12. 我是一只IT小小鸟(转载)
  13. 如何在Excel里输入可以打钩的选择框?
  14. 3CDaemon使用教程
  15. html怎样给图片铺热区,HTML图片热区map area的用法
  16. 到底什么才是边缘计算?
  17. 三维坐标变换——旋转矩阵与旋转向量
  18. Electron源码学习: Electron组成与初始化流程
  19. Markdown笔记及常用快捷键(自用)
  20. win10系统,修改注册表,Acrobat DC关联pdf格式

热门文章

  1. SEO优化的四个建议
  2. leetcode33. 搜索旋转排序数组
  3. 积雪草酸肌白蛋白纳米粒|野黄芩苷豆清白蛋白纳米粒|黄芩苷蓖麻蛋白纳米粒(齐岳)
  4. PCB、SCH转化为AD工程
  5. Altium designer Sch Compiler:编译常见错误
  6. HDU 6438-Buy and Resell
  7. 正牌韦小宝之奉旨沟女 解说
  8. 计算机无法安装64位操作系统,细说64位电脑怎么安装32位系统
  9. SQL Server 下载和安装详细教程(点赞收藏)
  10. Java之网络编程(二)UDP