当前位置: 代码迷 >> 综合 >> servlet doGet()与doPost()使用
  详细解决方案

servlet doGet()与doPost()使用

热度:89   发布时间:2023-12-23 18:07:34.0

servlet doGet()与doPost()使用

一、配置web.xml
<web-app></web-app>间增加Servlet配置项:[注意大小写,有区别的]

    <servlet><servlet-name>Servlet01</servlet-name><servlet-class>com.ltg.Servlet01</servlet-class></servlet><servlet-mapping><servlet-name>Servlet01</servlet-name><url-pattern>/Servlet01</url-pattern></servlet-mapping>

二,使用:
参考:index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登录</title>
</head>
<body>
<h3 align="center">登录</h3>
<hr>
<form action="Servlet01" method="post"><div align="center">用户名:<input type="text" name="username"/><br>口令字:<input type="password" name="password"/><br><input type="submit" /></div>
</form>
</body>
</html>

重点注意该文件中的 method=“post” ,对应的Servlet为2种编写方式:
示例1.

package com.xxx;import jakarta.servlet.*;  //是jakarta... 因为我安装的Tomcat10, javax....对应的应该是Tomcat9以下版本
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;@WebServlet(name = "Servlet01", value = "/Servlet01")
public class Servlet01 extends HttpServlet {
    @Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//向服务器发送请求获取到参数String username=request.getParameter("username");String password=request.getParameter("password");response.setHeader("Content-Type", "text/html; charset=UTF-8");Writer out=response.getWriter();out.write("用户名:"+username+"<br>");out.write("口令字:"+password);out.flush();out.close();}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request,response);}
}

示例2.

package com.xxx;import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;@WebServlet(name = "Servlet01", value = "/Servlet01")
public class Servlet01 extends HttpServlet {
    @Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//向服务器发送请求获取到参数String username=request.getParameter("username");String password=request.getParameter("password");response.setHeader("Content-Type", "text/html; charset=UTF-8");Writer out=response.getWriter();out.write("用户名:"+username+"<br>");out.write("口令字:"+password);out.flush();out.close(); }
}

在这里插入图片描述

若将 method=“post” 改为 method=“get”,则对应的 Servlet为:
示例3: [不推荐,输入信息会在浏览器地址栏明文显示了]

package com.xxx;import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;@WebServlet(name = "Servlet01", value = "/Servlet01")
public class Servlet01 extends HttpServlet {
    @Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//向服务器发送请求获取到参数String username=request.getParameter("username");String password=request.getParameter("password");response.setHeader("Content-Type", "text/html; charset=UTF-8");Writer out=response.getWriter();out.write("用户名:"+username+"<br>");out.write("口令字:"+password);out.flush();out.close();}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}

在这里插入图片描述

  相关解决方案