Servlet中doGet()和doPost()
从请求中得到参数Q?/p>
q回多个值的参数Q?/p>
除了参数q能从request对象中得刎ͼ
1.客户的^台和览器信?/p>
2.与请求相关的cookie
3.与客L关的会话
4.h的HTTPҎ
5.h的输入流
其他常用ҎQ?br />
response.getWriter();
response.setContentType();
上一个方法是讄q回的MIMEcdQ常见的MIMEcd有:text/html,application/pdf,video/quicktime,image/jpeg
输出Q?br />
ServletOutputStream用于输出字节Q可写Q何内容)
out.write(aByteArray);
PrintWriter用于输出字符(专门用于处理字符数据Q?br />
out.println(string);
讄相应首部Q?br />
response.setHeader("foo","bar");
response.setIntHeader("foo",20);
增加相应首部Q?br />
response.addHeader("foo","bar");
Servlet重定?/strong>Qresponse.sendRedirect("http://www.sina.com.cn");
不能在写到相应之后再调用sendRedirect(),否则会抛出IllegalStateException异常。即在Servlet中,要么处理hQ要么调用sendRedirect()?#8220;别h”处理?/p>
关于相对URL
若访问者键入的url地址是:http://www.aygfsteel.com/codingliyi/app.doQ在Servlet中执行sendRedirect("files/download.html")Q浏览器的地址栏将跌{到http://www.aygfsteel.com/codingliyi/files/download.html面Q如果在Servlet中执行sendRedirect("/files/download.html")Q浏览器的地址栏将跌{到http://www.aygfsteel.com/files/download.html面。(注意“file/download.html”?strong>有无斜杠的区别)
重定向和h分派的的区别
重定向是客户来完成工作,h分派是要求服务器的某某来完成d?/p>
最q从图书馆找C本《Head First Servlets & JSP?当是对Servletq行一下复习?br />
web.xml配置
用于URL映射的两个部|描q文Ӟ
<servlet> 用内部名映射到完全限定类?br />
<servlet-mapping> 把内部名映射到公共URL?br />
eg:
单MVC架构程Q?/strong>
1.览器把h数据发送到|络Q?br />
2.容器ҎURL扑ֈ正确的ServletQ控制器Q;q把h传递给q个Servlet;
3.Servlet调用一?#8220;专家”c(模型Q寻求其“帮助”Q?br />
4.q个“专家”c返回一?#8220;回答”QServlet把这个回{增加到requset对象Q?br />
5.Servlet把请求{发给JSPQ视图)Q?br />
6.JSP从request对象得到“回答”Q?br />
7.JSPҎ“回答”为容器生成一个页面;
8.容器把页面返回给用户?br />
Servlet把回{增加到request对象Q?/strong>
Servlet受容器控?/strong>
q程Q?br />
1.加蝲Servletc;
2.实例化Servlet(构造函数执?Q?br />
3.执行init()Q?/在Servlet一生中只调用一ơ,在调用serviceQ)之前完成Q?br />
4.执行service(),调用Servlet对象的doGet(),doPost(){方法;
5.执行destroy();
Tips:
在有初始化代码的情况下,可能覆盖init()ҎQ例如需得到一个数据库q接Q或向其他对象注册;
不应该覆盖service()ҎQ只需覆盖doGet()、doPost(){方法;
CQ容器运行多个线E来处理一个Servlet的多个请求?/p>