J2EE-6 编码

编码方式:

Ascii码:
七字节编码 128

GBK
汉字:两个字节

ucs编码:
一个字符占用四个字符,第一个比特位是0

utf-8:
定义了字节序
汉字的编码长度是3个字节

unicode:
没有规定字节序
需要加两个字节用来指定字节序
两个字节
java程序的编码方式是unicode


查询字符串

url转码:
早期的http协议不允许出现非ascii码的字符
所以用utf8编码转换

将内存中的一个字节拆分成两个部分 4个比特位
用0-15 十六进制 0 - F表示,编码方式 加到url的问号之后



浏览器使用get方式提交数据的解码方式:

    tomcat7以下
    对于url的查询字符串的解码方式:
    ISO8859-1:用ascii码
    
    tomcat8以上:
    使用utf-8解码:

网站全程使用utf-8编码

在tomcat的server.xml文件

修改

URLEncoding = "GBK"

修改配置文件之后,要在eclipse中重新建立服务器
否则配置文件不会重新加载

将字节数字转换成字符串

byte[] buffer = new byte[4];
String s = new String(buffer,"GBK");
字符串的构造函数,用buffer 的码值进行编码

"将错就错"
String username = request.getParameter("userName");
username = new String(username.getBytes("UTF-8"),"GBK");
这种方式不好,转码工程中可能出现没有对应的编码字符方式,造成错误
导致程序不可靠

过滤器Filter

public class MyFilter extends HttpFilter{
	public void doFilter(
		ServletRequest request,
		ServletResponse response,
		FilterChain chain) throws Servlet{


	}
}

web.xml 的配置


只拦截服务器转发的请求

<filter-mapping>
	<filter-name>f1</filter-name>
	<servlet-name>s1</servlet-name>
	<dispatcher> FORWARD</dispatcher>
</filter-mapping>

只拦截客户端的request请求
<filter-mapping>
	<filter-name>f1</filter-name>
	<servlet-name>s1</servlet-name>
	<dispatcher>REQUEST</dispatcher>
</filter-mapping>

多个过滤器都满足条件时,按照filter的出现顺序来执行


Listener

一切事件类的根类是EventObject

java.util.EventObject

	Object.getSource();
	
在event类中只有get函数 基本没有set

J2EE的事件类

ServletContextEvent

一个Servlet对应一个ServletContext,

应用程序的初始化函数
contextInitialized(ServletContextEvent e)

HttpSessionEvent
HttpSession:Listener
类似


HttpSessionBingdingEvent
HttpSessionBingdingListener
session 的setAttribute被绑定的时候被创建


listener的部署:
<listener>
	<listener-class>MyListener</listener-class>
</listener>

URLDecode类
URLEncode类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值