在Java servlet的service方法中doGet方法和doPost方法是不是一旦遇到servlet的service方法中的post请求或者get请求,调用的都是这两

Servlet doGet方法 doPost方法 service方法 | 基于实例代码分步讲解 一站式学习Java | how2j.cn
Servlet 需要提供对应的doGet() 与 doPost()方法
当浏览器使用get方式提交数据的时候,servlet需要提供doGet()方法哪些是get方式呢?form默认的提交方式如果通过一个超链访问某个地址如果在地址栏直接输入某个地址ajax指定使用get方式的时候
import java.io.IOE
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
import java.io.IOE
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
当浏览器使用post方式提交数据的时候,servlet需要提供doPost()方法哪些是post方式呢?在form上显示设置 method=&post&的时候ajax指定post方式的时候
import java.io.IOE
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
import java.io.IOE
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
LoginServlet继承了HttpServlet,同时也继承了一个方法 service(HttpServletRequest , HttpServletResponse )实际上,在执行doGet()或者doPost()之前,都会先执行service()由service()方法进行判断,到底该调用doGet()还是doPost()可以发现,service(), doGet(), doPost() 三种方式的参数列表都是一样的。所以,有时候也会直接重写service()方法,在其中提供相应的服务,就不用区分到底是get还是post了。比如把前面的登录的LoginServlet,改为提供service方法,也可以达到相同的效果
import java.io.IOE
import java.io.PrintW
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
public class LoginServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter(&name&);
String password = request.getParameter(&password&);
String html =
if (&admin&.equals(name) && &123&.equals(password))
html = &&div style='color:green'&success&/div&&;
html = &&div style='color:red'&fail&/div&&;
PrintWriter pw = response.getWriter();
pw.println(html);
把你的代码复制到下面区域。 如果在线比较不好用,请使用客户端比较软件:
代码高亮插件双击即可选中,不过部分同学反应,通过代码高亮插件复制的代码无法在IDEA里正常显示,这里提供TEXTAREA的方式,方便复制,谢谢
根据练习目标尽量自己实现代码效果,期间会碰到疑问,难题,和自己不懂的地方,这些都是必要的过程
完成过程中,碰到无法解决的问题,带着疑问,查看答案,分析答案的解决思路
依然有不明白的地方,点开视频讲解,带着疑问,听视频讲解有问题的部分
理解后,再从头做一遍,把有疑问的地方都捋清楚
最后再总结一遍,总结思路,总结解决办法,以后遇到类似的问题,怎么处理
把这时的想法,思路,研究都记录下来,等全部学完了,再回过头来巩固和理解,学习效果就会很好,知识点掌握得也牢固.
HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
DragonDove
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
提问之前请
喜迎暑假,一半时间世界杯,一半时间学习提高,全场五折,优惠码:WORLDCUP
可用于全站通
有效期6.25-6.27javaWeb中,继承了httpservlet类,是不是一定要重写doGet或doPost方法_百度知道
javaWeb中,继承了httpservlet类,是不是一定要重写doGet或doPost方法
如果没有重写这两个方法,servlet是怎么处理表单请求的 ,表单默认是post提交。
我有更好的答案
继承了httpservlet必须实现doGet或doPost方法
我在看网上的视频教程,老师写了一个BaseServlet继承了httpservlet,重写了service方法,又写了一个servlet继承了BaseServlet,这个servlet中并没有重写doget和dopost方法,但他处理了表单提交的数据
为您推荐:
其他类似问题
httpservlet的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Java Servlet简介 – SUPINFO中国校区技术博客
Java Servlet简介
Rate this post
Servlet是用java编写的server端程序,它运行于服务器之上可以访问服务器上的资源,其主要功能在于交互式浏览和修改数据,生成动态web内容。
Servlet生命周期如下:
(1)通过调用 init () 方法进行初始化。
(2)调用 service() 方法来处理客户端的请求。
(3)通过调用 destroy() 方法终止
(4)最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
其中,init()仅在第一次创建servlet时被调用。service() 方法用来处理来自客户端的请求,并把格式化的响应写回给客户端。每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。destroy() 方法在 Servlet 生命周期结束时被调用
HttpGet请求的主要目的是获取指定URL的内容。内容一般是HTML文档或图像。HttpServlet定义doGet()方法来响应客户的GET请求。其过程为当请求到达服务器时,调用HTTPServlet类中的service方法确定请求的类型是GET,POST,DELETE还是PUT等。若为GET请求,则调用doGet方法进行处理。doGet()函数有两个参数,即HttpServletRequest对象和HttpServletResponse对象。其中HttpServletRequest对象代表了客户的请求,HttpServletResponse对象代表了服务器的响应。
HttpPOST请求一般用于向服务器发送用户填好的HTML表单中的信息。doPost()也有HttpServletRequest对象和HttpServletResponse对象作为两个参数。
下面给出使用servlet响应一个HTTP GET的实例:
Java文件如下:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void init() throws ServletException
// 执行必需的初始化
message = “Hello World”;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
out.println(“”);
out.println(“servlet”);
out.println(“”);
out.println(”
out.println(“”);
Html文件如下:
请单击下方按钮测试程序
显示的效果是在网页一点击写着测试的按钮,出现网页二,网页二显示Welcome.在Servlet的服务器类方法(比如doGet)中有两个参数HttpServletRequest和HttpServletResponse,分别是谁调用?
按时间排序
前者和后者是内置对象,一个代表请求,一个代表响应,HTTP协议基于请求与响应的。请求一个网站,在网站中点击某一个按钮等,都算请求,服务器想要知道请求的是什么,通过前者这个对象可以获取数据,然后通过后者对象响应客户端,比如返回数据等。前者和后者代表你说的那两个对象,如果敲代码不让提交答案。
请求对象使用者包括请求者(浏览器-多为这样或者说真正的远程请求者);服务器,编写处理程序的程序员。请求对象创建后将封装用户的诸多请求参数,在服务器端的内存中存储此对象,首先由web服务器调用,在doGet
doPost方法中有程序员手动编码使用,但是这并非是真正意义上的认为调用,最终还是有服务器来处理,对于响应对象有服务器最终调用并返回给客户处理结果,这个对象客户端无法真正具体应用,可以说对于客户是只读的...个人看法
sun的jdk中并没有包含servlet源代码,也就是你关联了jdk中的src后还是不能够查看servlet的源代码的。servlet是在tomcat有实现的,所以我们只要下载tomcat的源码就可以查看servlet的源码了。下面是步骤:1.
进入tomcat官方的下载tomcat源码,一般对应你的版本,例如我的版本是tomcat 6.X,那么我现在tomcat 6.x的src包下载.2.
进入官网下载自己配套的src源码3.
进入到你自己写的servlet的程序代码中4.
按住crtl, 然后用鼠标点击servlet的类的方法,关联下那个源代码就可以了。那个源代码就是你下的那个tomcat源码
找 .class 文件,jad反编译
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:Servlet 教程
Servlet 生命周期
Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
Servlet 通过调用 init () 方法进行初始化。
Servlet 调用 service() 方法来处理客户端的请求。
Servlet 通过调用 destroy() 方法终止(结束)。
最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
现在让我们详细讨论生命周期的方法。
init() 方法
init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,就像 Applet 的 init 方法一样。
Servlet 创建于用户第一次调用对应于该 Servlet 的 URL 时,但是您也可以指定 Servlet 在服务器第一次启动时被加载。
当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。
init 方法的定义如下:
public void init() throws ServletException {
// 初始化代码...
service() 方法
service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。
每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。
下面是该方法的特征:
public void service(ServletRequest request,
ServletResponse response)
throws ServletException, IOException{
service() 方法由容器调用,service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。所以,您不用对 service() 方法做任何动作,您只需要根据来自客户端的请求类型来重写 doGet() 或 doPost() 即可。
doGet() 和 doPost() 方法是每次服务请求中最常用的方法。下面是这两种方法的特征。
doGet() 方法
GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
doPost() 方法
POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
destroy() 方法
destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。
在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。destroy 方法定义如下所示:
public void destroy() {
// 终止化代码...
下图显示了一个典型的 Servlet 生命周期方案。
第一个到达服务器的 HTTP 请求被委派到 Servlet 容器。
Servlet 容器在调用 service() 方法之前加载 Servlet。
然后 Servlet 容器处理由多个线程产生的多个请求,每个线程执行一个单一的 Servlet 实例的 service() 方法。
感谢您的支持,我会继续努力的!
扫码打赏,你说多少就多少
记住登录状态
重复输入密码

我要回帖

更多关于 servlet service方法 的文章

 

随机推荐