- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
jsp常问⾯试题集
1.Servlet总结
在Java Web程序中,Servlet主要负责接收⽤户请求 HttpServletRequest ,在 doGet() , doPost() 中做相应的处理,并将回
应 HttpServletResponse 反馈给⽤户。Servlet 可以设置初始化参数,供Servlet内部使⽤。⼀个Servlet类只会有⼀个实例,在它初始化时
调⽤ init() ⽅法,销毁时调⽤ destroy() ⽅法。Servlet需要在web.xml 中配置,⼀个Servlet可以设置多个URL访问。Servlet不是线程安
全,因此要谨慎使⽤类变量。
2.Servlet接⼝
Servlet接⼝定义了5个⽅法,其中前三个⽅法与Servlet⽣命周期相关:
void init(ServletConfig config) throws ServletException
void service(ServletRequest req, ServletResponse resp) throws ServletException, java.io.IOException
void destory()
java.lang.String getServletInfo()
ServletConfig getServletConfig()
3.Servlet⽣命周期
⽣命周期: Web容器加载Servlet并将其实例化后,Servlet⽣命周期开始,容器运⾏其init()⽅法进⾏Servlet的初始化;请求到达时调⽤
Servlet的service()⽅法,service()⽅法会根据需要调⽤与请求对应的doGet或doPost等⽅法;当服务器关闭或项⽬被卸载时服务器会将
Servlet实例销毁,此时会调⽤Servlet的destroy()⽅法。init⽅法和destroy⽅法只会执⾏⼀次,service⽅法客户端每次请求Servlet都会执⾏。
Servlet中有时会⽤到⼀些需要初始化与销毁的资源,因此可以把初始化资源的代码放⼊init⽅法中,销毁资源的代码放⼊destroy⽅法中,这
样就不需要每次处理客户端的请求都要初始化与销毁资源。
4.get与post请求
①get请求⽤来从服务器上获得资源,⽽post是⽤来向服务器提交数据;
②get将表单中数据按照name=value的形式,添加到action 所指向的URL 后⾯,并且两者使⽤?连接,⽽各个变量之间使⽤连接;post
是将表单中的数据放在HTTP协议的请求头或消息体中,传递到action所指向URL;
③get传输的数据要受到URL长度限制(最⼤长度是 2048 个字符);⽽post可以传输⼤量的数据,上传⽂件通常要使⽤post⽅式;
④使⽤get时参数会显⽰在地址栏上,如果这些数据不是敏感数据,那么可以使⽤get ;对于敏感数据还是应⽤使⽤post;
5.转发(forward)与重定向(redirect)
转发是服务器⾏为,重定向是客户端⾏为。
转发(Forward)
通过RequestDispatcher对象的forward (HttpServletRequest request,HttpServletResponse response)⽅法实现的。RequestDispatcher可
以通过HttpServletRequest 的getRequestDispatcher()⽅法获得。例如下⾯的代码就是跳转到login_success.jsp页⾯。
request.getRequestDispatcher(login_success.jsp).forward(request, response);
重定向(Redirect)是利⽤服务器返回的状态码来实现的。客户端浏览器请求服务器的时候,服务器会返回⼀个状态码。服务器通过
HttpServletResponse 的 setStatus(int status) ⽅法设置状态码。如果服务器返回301或者302,则浏览器会到新的⽹址重新请求该资
源。
从地址栏显⽰来说
forward是服务器请求资源,服务器直接访问⽬标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知
道服务器发送的内容从哪⾥来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送⼀个状态码,告诉浏览器重新去请求那个地址.所以地址栏显⽰的是新的URL.
文档评论(0)