浅谈servlet
---------关于servlet中的乱码问题-----------------
解决POST乱码问题,因为POST是在请求体中可以获取数据,所以解决对应的POST用request,setCharaterEncoding("UTF-8");
解决GET乱码问题,因为GET是在请求行上发送数据,所以解决对应的GET设置tomcat安装目录中的conf下server.xml文件中connector这段话加个URIEncoding="UTF-8"
万能解决POST和GET问题,这个方法不常用:
String username=request.getParameter("username");//这里的username是在html的表单中获取的用户名
username.get(bytes,"");
bytes[] byte=new bytes[];
????万能的需要学习下
设置浏览器的编码方式用request.setContextType("text/html;charset=UTF-8");
将浏览器和worksapce以及设置都统一为UTF-8
-------关于servlet线程安全问题----------------------
servlet属于单例多线程环境
其中哪些有线程安全问题?
1.多线程环境
2.有共享数据
3.共享数据中有修改操作
对于servlet中的:
1.可以使用局部变量不使用实例变量
2.必须使用实例变量,可以将单例变多例
3.必须使用实例变量和单例,用synchronize机制 synchronize(this){//将代码放到这里}这里并不是很好的同步解决安全的方法
-----------转发和重定向---------------------
其中转发和重定向的区别:
1.转发是一次请求,重定向式2次请求
2.转发是项目之间的资源跳转,重定向式可以跨项目的资源跳转
3.转发是用户点击超链接之后还是那个地址,重定向用户点击超链接之前的链接和点击之后的链接不一样
4.转发可以获取到setAttribute中getAttribute数据,而重定向是获取为空
5.转发是request.getRequestDispacther("/跳转的路径地址").forward("request,response");
6.重定向是response.sendDirect("/路径");
-----其中对于断点------
断点问题:位置不同 则结果不同