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

随便输入信息然后提交

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

在IntelliJ IDEA配置Servlet并创建HTML登录页面以便接收用户输入的用户名和密码,可以按照以下步骤操作: 1. **创建一个新的Servlet**: - 在IDEA中,选择 "File" -> "New" -> "Module",然后选择 "Web" 或 "Spring Web" 模板,这会自动生成Servlet支持。 2. **打开Web资源目录**: - 在项目结构中找到 `src/main/webapp` 文件夹,右键点击 `WEB-INF`,选择 "New" -> "Folder" 创建一个名为 `jsp` 的文件夹用于存放静态HTML文件。 3. **创建login.html页面**: - 在 `jsp` 目录下,新建一个名为 `login.html` 的文件,编辑内容如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login Page</title> </head> <body> <form action="/LoginServlet" method="post"> <label for="username">Username:</label> <input type="text" id="username" name="username"><br> <label for="password">Password:</label> <input type="password" id="password" name="password"><br> <input type="submit" value="Submit"> </form> </body> </html> ``` 4. **配置Servlet映射**: - 在 `src/main/webapp/WEB-INF/web.xml` 中,添加或修改以下内容,指定登录表单提交到`LoginServlet`: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" 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>LoginServlet</servlet-name> <servlet-class>com.yourpackage.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <!-- ... --> </web-app> ``` 确保将`<servlet-class>`替换为你实际的`LoginServlet`全限定名。 5. **编写LoginServlet处理请求**: - 创建一个名为 `LoginServlet.java` 的文件,在对应的包下,编写Servlet来处理表单数据,如验证和存储: ```java import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException; public class LoginServlet extends HttpServlet { // ... 实现 doPost() 方法,从 request 获取表单数据,处理和返回响应 @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); // 进行用户名和密码的处理,例如校验、保存等操作... if (isValidCredentials(username, password)) { // 登录成功,跳转或其他处理... } else { // 登录失败,返回错误信息或重定向回登录页... } } private boolean isValidCredentials(String username, String password) { // 自定义你的验证逻辑 return false; // 返回验证结果 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值