问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

向Servlet发送请求

创作时间:
作者:
@小白创作中心

向Servlet发送请求

引用
CSDN
1.
https://blog.csdn.net/weixin_42349568/article/details/137104953

本文将通过一个简单的登录案例,详细介绍如何使用Tomcat和Servlet进行Web开发。从项目创建到最终运行,每个步骤都配有详细的代码和说明,适合初学者快速入门。

一、新建项目

新建的Maven项目默认是空的,需要将其配置为Servlet项目。

二、添加Web模块

在新建的空项目中,添加一个Web模块。

三、引入Servlet依赖

在项目的pom.xml文件中添加Servlet依赖,编辑器会自动下载所需的库文件。

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
    </dependency>
</dependencies>

四、编写MyServlet类

在Servlet中,需要重写以下方法来处理HTTP请求:

  • init(): Servlet初始化时调用
  • doGet(): 处理HTTP GET请求
  • doPost(): 处理HTTP POST请求
  • doPut(): 处理HTTP PUT请求
  • service(): 根据HTTP请求类型调用对应的doXXX()方法
  • destroy(): Servlet销毁前调用

下面是具体的MyServlet类实现:

package com.masiyi.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
    public MyServlet() {
        super();
    }
    @Override
    public void init() throws ServletException {
        super.init();
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        String username = req.getParameter("username");
        String pwd = req.getParameter("pwd");
        System.out.println("用户名:" + username + ":密码:" + pwd);
        PrintWriter writer = resp.getWriter();
        writer.print("用户名:" + username);
        writer.print("密码:" + pwd);
        writer.close();
        super.doPost(req, resp);
    }
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.service(req, resp);
    }
    @Override
    public void destroy() {
        super.destroy();
    }
}

五、配置Servlet访问路径

可以通过web.xml文件或注解方式配置Servlet的访问路径。

web.xml中配置如下:

<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>com.masiyi.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/myServlet</url-pattern>
</servlet-mapping>

或者使用注解方式:

@WebServlet("/MyServlet")

六、编写JSP页面

在Web项目的根目录下创建index.jsp文件,用于接收用户输入并提交到Servlet处理。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>向Servlet发送请求</title>
</head>
<body>
<%--注意:
    action的值 是 :web.xml 文件中的 url-pattern 的值。
--%>
<form action="/MyServlet" method="post">
    用户名: <input type="text" name="username"> <br>
    密码: <input type="password" name="pwd"> <br>
    <input type="submit" value="提交">
</form>
</body>
</html>

七、运行项目

使用IDEA的Tomcat插件部署项目。

八、运行结果

当浏览器访问localhost:8080时,会显示index.jsp页面。点击提交按钮后,浏览器的URL会变为localhost:8080/MyServlet,并发起POST请求。由于@WebServlet("/MyServlet")注解将该路径映射到MyServlet类,因此会执行该类中的业务逻辑。

总结:Servlet是Java中用于处理Web请求的一种技术,它封装了HTTP请求和响应的处理逻辑。通过继承Servlet类并重写其中的方法,可以创建自定义的Servlet类,用来拦截和处理HTTP请求,从而完成业务代码逻辑。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号