第一部分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
随便输入信息然后提交
仅供参考,可能我的方法不适合大家