关于Servlet
来源:互联网 发布:郭天祥51单片机百度云 编辑:程序博客网 时间:2024/05/01 08:30
1. 符合j2ee标准的web-app的目录结构
WEB-INF
-----classes
-----web.xml
-----lib
2. servlet开发过程
从httpservlet继承,重写doget / doPost方法
部署web.xml
3. servlet声明周期
只有一个对象
第一次请求的时候被初始化,只一遍
初始化后先调用init方法,只一遍
每个请求,调用一遍service->service->doGet/doPost。以多线程的方式运行
尽量不要在servlet中设计成员变量。
卸载前或reload时调用destroy方法
4. 为什么有2个init方法
因为init(ServletConfig servletConfig)方法中有this.servletConfig = servletConfig这样一句话,很多人重写该方法时容易忘写这一句话,HTTPServlet中的成员变量servletConfig为空,导致出现错误。而这个init方法中调用了init()方法,所以init()方法才是供给程序员去重写的方法。
5. /的含义
form
-- form提交中action的路径可以为虚拟路径,
-- 也可以为绝对路径,/代表http://127.0.0.1/
web.xml
---web.xml中url-pattern为webapplication根路径,/代表http://127.0.0.1/Test/
6. 乱码
场合1:页面本身
解决方法:servlet:response.setContentType("text/html;charset=GBK");
JSP:<%@ page contentType="text/html;charset=GBK"%>
注意:一定要写在PrintWriter out = resp.getWriter();之前
场合2:解决get方法乱码
解决方法:在server.xml中connector标签中的添加URIEncoding="GBK"
场合3:解决post方式提交内容的乱码
解决办法:request.setCharacterEncoding("GBK");
注意:一定要写在存取第一个参数之前
不要调用response.setCharacterEncoding("GBK");
场合:<jsp:param name="user" value="<%=s%>"/>,url地址包含中文参数
解决办法:<%request.setCharacterEncoding("GBK");%>
注意:一定要在调用之前
7. Cookie和session的区别
注意cookie有时候禁不掉
Cookie
session
存储在客户端
存储在服务器端
两种类型
l 有声明周期
l 无声明周期
两种实现方式
l 依赖于cookie
l url重写 response.encodeURL(request.getRequestURL().toString());
父路径不能访问子路径的cookie
同一个session的窗口共享一个session
典型应用:
l 3个月不用再登陆
l 购物车(http://www.china-pub.com/)
典型应用:
l 用户登陆
l 购物车也可以用session实现。·
不可靠
可靠
8.Servlet多线程
9. application (ServletContext)的概念
- 关于Servlet
- 关于servlet
- 关于Servlet
- 关于Servlet
- 关于Servlet
- 关于servlet
- 关于Servlet
- 关于servlet
- 关于Servlet
- 关于Servlet
- 关于Servlet中的初始化
- 关于Servlet的生命周期
- 关于servlet线程安全问题
- 关于servlet的几个问题
- 关于Servlet的学习
- 关于JAVA中的servlet
- 关于servlet配置问题。
- 关于Servlet的新发现
- Spring3.1学习笔记之——事务
- 【GLSL教程】(一)图形流水线
- iphone之加速计
- Linux动态库路径设置
- 【GLSL教程】(二)在OpenGL中使用GLSL
- 关于Servlet
- [GLSL教程](三)在OpenGL中向shader传递信息
- DTO(转)
- CodeSmith开发系列资料总结
- Web开发项目简单流程
- 【GLSL教程】(四)shder的简单示例
- Codesmith使用技巧
- love story
- Android - LayoutInflater