JavaWeb(Servlet编程)第二章

一,doGet()方法和doPost()方法的使用

对于之前的doGet()方法和doPost()方法,我给大家分享一个我的记忆方法,在Servlet类当中我们要重写这些方法但是在重写的时候会不知道重写哪个方法,我的理解是如果没有参数的传递也就是在前后端之间没有使用form表格或者传递参数,那么就使用doGet()方法,如果涉及到参数的接收,也就是使用form表单把数据从前端页面传递到后端数据中涉及到参数的接收传递,那么我们就要在后端Servlet类中重写doPost()方法。

这是我的个人见解如果有不对的地方欢迎大家指正我,勿喷喵!

二,实现Servlet的另外两种方法

1.一种是实现Servlet接口

这是Servlet类

java 复制代码
package com.haina.web;

import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;

public class SecondServlet implements Servlet {


    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        //initialize 用来初始化servlet对象,一个servlet对象在整个程序运行期间,只会初始化一次
        System.out.println("SecondServlet对象创建成功");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        PrintWriter writer=servletResponse.getWriter();
        writer.println("<h1>second</h1>");
        writer.flush();
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        //当servlet对象被销毁的时候,会自动调用该方法
        System.out.println("SecondServlet对象被销毁了");
    }
}

这是xml文件

java 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    
    
    <servlet>
        <servlet-name>second</servlet-name>
        <servlet-class>com.haina.web.SecondServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>second</servlet-name>
        <url-pattern>/aaa</url-pattern>
    </servlet-mapping>
</web-app>

当运行tomcat后就会调用init方法

当我们停止了tomcat的运行,就代表创建的Servlet对象被废除就调用了destroy方法

2.第二种是使用@WebServlet标签

java 复制代码
package com.haina.web;

import javax.jws.WebService;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;

//使用WebServlet注解来替代配置文件的编号,注意,路径仍然必须以斜杠开头
@WebServlet("/ccc")
public class ThirdServlet extends GenericServlet {

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        PrintWriter writer=servletResponse.getWriter();
        writer.println("<h1>third</h1>");
        writer.flush();
    }
}
复制代码
这种方法是使用频率最高的因为它使用起来更加便利简单,我们程序员的原则中要会原理,化繁为简。

这种方法在运行tomcat后之间在网页地址栏中加上标签括号中的内容就好了。不用去配置xml文件,之后的一些代码也是主要用这种方法来实现Servlet的

三,页面间传递参数

常用获取表单信息方法:

通过HttpServletRequest的getParameter()方法来获得客户端传递过来的数据,getParameter()方法返回一个字符串类型的值

java 复制代码
<%--
  Created by IntelliJ IDEA.
  User: ***
  Date: 2024/10/9
  Time: 19:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<form action="login" method="post">
    username:<input type="text" name="username">
    <br/>
    password:<input type="password" name="password">
    <br/>
    <input type="submit" value="login">
</form>
</body>
</html>
java 复制代码
package com.haina.web;

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

@WebServlet("/login")
public class Test extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        System.out.println(username);
        System.out.println(password);
    }
}

一个简单的演示。看运行结果

点击login

证明参数已经被后端代码接收

下次我们来做一个简单的系统那就是登录的系统

相关推荐
人生导师yxc4 小时前
Servlet小结
servlet
乘风破浪的咸鱼君18 小时前
一天学完Servlet!!!(万字总结)
servlet
宝耶21 小时前
HTTP协议-请求协议
网络协议·http·servlet
风行無痕2 天前
Ubuntu使用war包部署Jenkins并通过systemcl管理
java·servlet·jenkins
计算机毕设定制辅导-无忧学长2 天前
TDengine 性能监控与调优实战指南(二)
struts·servlet·tdengine
雨月琉琉3 天前
备份jenkins
运维·servlet·jenkins
我慢慢地也过来了4 天前
servlet+jdbc+jsp实现增加操作
java·开发语言·servlet
Minyy114 天前
SSM(SpringMVC+spring+mybatis)整合的步骤以及相关依赖
java·后端·spring·servlet·maven·intellij-idea·mybatis
雨月琉琉5 天前
Jenkins设置中文显示
java·servlet·jenkins
kfepiza8 天前
HttpSessionListener 的用法笔记250417
java·笔记·servlet·tomcat