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. jtable时间编辑器

    最近在做一个项目,很烦,用的swing,但是不管怎样也还是啃下来了,但是碰到一个问题,要在jtable里编辑时用一个时间选择器,因为走了许多弯路,找到挺多jar包,耗时较久,所以记录一下,便于以后查阅 ...

  2. Django 模本(Template--for--csrf--if--filter--simple_tag模版继承等)

    前提 关于html寻找路线: template 如果在各个APP中存在, Django 会优先找全局template 文件下的html文件,如果全局下的template文件没有相关的html  Dja ...

  3. sql中的不常见查询

    1.对于CROSS APPLY 和 OUTER APPLY 的应用: CROSS APPLY 类似于INNER JOIN 但是,可以规定对于满足条件的数据需要关联几行,应用场景: 每个零件把第一个工单 ...

  4. 如何在Chrome中导入和导出密码

    如果想让 Chrome 支持密码导入和导出,需要先在地址栏中执行  chrome://flags/#password-import-export  将该功能启用并重启浏览器才能生效. 浏览器重启完成后 ...

  5. R数据导入导出(一): read.table()和read.csv()的区别

    之前也参考过一些资料,虽然是这么简单的两个buildin,还是仔细对比了一下,我有两张txt,都是从cube中导出的,就意味着每一列的列数是不一样的.R语言官方文档中有这样一句话不知道大家注意到了没有 ...

  6. linux 之 shell

    echo 输出命令 语法:echo [选项][输出内容] 选项 -e:支持反斜线控制的字符转换 范例 vi hello.sh #!/bin/bash #author liuch echo " ...

  7. windows下consul利用json文件注册服务

    windows下,以开发模式启动consul命令 consul agent -dev -config-dir=D:\tools\consul 人工注册服务,新建一个json文件 ,放到D:\tools ...

  8. wkhtmltopdf 转pdf时元素被页面切割开

    1. <style> * { page-break-inside: avoid; page-break-after: avoid; page-break-before: avoid; } ...

  9. 用js实现一个简单的mvvm

    这里利用的object.defineproperty() 方法; <input     id='input'><p id='p'><p/>js: const dat ...

  10. C# 自制报表组件 EzReportBuild 2.5

    就写到这里,不玩这个了,game over. 2.0版本添加了多报表页嵌套功能,每份报表可设置多页,每页可设置不同的纸张大小.数据表.页面规则等,并可对报表页次序即时调整,同时,优化了显示,报表显示更 ...