1、Path总结1、java项目1 File file = new File("");file.getAbsolutePath();* 使用java命令,输出路径是,当前java命令停留的盘符* F:\workspaces\20141123\demo\bin* 使用myeclipse或eclipse运行时* F:\workspaces\20141123\demo2 File file = new File("/");file.getAbsolutePath();* 获得当前盘符* F:\3 URL url = Hello.class.getClassLoader().getResource("");* 获得路径,使用类加载器* F:/workspaces/20141123/demo/bin/* 当前类被加载时,所在的文件根目录4 URL url = Hello.class.getClassLoader().getResource("/");* 不能使用* null2、web项目1、通过servletcontext获得文件,WebRoot根目录下的文件ServletContext sc = this.getServletContext();* 获得实际路径* sc.getRealPath("/1.html");* 获得URL* URL url = sc.getResource("/1.html"); * 获得流【**】* InputStream is = sc.getResourceAsStream("/1.html");如果要获取WebRoot/page/abc/2.html,则InputStream is = sc.getResourceAsStream("/page/abc/2.html");2、web的相对路径* 前提:相对当前的页面1.html* 使用分类:1、abc:与当前页面同级的目录或servlet的名称* <a href="c/c.html">c.html</a><br>2、/abc:相对于web站点,%tomcat%/webapps/* <a href="/day06_web/b/c/c.html">c.html</a><br>3、./abc:当前目录,与第一种情况相同* <a href="./c/c.html">c.html</a><br>4、../abc:上一次目录* <a href="../b/c/c.html">c.html</a><br>总结:操作过程当前页面:http://localhost:8080/day06_web/b/b.html目标页面:http://localhost:8080/day06_web/b/c/c.html/ -- webapps  -- http://localhost:80802、ServletContext* 对当前web项目上下文的描述(对当前web项目所有内容的描述),由tomcat在启动时创建,tomcat关闭时销毁。说白了,也就是说可以管理WebRoot下的文件,比如读取WebRoot下的文件* servlet -- > init(ServletConfig)  --> config.getServletContext();* 当前servlet的所在的项目* tomcat为每一个web项目单独创建一个区域,用来管理整个项目。此区域成为ServletContext* 管理当前项目【*****】ServletContext sc = this.getServletContext();//源码其实就是config.getServletContext()* 获得实际路径,要求必须/开头* sc.getRealPath("/1.html");//得到WebRoot根目录下1.html的绝对路径* 操作数据* add set get remove delete* setAttribute/getAttribute/removeAttribute* ServletContext对象对所有的servlet共享数据* 给当前web项目配置内容【**】* 配置文件的位置:web.xml* 配置内容,例如配置数据库连接字符串<context-param><param-name>username</param-name><param-value>root</param-value></context-param>* 如何读取//获得ServletConetxtServletConetxt sc = this.getServletContext();//获得所有的配置信息名称<context-param><param-name>username</param-name>Enumeration<String> names = sc.getInitParameterNames();while(names.hasMoreElements()){String value = sc.getInitParameter(name);System.out.println("context:"+name+":"+value);}* context root* 当前ServletContext所指web项目的根* tomcat --> webapps/webName/* myeclipse -->webName/WebRoot/3、ServletResponse* 服务器对浏览器做出的响应,将需要发送给浏览器的所有数据全部存放在此对象上。* 发送数据,使用流操作,将所需要的数据,存放在指定的流中,数据将显示到浏览器中HttpServletResponse response ;* 字符流* response.getWriter();* 字节流* response.getOutputStream();* 当使用getOutputStream时,不能使用getWriter* getOutputStream() has already been called for this response* 当使用getWriter时,不能使用getOutputStream* getWriter() has already been called for this response* 总结:两个流同时只能使用一个* 字节流:getOutputStream,一般在程序中使用具有拷贝功能等* 发送中文* 不能发送* out.print(data); 不能发送中文数据 * 异常信息:java.io.CharConversionException Not an ISO 8859-1 character: 中* 可以发送* out.write(data.getBytes("UTF-8"));* 字符流:getWriter,一般在程序中发送数据内容* 发送中文* out.println("中文");* 乱码【****】* response.setContentType("text/html;charset=utf-8");* 通知tomcat和浏览器发送数据的编码* 注意:* 设置编码时,必须放置在需要输出语句之前,建议放置在doGet或doPost第一行4、ServletRequest* 浏览器向服务器的请求(浏览器将数据发送给服务器时,数据存放的地方)* 请求方式:GET和POST* GET:发送的数据,追加在请求的URL之上* POST:发送的数据在HTTP请求体中* 浏览器发送数据* 表单form,* method属性:指定的请求方式* action属性:接收数据的程序路径* 服务器获得浏览器发送的数据* 获得单个数据* request.getParameter("username");获取input type="radio"时,获取的是选中的值* 获得一组数据* request.getParameterValues("love");获取input type="checkbox"时,获取的是选中的值* 处理中文乱码* request.setCharacterEncoding("UTF-8");* 注意:* 此方法只对POST请求有效,GET需要单独处理* 需要放置在获得数据之前,建议放在第一个行一般建议将处理doGet的方法交给doPost进行处理,在doPost中获取request.setCharacterEncoding("UTF-8");String userName = request.getParameter("userName");如果非要在doGet中获取,可以使用以下代码:第一种方式:String userName = new String(request.getParameter("userName").getBytes("ISO-8859-1"),"UTF-8");第二种方式://得到参数字符串String query = request.getQueryString();//解码String q = URLDecode.decode(query,"UTF-8");结果:q:uername=中文

转载于:https://www.cnblogs.com/yxlblogs/p/4122356.html

JavaWeb学习之Path总结、ServletContext、ServletResponse、ServletRequest(3)相关推荐

  1. html与java接口,JavaWeb学习——Servlet相关的接口和类

    JavaWeb学习--Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...

  2. 【javaweb学习笔记】servlet-api,filter和Listener

    javaweb学习笔记 1. servlet-api 1.1 servlet初始化 1.2 ServletContext和context-param 2. 什么是业务层 3. IOC 3.1 耦合/依 ...

  3. JavaWeb学习--复习

    JavaWeb学习 JavaWeb--Html 1.提交按钮 <button οnclick="alert('你好')">提交</button>,oncli ...

  4. B站狂神说JavaWeb学习笔记

    JavaWeb学习笔记(根据b站狂神说java编写) 1.基本概念 1.1 前言 静态Web: 提供给所有人看数据不会发生变化! HTML,CSS 动态Web: 有数据交互,登录账号密码,网站访问人数 ...

  5. JavaWeb学习笔记(5)-B站尚硅谷

    文章目录 十四.书城项目第三阶段--优化 (1)页面jsp动态化 (2)抽取页面中相同的内容 A.登录成功的菜单 B.base.css.jQuery标签 C.每个页面的页脚 D.manager模块的菜 ...

  6. javaweb学习总结(六)——Servlet开发(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  7. javaweb学习总结(六):Servlet开发(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  8. JavaWeb学习笔记(十)--HttpServletRequest

    1. HttpServletRequest简介 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中 2. Ht ...

  9. 转载:javaweb学习总结(二十三)——jsp自定义标签开发入门

    javaweb学习总结(二十三)--jsp自定义标签开发入门 转自:http://www.cnblogs.com/xdp-gacl/p/3916734.html 一.自定义标签的作用 自定义标签主要用 ...

最新文章

  1. shell介绍及基本用法
  2. pytorch学习笔记(二):gradien
  3. 有限状态机时代终结的10大理由
  4. 用 Hasor 谈一谈MVC设计模式
  5. JAVA复习5(集合——拓展——单向链表)
  6. Qt5.10编写FTP客户端
  7. Redis常用命令大全
  8. oracle升序和降序同时存在,oracle升序排序 oracle升序和降序
  9. 纯真IP/ZXinc_IPv6数据库镜像及MySQL脚本更新同步更新 for Python 3.x
  10. Hi3861 ADC驱动 如何使用开发板上的3个按键
  11. (HTTP 503) (Request-ID: req-4f56de6f-d29c-4c44-aed3-e6ef8253384a)
  12. linux的iptable开启命令,linux防火墙查看状态firewall、iptable
  13. 微信小程序checkbox的全选以及所有checkbox选中之后的全选
  14. 【面试必备】编程学java还是c
  15. 一起飞系列之:腾讯云配置Ubuntu16.04, Nginx, PHP 7, MySql, PhpMyAdmin, 域名
  16. android微信炸弹代码,微信炸弹怎么弄 微信8.0扔炸弹攻略[多图]
  17. 摘录互联网企业的优秀企业文化集萃
  18. ros --- 录制imu bag包 和 imu标定
  19. Python使用pandas_ml输出混淆矩阵以及从混淆矩阵衍生出来的其他指标:TP、TN、FP、FN、TPR、TNR(SPC)、PPV、NPV、FPR、FDR、FNR、ACC、F1、MCC等
  20. 用文件记录游戏最高分【C语言】

热门文章

  1. 终于知道如何才能取得HtmlEditor里的数据了
  2. 【LDA学习系列】Latent Dirichlet Allocation主题模型理解
  3. GCN代码超详解析Two-stream adaptive graph convolutional network for Skeleton-Based Action Recognition(二)
  4. spring中基于XML的AOP配置步骤
  5. java 接口 实现和继承关系
  6. jquery clone 与 clone(true) 的区别
  7. ADB连接小米手机模拟上下左右滑动实例演示
  8. Remove Duplicates from Sorted ListII
  9. Python标准库01 正则表达式 (re包)
  10. 什么函数不能声明为虚函数