注:service方法 根据用户提交HTTP请求的方式,如果为get方式,则service方法调用servlet实现的doGet方法来为用户服务。如果为post方式,则service方法调用实现HTTPServlet类的doPost方法为用户提供服务。换言之,doGet或doPost方法才是真正处理用户请求的响应者。
由于在实际编程中,通常对这两种方式的处理相同,因此可以选择在doGetf方法中doPost方法。
7.实现HttpServlet类的servlet的代码示例
8.servlet中可以使用的对象
servlet可以直接使用的对象只有HttpServletRequest类型的request对象和HttpServletResponse类型的response对象。其他的对象(比如,向客户端输出内容的out对象和维持会话的session对象)都需要通过这两个对象方法来获得。
9..小结
当客户端第一次请求servlet时,servlet被加载到内存,容器会创建servlet实例,并调用它的init方法进行初始化工作;容器创建请求对象和响应对象,然后调用servlet的service方法为客户端提供服务。;当servlet不再被需要的时候,容器调用servlet的destroy方法将servlet实例销毁;如果客户端请求的servlet已经存在于服务器内存时,容器会创建新的线程调用service方法来响应客户端请求;在servlet的整个生命周期中init方法和destroy方法只会被调用一次。
默认当前servlet第一次被访问时执行初始化操作
web.xml中当前servlet的配置中设置初始化时间
<load-on-startup>0</load-on-startup>
当配置参数小于0则为默认状态,在第一次访问初始化
当配置参数大于等于0则在服务器启动时初始化
当浏览器请求当前servlet时执行运行阶段
当服务器关闭时调用销毁阶段
Servlet访问
可以使用TCP/IP monitor插件测试(例如MyEclipse,window->show view ->MyEclipse Common->Tcp/Ip monitor)。
1.浏览器地址栏
:8899/工程webURL/对应servlet
2.超链接访问
<a href=":8899/hello129/tld" target="_self">点击这里</a>
3.表单访问 action=""
<form action=":8899/hello129/tld"
Servlet接收页面参数
页面中参数以key=value的方式发送
service方法中
String value = request.getParameter("key");
String[] values = request.getParameterValues("key");
中文乱码问题
接收中文参数乱码
1.以get方式提交参数乱码
在server.xml中 service---catalina添加一个属性 URIEncoding="utf-8"
2.以post方式提交参数乱码
在接收参数前设置request对象的编码方式request.setCharacterEncoding("utf-8");
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-36808-6.html
虽远必诛
醒醒酒吧