IDEA中Javaweb项目创建+servlet,实现简单的信息录入获取

新建项目

创建普通Java项目,在项目中添加web内容,先添加web文件夹,如果进行如下步骤后,有警告需要添加工件 ,点击创建工件 ,后-应用-确认-即可

创建后在src文件夹同级会出现web文件夹

进行tomcat配置

首先需要在本地解压tomcat,建议放在盘符根目录在,文件夹名称不要含有中文

  1. 应用服务地址:如果是首次配置可能需要手动选择,选择本地的tomcat文件夹即可
  2. 可以选择是否启动后直接打开浏览器
  3. 可以选择打开的浏览器是哪一个,URL可以自定义可以默认
  4. 执行"更新"操作,是否重启,按照自己需要选择即可
  5. 如果有"没有为部署标记工件",按照操作进行修复即可
  6. 下一步会有选择应用程序上下文,可以按需填写,或只填写"/"即可
  7. 完成后-应用-确认

在项目中添加Servlet

在项目中进行Servlet配置,选择添加模块,确认即可

Servlet编写流程

① 创建一个类 实现 javax.servlet.Servlet 接口

② 实现接口中所有抽象方法

③ 在 service 方法中,处理请求和响应结果

④ 配置Servlet 的访问路径

配置Servlet 的访问路径方式

  1. web.xml 进行配置 一般进行复杂配置

    ①在 web.xml配置文件中完成初始化参数的设置通过<init-param>实现, 在Servlet中 读取信息;load-on-startup设置访问优先级
    xml:
xml 复制代码
<servlet>
        <servlet-name>UserInfoServlet</servlet-name>
        <servlet-class>cn.wolfcode.demo.UserInfoServlet</servlet-class>
        <init-param>
            <param-name>name</param-name>
            <param-value>java</param-value>
        </init-param>

        <load-on-startup>1</load-on-startup>
    </servlet>
  1. 通过注解进行配置 只配置访问路径@WebServlet("/访问路径")

实现Servlet

  1. 继承Servlet
  2. 继承 GenericServlet
  3. 继承 HttpServlet(常用)
    操作中一般只关注service方法,进行重写即可

简单实现一个html页面用于获取表单数据

代码:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户新增</title>
</head>
<body>
    <form action="/info" method="post">
        <table>
            <tr>
                <td>姓名:</td>
                <td>
                    <input type="text" name="name">
                </td>
            </tr>
            <tr>
                <td>密码:</td>
                <td>
                    <input type="text" name="password">
                </td>
            </tr>
            <tr>
                <td>性别:</td>
                <td>
                    <input type="radio" name="sex" value="1">男
                    <input type="radio" name="sex" value="2">女
                </td>
            </tr>
            <tr>
                <td>爱好:</td>
                <td>
                    <input type="checkbox" name="hobby" value="java">java
                    <input type="checkbox" name="hobby" value="html">html
                    <input type="checkbox" name="hobby" value="css">css
                    <input type="checkbox" name="hobby" value="mysql">mysql
                </td>
            </tr>
            <tr>
                <td>
                    <input type="submit" value="提交">
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

Servlet实现

java 复制代码
import javax.servlet.ServletConfig;
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.util.Arrays;
import java.util.Map;

public class UserInfoServlet extends HttpServlet {

    //通过web.xml文件获取到的初始值,可以这样获取到
    @Override
    public void init() throws ServletException {
        ServletConfig sc = getServletConfig();
        String name = sc.getInitParameter("name");
        System.out.println("name = " + name);
    }

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        //拿到的是字符串,需要其他类型要自己转换
        String name = req.getParameter("name");
        System.out.println("name = " + name);
        String password = req.getParameter("password");
        System.out.println("password = " + password);
        String sex = req.getParameter("sex");
        System.out.println("sex = " + sex);


        String[] hobbies = req.getParameterValues("hobby");
        System.out.println("Arrays.toString(hobbies) = " + Arrays.toString(hobbies));

        System.out.println("====================");

        //获取所有数据
        Map<String, String[]> parameterMap = req.getParameterMap();
        parameterMap.forEach((k,v)->System.out.println(k+"="+Arrays.toString(v)));


    }
}

运行结果

相关推荐
程序员Jelena1 小时前
接口调用的代码实现:从入门到实战
java
代码钢琴师1 小时前
Throttle4j 快速上手教程
java
2601_961194022 小时前
考研资料电子版|去哪找|网盘
java·c语言·c++·python·考研·php
于先生吖2 小时前
前后端分离二手商城开发,质检登记、回收回款整套业务源码部署教程
java·开发语言·uni-app
我最爱吃鱼香茄子2 小时前
终极方案:JetBrains IDE永久解放C盘空间
计算机视觉·性能优化·电脑·笔记本电脑·intellij-idea·程序员创富·webstorm
小锋java12342 小时前
分享一套锋哥原创的基于LangChain4j的RAG医疗健康知识智能问答系统(SpringBoot4+Vue3+Ollama)
java·人工智能
程序员晨曦2 小时前
Java 并发修仙传:ThreadLocal 从“闭关修炼”到“走火入魔”的救赎之路
java·开发语言
AIGS0012 小时前
探索向量空间JBoltAI:工业企业数智化升级的基础设施
java·人工智能·人工智能ai大模型应用
zhangjw343 小时前
第18篇:Java网络编程零基础详解,IP、端口、TCP、UDP、Socket通信、实战文件传输
java·网络·tcp/ip