servlet 的一些知识点

web.xml的<url-patern> 全路径模式比较

 /* 拦截全部url的资源

/ 只拦截静态页面

* 无法同时加前缀后缀

url-patern 匹配原则 如果多个可以匹配,则“精确匹配” 先于“长路径(比较精确路径)匹配”先于 “路径匹配”先于 “后缀名匹配”


Servlet包的GenericServlet.class

1 使用“适配器模式”减少代码量:写一个虚类,实现原接口不常用方法和比较固定的方法,添加一些子类可能常用的方法,不实现关键方法(service()),让继承的子类实现减少实现要写的代码,

2 构造器先于init()加载,要注意可能要出现的空指针异常

3 使用“模板方法模式”减少子类重写时init时被覆盖掉关键语句


Servlet包的HttpServlet.class

添加一下判断的GenericServlet.class


 前端到后端汉字编码问题(tomcat9以下版本)

原因:因为tomcat的编码默认IOS-8859-1

1 post如下:

在后端代码中将请求体编码设置为UTF-8

Request.setCharacterEncoding("UTF-8");

2 get如下:

在tomcat的server.xml 的<connector>头里添加 URIEncoding=“UTF-8”

<connector URIEncoding=“UTF-8>

要重启

3 get post 都有效

先将ISO8859-1解码成byte

再将byte编码为UTF-8

byte[] bytes=要转的字符串.getBytes("ISO8859-1");
要转的字符串 = new String(bytes,"UTF-8");
要转的字符串 = new String(要转的字符串.getBytes("ISO8859-1"),"UTF-8");

响应的PrintWriter流

不用关闭,

响应结束后标准输入流也销毁,所以不用手动close




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值