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)));


    }
}

运行结果

相关推荐
像我这样帅的人丶你还8 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩8 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
tntxia9 小时前
Mybatis的日志输入
java
亦暖筑序11 小时前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
用户2986985301414 小时前
Java 实现 Word 文档加密与权限解除
java·后端
曲幽14 小时前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
Yeats_Liao14 小时前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿14 小时前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试
鹤望兰67515 小时前
字节跳动国际支付-后端开发-三面面经
java
Flittly15 小时前
【AgentScope Java新手村系列】(14)人机交互
java·spring boot·spring