- 浏览: 164856 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
zhousheng193:
非常感谢LZ
在JSP页面及servlet的doGet()方法中处理汉字乱码的问题 -
jie523314:
学习下。。。
读取XML文件
在servlet中默认情况下,无论你是get还是post 提交过来 都会经过service()方法来处理,然后转向到doGet 或是doPost方法,可以看HttpServlet 类的service方法: Java代码 1. protected void service(HttpServletRequest req, HttpServletResponse resp) 2. throws ServletException, IOException 3. { 4. String method = req.getMethod(); 5. if(method.equals("GET")) 6. { 7. long lastModified = getLastModified(req); 8. if(lastModified == -1L) 9. { 10. doGet(req, resp); 11. } else 12. { 13. long ifModifiedSince = req.getDateHeader("If-Modified-Since"); 14. if(ifModifiedSince < (lastModified / 1000L) * 1000L) 15. { 16. maybeSetLastModified(resp, lastModified); 17. doGet(req, resp); 18. } else 19. { 20. resp.setStatus(304); 21. } 22. } 23. } else 24. if(method.equals("HEAD")) 25. { 26. long lastModified = getLastModified(req); 27. maybeSetLastModified(resp, lastModified); 28. doHead(req, resp); 29. } else 30. if(method.equals("POST")) 31. doPost(req, resp); 32. else 33. if(method.equals("PUT")) 34. doPut(req, resp); 35. else 36. if(method.equals("DELETE")) 37. doDelete(req, resp); 38. else 39. if(method.equals("OPTIONS")) 40. doOptions(req, resp); 41. else 42. if(method.equals("TRACE")) 43. { 44. doTrace(req, resp); 45. } else 46. { 47. String errMsg = lStrings.getString("http.method_not_implemented"); 48. Object errArgs[] = new Object[1]; 49. errArgs[0] = method; 50. errMsg = MessageFormat.format(errMsg, errArgs); 51. resp.sendError(501, errMsg); 52. } 53. } protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); if(method.equals("GET")) { long lastModified = getLastModified(req); if(lastModified == -1L) { doGet(req, resp); } else { long ifModifiedSince = req.getDateHeader("If-Modified-Since"); if(ifModifiedSince < (lastModified / 1000L) * 1000L) { maybeSetLastModified(resp, lastModified); doGet(req, resp); } else { resp.setStatus(304); } } } else if(method.equals("HEAD")) { long lastModified = getLastModified(req); maybeSetLastModified(resp, lastModified); doHead(req, resp); } else if(method.equals("POST")) doPost(req, resp); else if(method.equals("PUT")) doPut(req, resp); else if(method.equals("DELETE")) doDelete(req, resp); else if(method.equals("OPTIONS")) doOptions(req, resp); else if(method.equals("TRACE")) { doTrace(req, resp); } else { String errMsg = lStrings.getString("http.method_not_implemented"); Object errArgs[] = new Object[1]; errArgs[0] = method; errMsg = MessageFormat.format(errMsg, errArgs); resp.sendError(501, errMsg); } } 从上面可以看出 这里的service是用来转向的,但是如果你在自己的servlet类中覆盖了service方法,比如说你的service是这样的: Java代码 1. public void service(ServletRequest req, ServletResponse res) 2. throws ServletException, IOException { 3. res.getOutputStream().print( 4. "image is <img src='images/downcoin.gif'></img><br>"); 5. } public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { res.getOutputStream().print( "image is <img src='images/downcoin.gif'></img><br>"); } 那么这时service就不是用来转向的,而是用来处理业务的,现在不论你的客户端是用pos还是get来请求此servlet 都会执行service方法也只能执行servlet方法,不会去执行doPost或是doGet方法。 比如说:你的客户端代码是: Java代码 1. <%@page contentType="text/html; charset=utf-8"%> 2. <html> 3. <head><title>选择</title></head> 4. <body> 5. 请选择你喜欢的水果:<br> 6. <form action = "Test" method = "post"> 7. <input type="checkbox" name="fruit" value ="apple" >苹果<br> 8. <input type="checkbox" name="fruit" value ="orange">桔子<br> 9. <input type="checkbox" name="fruit" value ="mango">芒果<br> 10. <input type="submit" value="提交"> 11. </form> 12. </body> 13. </html> 14. 15. 服务端servlet是:Test类 16. 17. import java.io.IOException; 18. 19. import javax.servlet.ServletException; 20. import javax.servlet.ServletOutputStream; 21. import javax.servlet.ServletRequest; 22. import javax.servlet.ServletResponse; 23. import javax.servlet.http.HttpServlet; 24. import javax.servlet.http.HttpServletRequest; 25. import javax.servlet.http.HttpServletResponse; 26. 27. /** 28. * 演示service方法 29. */ 30. public class Test extends HttpServlet { 31. 32. public void service(ServletRequest req, ServletResponse res) 33. throws ServletException, IOException { 34. res.getOutputStream().print("This is the service"); 35. 36. } 37. 38. protected void doGet(HttpServletRequest request, 39. HttpServletResponse response) throws ServletException, IOException { 40. doPost(request,response); 41. 42. } 43. protected void doPost(HttpServletRequest request, 44. HttpServletResponse response) throws ServletException, IOException { 45. ServletOutputStream out=response.getOutputStream(); 46. String[] args=(String[])request.getParameterValues("fruit"); 47. for(int i=0;i<args.length;i++){ 48. out.print(args[i]+"<br>"); 49. } 50. 51. } 52. }
发表评论
文章已被作者锁定,不允许评论。
-
添加过滤器的配置方法
2010-08-23 08:25 765引用方法: 1、写个类实现Filter接口 实现3个方法: p ... -
如何使用fileupload工具来实现文件上传
2010-08-17 14:07 10131。需要两个夹包文件: commons-fileupload- ... -
jsp中a标签?传参,参数怎么获取页面当中文本框的值
2010-08-16 16:50 9502引用<input type="text&quo ... -
个人感觉这个DAO实例写的还可以吧??呵呵
2010-08-14 13:23 751package org.tarena.shopping.d ... -
Session技术的理解
2010-08-12 20:38 817引用3、Session技术 (1)什么是session ... -
cookie如何使用??
2010-08-12 13:53 10142、cookie技术 (1)什么是cookie? 是 ... -
浏览器cookie的学习与测试
2010-08-12 11:24 733生成cookie: package web; imp ... -
学web很容易迷惑的问题
2010-08-11 15:00 599get只有一个流,参数附 ... -
总结response/request/DoGet/DoPost
2010-08-11 14:49 1288引用1.Response [JSP] JSP中的隐藏对 ... -
servlet处理表单的doGet和doPost
2010-08-11 14:37 966service() 是在javax.servlet.S ... -
在JSP页面及servlet的doGet()方法中处理汉字乱码的问题
2010-08-11 14:34 2002在doPost()方法中使用过滤器(所有编码方式为过滤器中设置 ... -
Servlet中doGet与doPost的区别
2010-08-11 14:31 1470Serlvet接口只定义了一个服务方法就是service,而H ... -
Servlet中doGet(),doPost(),service()函数的关系
2010-08-11 14:28 11061,三者之间的关系:doGet()和doPost()是由函数 ... -
对象的产生4种方法
2010-08-10 13:22 660引用 对象的产生到底有多少种方法了: · 直接用new关键字 ... -
servlet课堂笔记
2010-08-09 20:10 775引用 1、servlet的生命周 ... -
如何避免浏览器访问数据库出现乱码问题
2010-08-06 16:09 1054引用 mysql 创建 数据库时指定编码很重要,很多开发者都使 ... -
get/post提交怎么判别如何使用
2010-08-05 19:39 2496引用 get/post方式: get方式: ... -
手动生成servlet的一个实例方法
2010-08-05 17:01 907引用 Servlet 1、什么是S ... -
JSP和asp内置对象
2010-06-26 19:29 872引用JSP内置对象(9个常用的内置对象) 引用JSP共有以下9 ... -
html简介及用法总结
2010-06-26 17:31 1543WWW基本概念 www的全称为World Wide Web,即 ...
相关推荐
Servlet中`doGet`与`doPost`方法的区别是理解和掌握Servlet工作原理的关键,它们分别对应HTTP协议中的GET和POST请求方式,下面将详细阐述这两个方法的特点及其应用场景。 ### 一、`doGet`与`doPost`的基本概念 `...
标题与描述概述的知识点主要集中在GET与POST请求方法的区别,以及它们在Web开发,特别是Java Servlet环境中的应用。为了深入理解和掌握这些知识点,我们可以从以下几个方面进行详细探讨: ### 安全性差异 GET请求...
在本文中,我们将深入探讨Servlet的访问流程、生命周期以及doGet和doPost方法的工作原理。 首先,让我们了解Servlet的访问流程。当用户在浏览器中输入URL并提交请求时,这个请求会被发送到服务器。Tomcat这样的Web...
- **doGet/doPost 方法**:在 `javax.servlet.http.HttpServlet` 类中实现,用于处理 GET 和 POST 请求。 综上所述,选择正确的 HTTP 方法不仅能够提高应用程序的安全性和性能,还能更好地满足不同的业务需求。...
例如,通过doGet()和doPost()方法实现动态网页,使用ServletConfig和ServletContext配置和管理Servlet,利用RequestDispatcher进行页面间的跳转。 总之,Servlet是Java Web开发的基础,理解其生命周期和API对于构建...
Servlet通过`doGet`和`doPost`等方法处理HTTP请求,与JSP配合实现MVC(Model-View-Controller)架构中的Controller角色。 3. Service层:Service层是业务逻辑的实现层,它封装了DAO(Data Access Object)操作,...
在Servlet中实现九九乘法表,开发者通常会创建一个二维数组来存储乘积,并在`doGet()`或`doPost()`方法中生成HTML字符串。这个字符串将包含表格的结构,如`<table>`、`<tr>`、`<td>`等标签,以及每个单元格内的乘积...
2. `service(ServletRequest request, ServletResponse response)`: 处理客户端请求,根据请求类型调用`doGet()`或`doPost()`。 3. `destroy()`: 销毁Servlet,服务器在Servlet不再使用时调用,释放Servlet占用的...
在Web应用的web.xml文件中,可以通过<Servlet>和<Servlet-Mapping>元素配置Servlet。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> ...
1. **Servlet接口**:所有Servlet类必须实现javax.servlet.Servlet接口,该接口定义了Servlet的基本方法,如init()、service()和destroy()。其中,init()用于初始化Servlet,service()处理客户端请求,destroy()则在...
为了代码复用,你可以只实现一个`doGet()`或`doPost()`,并在另一个方法中调用它。 关于Servlet的生命周期,主要有以下几个阶段: 1. 初始化:当Web容器加载Servlet时,会调用`init()`方法。你应该避免覆盖带参数的...
在web应用的web.xml文件中,可以通过`<servlet>`和`<servlet-mapping>`元素来配置Servlet。`<servlet-name>`定义Servlet的别名,`<servlet-class>`指定Servlet类全名,`<url-pattern>`用于映射Servlet处理的URL路径...
- **生命周期**:Servlet具有明确的生命周期,包括初始化(init)、服务(service)和销毁(destroy)三个阶段。 - **请求处理**:Servlet通过覆盖`service`方法来处理客户端请求。对于HTTP请求,通常还需要重写`...
【标题】:使用Servlet实现用户注册 在Web开发中,Servlet是Java EE平台中的一个核心组件,用于扩展服务器的功能,处理HTTP...而“用doget和dopost打印乘法表”是一个练习题,可以帮助巩固对Servlet请求处理的理解。
Servlet是Java Web开发中的核心组件,它用于扩展服务器的功能,处理来自客户端(通常是Web浏览器)的请求,并...在Java+Servlet+API说明文档.pdf中,您将找到更详细的API说明和示例,帮助您深入学习和掌握Servlet技术。
例如,你可以看到service()方法如何根据请求类型分发任务,以及doGet()和doPost()如何处理具体请求。此外,init()和destroy()方法的实现揭示了Servlet如何管理自己的状态和资源。 通过分析源码,我们可以学习到: ...
`service()`方法是Servlet处理请求的核心,它根据请求类型调用适当的doXXX()方法(如`doGet()`、`doPost()`等)来处理HTTP请求。 Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。在Web应用启动时,...
3. 服务:每当有新的请求到达,Servlet容器会调用`service()`方法,根据请求类型选择合适的`doGet()`、`doPost()`等方法来处理请求。 4. 销毁:当Servlet不再需要,或者服务器关闭时,容器会调用`destroy()`方法释放...