tomcat启动后,post请求方法都正常,但是get请求方法提交后报405?

tomcat启动后,post请求方法都正常,但是get请求方法提交后报405?

servletcharset

package com.imooc.servlet.charset;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ServletCharset
 */
@WebServlet("/charset/process")
public class ServletCharset extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServletCharset() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String name = request.getParameter("ename");
		String address = request.getParameter("address");
		System.out.println(name+":"+address);
		response.getWriter().println("<h1>"+name+":"+address+"</h1>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
//	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//		request.setCharacterEncoding("UTF-8");
//		String name = request.getParameter("ename");
//		String address = request.getParameter("address");
//		System.out.println(name+":"+address);
//		response.setContentType("text/html;charset=utf-8");
//		response.getWriter().println("<h1>"+name+":"+address+"</h1>");
////		name = new String(name.getBytes("iso-8859-1"),"utf-8");
////		address = new String(address.getBytes("iso-8859-1"),"utf-8");
//	}

}

charset_form.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/FirstServlet/charset/process">
		姓名:<input name="ename">
		地址:<input name="address">
		<input type="submit" value="提交">
	</form>
</body>
</html>

http://img1.sycdn.imooc.com//climg/5c6d7e8a0001fa3307190224.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,我运行你的代码,如果form表单中不指定method的提交方式,默认是以get方式提交的,这时执行Servlet的doGet方法是正确的;

如果指定form表单的提交方式是post,即

<form action="/111wenda/charset/process" method="post">

那么在Servlet中就需要执行doPost方法。

建议同学根据上面的思路运行代码试一下。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10204    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师