实验4 Java Web开发入门
需要资料的,文章末尾自提
一、实验目的
1、熟悉Java Web开发的一般步骤。
2、理解前端与后端的概念。
二、实验内容
设计如图4-1所示的注册页面。(补全代码一~代码三
)
当输入用户名和密码,单击“注册”按钮,如果用户名为“lily”,则在浏览器中输出“用户名已存在,注册失败!”,如图4-2所示;否则输出 “欢迎加入,您的md5密码是:***”,如图4-3所示。
图4-1 注册页面register.html
图4-2 注册失败
图4-3 注册成功
【实验步骤】
(1)新建一个名为”web4”的项目(Web应用程序)。在项目中,新建HTML,命名为“register”。register.html提供一个注册页面。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<!-- 【代码1】-->
</body>
</html>
(2)在项目中新建名为“it.servlet”的Java包,在包中新建名为“RegisterServlet”的Java类。RegisterServlet.java进行注册的验证。如果用户名为“lily”,则在浏览器中输出“用户名已存在,注册失败”;否则输出“欢迎加入。您的md5密码是:***”。
package it.servlet;
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.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
//【代码2】
public class RegisterServlet extends HttpServlet {
//md5加密方法
public static String stringToMD5(String plainText) {
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("md5").
digest(plainText.getBytes());
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("没有这个md5算法!");
}
String md5code = new BigInteger(1, secretBytes).toString(16);
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code = "0" + md5code;
}
return md5code;
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//【代码3】
// 获取表单提交的用户名和密码
resp.setContentType("text/html;charset=UTF-8");
// 假设用户名为 "lily" 时已存在
if ("lily".equals(username)) {
resp.getWriter().println("用户名已存在,注册失败");
} else {
// 对密码进行MD5加密
String md5Password = stringToMD5(password);
resp.getWriter().println(username + " 欢迎加入。您的md5密码是:" + md5Password);
}
}
(3)设置项目的Application Context为“/web4”。启动tomcat,部署项目,查看结果。
三、具体实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<!-- 【代码1】-->
<form action="RegisterServlet" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="password" name="password"><br/>
<input type="submit" value="注册">
</form>
</body>
</html>
package it.servlet;
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.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
//【代码2】
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
//md5加密方法
public static String stringToMD5(String plainText) {
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("md5").
digest(plainText.getBytes());
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("没有这个md5算法!");
}
String md5code = new BigInteger(1, secretBytes).toString(16);
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code = "0" + md5code;
}
return md5code;
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//【代码3】
// 获取表单提交的用户名和密码
resp.setContentType("text/html;charset=UTF-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
// 假设用户名为 "lily" 时已存在
if ("lily".equals(username)) {
resp.getWriter().println("用户名已存在,注册失败");
} else {
// 对密码进行MD5加密
String md5Password = stringToMD5(password);
resp.getWriter().println(username + " 欢迎加入。您的md5密码是:" + md5Password);
}
}
四、资料自提
链接:https://pan.baidu.com/s/1yhQ5mcD4yATaEndKHUmTXw?pwd=hb7x
提取码:hb7x