Servlet的Service方法和doget 和 dopost方法的区别,常见的错误解析

package com.sxt.in;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Service方法和doget 和 dopost方法的区别:
 * doget:
 * 处理get请求方式
 * dopost:
 * 处理post请求方式
 *
 * Service:
 * 优先处理,
 *
 * 注意:
 * 			如果在覆写的service方法中调用了父类的service方法(super.service(arg0, arg1);
 * 			则在service方法处理完成时会在次根据请求方式调用doget和dopost方法
 * 			一般我们不在覆写service中调用父类的方法,避免出现405错误。
 * Servlet的常见错误
 * 			404错误:资源未找到
 * 				原因一:在请求地址中的servlet别名书写错误
 * 				原因二:虚拟项目名称书写错误
 * 			500错误: 内部服务器错误
 * 				错误一	 <servlet-class>com.sxt.in.ServletMthod</servlet-class>
 * 					解决
 * 						在web.xml中校检servlet类的全限路径是否拼写 错误.
 * 				错误二
 * 					因为service方法体中的代码执行错误
 *
 * 					解决:根据错误提示对代码进行更改
 * 			405错误:请求方式不支持
 * 				原因:
 * 					请求方式和service中的方法不匹配所造成的的
 * 				解决:
 * 					尽量使用service方法处理请求,并且在service方法中不要调用父类的service方法
 * @author Administrator
 *	Ctrl+F   查找别名
 */
public class ServletMethod extends HttpServlet {
//	@Override
//	protected void service(HttpServletRequest req, HttpServletResponse resp)
//			throws ServletException, IOException {
//		System.out.println("我是service");
//
//	}
	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.service(arg0, arg1);
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println("我说dogetservice");
	}
	@Override
		protected void doPost(HttpServletRequest req, HttpServletResponse resp)
				throws ServletException, IOException {
		System.out.println("我是dopost方法");
	}

}

  ServeletMethod.java以上

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ‘MethodJsp.jsp‘ starting page</title>

	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>

  <body>

   <form action="method" method="get">
   	用户名:<input type="text" name="uname" value=""><br />
  	密码:<input type="password" name="pwd" value=""><br />
  	<input type="submit" value="登录">

   </form>
  </body>
</html>

  

  jsp

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>servletlife</servlet-name>
    <servlet-class>com.sxt.in.servletlife</servlet-class>
    <load-on-startup>1</load-on-startup><!-- 加载服务器启动流 其中的数字1表示项目的加载顺序-->
  </servlet>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>ServletMethod</servlet-name>
    <servlet-class>com.sxt.in.ServletMethod</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>servletlife</servlet-name>
    <url-pattern>/life</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ServletMethod</servlet-name>
    <url-pattern>/method</url-pattern>
  </servlet-mapping>

</web-app>

  xml代码

原文地址:https://www.cnblogs.com/dream2060/p/10925437.html

时间: 2024-10-15 12:05:18

Servlet的Service方法和doget 和 dopost方法的区别,常见的错误解析的相关文章

Servlet的doGet与doPost方法的区别与使用

Servlet的doGet与doPost方法的区别与使用 2016年07月07日 13:05:13 阅读数:10222 一,区别 在使用表单提交数据到服务器的时候有两张方式可共选择,一个是post一个是get.可在<form>中的method属性中指定提交的方式.如:<form action="inputForm"method="get">,如果不指定method属性,则会默认该属性为"get"方式. Get和post都能

Android - Context中的getText(int resId)方法和getString(int resId)方法的区别

Android开发中,经常在Activity中使用getText(int resId)和getString(int resId)这两个方法,那么这两个方法有什么区别和联系呢? 这两个方法的参数都是资源ID,区别在于getText(int resId)返回的是一个CharSequence,而getString(int resId)返回的是一个String.源代码如下: getText(int resId): /** * Return a localized, styled CharSequence

service方法、doGet方法、doPost方法的区别和一些常见错误 Servlet的生命周期

1.Service方法和doGet方法和doPost方法的区别 * Service方法:  可以处理get/post方式的请求,如果servlet中有Service方法,会优先调用service方法对请求进行处理. * doGet方法:  处理get方式的请求 如果没有重写此方法,会调用父类,父类会返回405错误 * doPost方法:  处理post方式的请求 如果没有重写此方法,会调用父类,父类会返回405错误 * 注意: * 如果在覆写的service方法中调用了父类的service方法(

转: servlet中的service, doGet, doPost方法的区别和联系

大家都知道在javax.servlet.Servlet接口中只有init, service, destroy方法 但是我们在继承HttpServlet的时候为何一般重写doGet和doPost方法呢 下面我们看一下Servlet源代码: 注意: JDK只是定义了servlet接口,而实现servlet接口的比如tomcat, jboss等服务器 下面我们找到tomcat源代码, 可以到官网下载, 目前最新版本是7.0.53 找到javax.servlet.http.HttpServlet类, 下

Jsp 和 servlet中Get方法和Post方法的区别

看了很久的javaEE 这里是我一直的困惑,我在这里总结一下. 1:请求数据的大小不同. 因为get请求的数据是要追加到URL中,而URL的数据量一般不能超过2K,所以用get请求的方法对数据的大小有限制.而post请求方法是把数据放在消息体中,所以理论上对数据量没有限制.(但是实际操作中也不能能太大) 2:安全性不一样 因为get请求的数据是追加在URL中,外部用户能很方便的看到,从这个角度上来讲不安全.而post方法因为是讲请求放在消息体中,不会直接在URL中显示所以从这个角度来说数据会比较

Servlet之doGet()和doPost()方法区别和联系【入门版,初学者必看】

Servlet 中 重写的doGet(),doPost()方法,分别代表get请求和post请求 其实不管get请求,还是post请求,处理方式类似 所以一般习惯在doGet()中调用一下doPost ()或者 在doPost()里面调用doGet() 版权声明:本文为博主原创文章,未经博主允许不得转载.

jQuery.extend()方法和jQuery.fn.extend()方法

jQuery.extend()方法和jQuery.fn.extend()方法源码分析 这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例,对于基本用法举几个例子: html代码如下: <!doctype html> <html> <head> <title></title> <script src='jquery-1.7.1.js'></script> <

在servlet中出现service()、doGet()和doPost()方法时的执行问题

在建立一个继承了HttpServlet类并重写了该类的service().doPost()和doGet()方法时,java会如何执行?其实若是该三个方法都在存在的情况下,java只会执行service()方法,而其他的两种方法不会被执行.若是没有service() 方法,则是根据jsp传入方式选择对应的方法.比如说,若是jsp是以Post方式传入数据,则是调用doPost()方法处理数据.但是一般上在建立一个继承HttpServlet类时都会重写doPost()和doGet()方法,而且会在其中

Servlet之二 —— HttpServlet的doGet()和doPost()

我们都知道,Servlet程序在Servlet接口中定义了init(),service(),destroy()的方法名称,但是并没有具体实现这些方法. 接着,它在javax.servlet.GenericServlet类中实现了service()方法.而javax.servlet.http.HttpServlet是GenericServlet的子类,所以在HttpServlet中也实现了service()方法,而且,在HttpServlet中还实现了doGet(),doPost(),doOpti