Servlet获取表单数据及idea2022.3配置servlet

第一部分IDEA配置servlet1.新建一个新项目

2.选择Jakarta EE ,模板选用web应用程序,服务器选用Tomcat9.0.82(我之所以用这个服务器,是可以省略很多配置步骤,新建好项目后就直接使用了,不同于Tomcat8.5.35,它要配置很多文件,需要查阅教程),其他参考图片,然后选择下一步。

3.版本选择Java EE8,会自动添加servlet依赖项,然后选择创建。

4.服务器已经自动搭建好了。

可以对服务器进行修改

再找到部署,下滑找到应用程序上下文(可自定义进行修改),可以修改成自己项目名

5.修改web.xml的配置

(1)有两种方式

第一种是直接在java类里加注释@WebServlet(自带的java类进行举例)

@WebServlet(name = "helloServlet", value = "/hello-servlet")或者
@WebServlet( "/hello-servlet")

这种方法简单明了

第二种在web.xml中加注释

可加上 metadata-complete="false",但是false改为true.(这里我也不是很懂)

 <!-- 配置servlet类 -->
    <servlet>
        <!--设置servlet名字-->
        <servlet-name>helloServlet</servlet-name>
        <!--具体的servlet类,写出类的包名-->
        <servlet-class>com.example.demo.HelloServlet</servlet-class>
    </servlet>
    <!--指定servlet访问路径-->
    <servlet-mapping>
        <!--指定要映射的servlet的名字-->
        <servlet-name>helloServlet</servlet-name>
        <!--servlet的具体映射路线-->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

(写完之后重新运行一下TomCat)第二部分servlet获取表单数据

在java包新建一个软件包servlet,在这个包里新建一个accept类,在webapp新建一个register.jsp

accept.java

package servlet;

import javax.servlet.ServletConfig;
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;
import java.io.PrintWriter;

//@WebServlet("/servlet/accept")
public class accept extends HttpServlet {
   public String codeToString(String str){
      // 处理中文字符串的函数
      String s=str;
      try{
         byte tempB[]=s.getBytes("ISO-8859-1");
         s= new String(tempB);
         return s;
      }catch (Exception e) {
         return s;
      }
   }
   public void init(ServletConfig config)throws ServletException{
      super.init(config);
   }
     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      //设置mime
      response.setContentType("text/html;charset=GB2312");
      PrintWriter out = response.getWriter();
      out.println("<HTML><head><title>接受新用户注册</title><head><BODY>");
      out.println("这是新用户注册所提交的数据:<br>");
      out.println("用户名是:" + codeToString(request.getParameter("username")) + "<br>");
      out.println("密码是:" + codeToString(request.getParameter("userpassword")) + "<br>");
      out.println("性别是:" + codeToString(request.getParameter("sex")) + "<br>");
      out.println("出生年月是:" + request.getParameter("month") + request.getParameter("day") + "<br>");
      out.println("电子邮箱是:" + request.getParameter("email") + "<br>");
      out.println("家庭住址是:" + codeToString(request.getParameter("address")) + "<br>");
      out.println("</body></html>");


   }

}

register.jsp

<%@ page contentType="text/html;charset=gb2312" %>
<script language="javascript" >
function on_submit(){
//验证数据的合理性
let forml;
 if (forml.username.value == ""){
 alert("用户名不能为空,请输入用户名!");
 forml.username.focus();
 return false;
 }
 if (forml.userpassword.value == ""){
   alert("用户密码不能为空,请输入密码!");
   forml.userpassword.focus();
   return false;
 }
  if (forml.reuserpassword.value == ""){
    alert("用户确认密码不能为空,请输入密码!");
    forml.userpassword.focus();
    return false;
  }
  if(forml.userpassword.value != forml.reuserpassword.value){
    alert("密码与确认密码不同");
    forml.userpassword.focus();
    return false;
  }
  if (forml.email.value.length!=0) {
    for ( i = 0; i < forml.email.value.length; i++)
      if (forml.email.value.charAt(i) == "@")
        break;
      if (i == forml.email.value.length) {
        alert("非法Email地址");
        forml.email.focus();
        return false;
      }
    }

    else{
      alert("请输入Email!");
      return false;
    }

}
</script>
<html>
<head>
    <title>新用户注册</title>
</head>
<body>
<form method="POST" action="http://localhost:8080/demo/servlet/accept" name="forml" onsubmit="return on_submit()">
  新用户注册<br>
    用户名(*):<input type="text" name="username" size="20"><br>
  密码(*):<input type="password" name="userpassword" size="20"><br>
  再输一次密码(*):<input type="password" name="reuserpassword" size="20"><br>
  性别:<input type="radio" value="男" checked name="sex">男<input type="radio" name="sex" value="女">女<br>
  出生年月:<input name ="year" size="4" maxlength="4">年
  <select name="month">

    <option value="1" selected>1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
  </select>月
  <input name ="day" size="3" maxlength="4">日<br>
  电子邮箱(*):<input name="email" maxlength="28"><br>
  家庭住址:<input type="text" name="address" size="20"><br>
  <input type ="submit" value=" 提交" name="B1"><input type ="reset" value="全部重写" name="B2"><br>
</form>
</body>
</html>

web.xml的配置(不用这个也可以,可以使用注释的方式:@WebServlet("/servlet/accept")

<servlet>
        <servlet-name>accept</servlet-name>
        <servlet-class>servlet.accept</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>accept</servlet-name>
        <url-pattern>/servlet/accept</url-pattern>
    </servlet-mapping>

点击运行服务器,会弹出自带的jsp页面,我们只需将后缀地址改为要查看的register.jsp

随便输入信息然后提交

仅供参考,可能我的方法不适合大家

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值