ServletConfig:用于读取配置文件信息

ServletContext:这是一个容器,代表一个web应用程序,多个Servlet可以通过这个容器共享数据信息(注意:这样的数据共享有线程安全问题,解决办法是
用request域来转发数据)当tomcat服务器启动时就会为每个web应用创建一个ServletContext
用例:ServletContext可以读取配置文件信息 :
in= this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
Properties props=new Properties();
props.load(in);
String url=props.getProperty("url");
web工程读取配置文件要注意:如果不是用ServletContext()读取配置文件,我们写的配置文件地址是相对于java虚拟机,当项目发布到tomcat服务器中时只好把配置文件写
到tomcat目录中的bin文件夹中了,如果用ServletContext()读取配置文件,我们是相对于项目工程,所以写上WEB-INF/classes/xx.properties
如果读取资源文件的程序不是Servlet的话,只能通过类装载器取读了:
InputStream in=XXClass.class.getClassLoader().getResourceAsStream(db.properties);
如果web.xml文件中配置了<init-param></init-param> 代表为一个Servlet配置了参数信息
如果web.xml文件中配置了<context-param></context-param>代表为整个web应用配置参数信息

乱码问题:response乱码: 在Servlet中用outputStream输出中文时,程序以什么码表输出,程序就一定控制浏览器以什么码表打开
输出数据给response对象: response.getOutputStream().wirte(data.getBytes("UTF-8"));
控制浏览器输出格式:response.setHeader("content-type","text/html;charset=UTF-8");
如果调用response.getWriter().write(data);则需要设置response.setCharacterEncoding("UTF-8");
注意:response.getOutputStream()(二进制方式)和response.getWriter()(文本字符串方式)互斥

request乱码:;如果是post请求,则只需要设置request.setCharacterEncoding("UTF-8");
如果是get请求,则要自定义转换 username=new String(username.getBytes("iso8859-1"),"UTF-8");

uri和URL的区别:
uri是父亲,代表某一资源,URL代表互联网上的固定资源,是完整路径

Response和Request常用方法:
response.setHead("","");返回响应头信息

request.getRequestURL()返回完整请求路径
request.getRequestURI()返回资源名部分
request.getQueryString()返回请求行中的参数部分
request.getRemotoAddr()返回客户机的ip地址
request.getRemotoHost()返回客户机的完整主机名
request.getRemotoPort()返回客户机的网络端口号
request.getMethod()得到客户机的请求方式
request.getLocalAddr()返回web服务器的ip地址
request.getLocalName()返回web服务器的主机名

在web开发中,数据的传递主要是同过ServletContext,request,Session这三个域(容器)进行的.
当数据在页面表示后,没有别的地方在用到,就用request

Web开发的小知识点的更多相关文章

  1. web开发前端面试知识点目录整理

    web开发前端面试知识点目录整理 基本功考察 关于Html 1. html语义化标签的理解; 结构化的理解; 能否写出简洁的html结构; SEO优化 2. h5中新增的属性; 如自定义属性data, ...

  2. 移动端web开发的一些知识点

    整理一下自己平时移动端web开发中遇到的问题,也参考一下前辈的一些总结 1.最常见的要数1像素边框了 因为Retine屏的分辨率始终是普通屏幕的2倍,1px的边框在dpr=2的retina屏下会显示成 ...

  3. Web开发必回知识点

    Web前端必须知道 一.常用那几种浏览器测试?有哪些内核(Layout Engine)? 1.浏览器:IE,Chrome,FireFox,Safari,Opera. 2.内核:Trident,Geck ...

  4. Web开发安全小贴士

    想要开发出一个安全的.健壮的Web应用其实是非常困难的, 如果你想要快速开发出一款集使用价值.用户体验度.以及安全性为一身的产品,以下安全步骤很必要!!!     数据库 1.对类似访问令牌.电子邮箱 ...

  5. Java Web开发 之小张老师总结中文乱码解决方案

    中文乱码:在以后学习过程中全部采用UTF-8 1.文件的乱码 1.1.项目文本文件默认编码:        [右击项目]->[Properties]->[Resource]->[Te ...

  6. OOP,WEB开发实用小技巧

    偶然读到一篇博客,记录一下心得.这种设计对于新手来说一般是想不到的,它充分的发挥了OOP语言的特性,让代码专用而清爽.这是不是重构的思想呢? 我们在写业务层的时候,有很多方法是重复功能的,我们就可以使 ...

  7. Java Web开发 之小张老师总结GET和POST区别

    get和post区别1.传输方式不同,get在request-line中传输(即在URL中传输).post在request-line及 request-body中传输(可认为隐藏传输)2.get传输长 ...

  8. Java Web开发 之小张老师总结EL、JSP、Servlet变量

    EL 11 JSP 9 Servlet JSP类别 pageContext pageContext * 作用域 pageScope pageContext.getAttribute() * reque ...

  9. Web开发知识点总结

    前言:这是一篇简单的web开发知识点的总结,适用于刚开始学习编程的人来学习的.我是为了能够在熟记熟记这些知识点而总结的一篇文章. 1       什么是浏览器? (1) 浏览器就是接收浏览者的操作(打 ...

随机推荐

  1. SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介、创建消息生产者、创建消息消费者、自定义消息通道、分组与持久化、设置 RoutingKey)

    1.概念:SpringCloudStream 2.具体内容 2.1.SpringCloudStream 简介 SpringCloudStream 就是使用了基于消息系统的微服务处理架构.对于消息系统而 ...

  2. random模块的学习

    import random # ret = random.random() #随机取0-1中间的浮点数 # ret = random.randint(1,3) #随机取1-3中间的整数 # ret = ...

  3. springIoC的理解01

    IOC将模块(对象)之间的依赖关系交由IOC容器管理,让应用开发对接口编程,而不是对类编程.依赖反转:每个对象都需要与其合作的对象(也就是依赖的对象)的引用.未使用依赖反转的特性之前,是需要先创建一个 ...

  4. mongodb插入数据获取本次插入的mongodb id

    最近接了一个别人的项目做二次开发,使用php进行mongodb的数据操作时,需要插入数据后得到相应的mongodb 中的id,简单代码如下 $data = array('test' => 'aa ...

  5. Jmeter生成html报告

    进入到jmeter安全目录bin下,执行以下命令 基本命令格式: jmeter -n -t test.jmx(性能测试脚本) -l testResult.csv(测试监听结果文件) -e -o tes ...

  6. SQL表变量和临时表

    一.表变量 表变量在SQL Server 2000中首次被引入.表变量的具体定义包括列定义,列名,数据类型和约束.而在表变量中可以使用的约束包括主键约束, 唯一约束,NULL约束和CHECK约束(外键 ...

  7. MySQL后台线程整理总结

    本文整理自<MySQL技术内幕 InnoDB存储引擎> MySQL通过后台各种线程.内存池.文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务. ...

  8. spreed&rest

    ES6变化-spreed&rest … 展开&收集运算符: 此运算符在不同地方使用有不同的功效,可以从写和读两个角度考虑. 写:function test (…arg){}; test ...

  9. vs中添加库文件WinMM.Lib

    C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\WinMM.Lib;

  10. Jenkins master slave设置遇到的坑以及解决办法

    写好了selenium测试脚本,本地运行没问题,但是现在流行分布式运行,并行执行以显得高大上. 然而,装高大上是要付出代价的. Selenium Grid 已经完美实现分布式和并行了. 奈何现在会Je ...