idea前端代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录页面</title>
<link rel="stylesheet" href="css/login.css">
</head>
<body>
<div id="header">
<div class="cover">
<span class="text0">欢迎访问大学生家教服务系统</span>
</div>
</div>
<div id="nav">
<div class="leftbox">
</div>
<div class="login">
<div class="form">
<a href="open.jsp">返回初始页面</a>
<form id="loginForm" action="LoginController" method="post">
用  户:<input id="username" type="text" name="username"><br>
密  码:<input id="password" type="password" name="password"><br>
身  份:<select id="identity" name="identity">
<option value="学生">学生</option>
<option value="教师">教师</option>
<option value="管理员">管理员</option>
</select><br>
<div id="app" class="verification-input">
验 证 码:<input type="text" id="captcha" name="captcha" v-model="user.verCode" size="6" required><br>
<img :src="captchaUrl" @click="clickImg" width="135px" height="33px" /><br>
</div>
<button type="submit" onclick="validateForm()">登录</button>
</form>
</div>
</div>
<div class="rightbox">
</div>
</div>
<div id="banner">
</div>
<div id="footer">
</div>
<audio controls autoplay>
<source src="http://music.163.com/song/media/outer/url?id=2095353936.mp3" autoplay="autoplay" loop>0>
Your browser does not support the audio element.
</audio>
<%--<script src="../js/vue.2.6.11/vue.min.js"></script>--%>
<%--<script src=""--%>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
<script>
new Vue({
el:'#app',
data:{
captchaUrl:'/captcha',
user: {
verCode: ''
}
},
methods: {
clickImg() {
this.captchaUrl = '/captcha?' + Math.random();; // 更新 URL 以防止缓存
}
},
mounted() {
this.clickImg(); // 组件挂载时初始化验证码图片
}
});
function validateForm() {
var password = document.getElementById('password').value;
if (!password.match(/^(?=.*\d)(?=.*[a-zA-Z])(.{4,})$/)) {
alert('密码因包含数字和字母且至少有4位');
return false;
}
}
</script>
</body>
</html>
idea后端代码
package Login;
import org.springframework.stereotype.Controller;
import com.wf.captcha.SpecCaptcha;
import com.wf.captcha.base.Captcha;
import com.wf.captcha.utils.CaptchaUtil;
import org.springframework.web.bind.annotation.*;
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 javax.servlet.http.HttpSession;
import javax.xml.transform.Result;
import java.io.IOException;
@RestController
public class CaptchaController {
@RequestMapping("/captcha")
public void captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setHeader("Cache-Control", "no-store, no-cache");
response.setContentType("image/jpeg");
SpecCaptcha captcha=new SpecCaptcha(135,33,4);
captcha.setCharType(Captcha.TYPE_ONLY_NUMBER);
CaptchaUtil.out(captcha,request,response);
}
@PostMapping ("/login")
public Result login(@RequestBody Login user, HttpServletRequest request){
if(!CaptchaUtil.ver(user.getVercode(), request)){
CaptchaUtil.clear(request);
}
return null;
}
}
idea里面的 pom.xml
```xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com</groupId>
<artifactId>teamWork</artifactId>
<version>1.0-SNAPSHOT</version>
<name>teamWork</name>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<junit.version>5.9.2</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpeg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
</project>
不管怎么运行,服务器端关于验证码部分始终报错
Failed to load resource: the server responded with a status of 404 ()