登陆网页时出现 500 Servlet Exception 怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登陆网页时出现 500 Servlet Exception 怎么解决相关的知识,希望对你有一定的参考价值。
参考技术A 500 Servlet Exception错误,一般情况下这个错误是 classpath设置有问题或加载异常造成的;造成这个异常的一般是加载的类中引用到的其他类不存在或未找到;
例如加载A,A引用B,B不存在或当前ClassLoad未加载B,就会抛出该异常。
建议作者加载哪个类时报的错,然后在确定引用到的类是否存在以及当前ClassLoad能加载到的位置。本回答被提问者和网友采纳 参考技术B 你这太宽泛了,500是服务器出错了,一般是代码有问题,
网页登陆注册(jsp实现)验证码
这是一个登陆页面,有登陆验证和验证码的功能
(1)生成验证码的servlet:
import javax.imageio.ImageIO;
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.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class YzmServlet extends HttpServlet {
//设置验证码图片的宽度
private static final int WIDTH = 100;
//设置验证码的高度
private static final int HEIGHT = 80;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//产生一张图片
BufferedImage image=new BufferedImage(Width,Height,BufferedImage.TYPE_INT_RGB);
response.setHeader("Pragram","no-cache");
response.setHeader("Cache-Control","no-catch");
response.setDateHeader("Exprires",0);
Graphics g=image.getGraphics();
//设置背景颜色
g.setColor(Color.WHITE);
//填充图片
g.fillRect(0,0,Width,Height);
//设置验证码颜色
g.setColor(Color.RED);
//设置验证码字体及大小
Font font=new Font("微软雅黑",Font.BOLD,20);
//获取验证码
String str=getRandomString(4);
//获取session
HttpSession session=request.getSession();
//给str做标记
session.setAttribute("str",str);
//在图片中画出验证码
g.drawString(str,50,50);
//在图片中随机划线
for (int i=0;i<15;i++){
int x1= RandomUtils.nextInt(0,Width);
int x2=RandomUtils.nextInt(0,Width);
int y1=RandomUtils.nextInt(0,Height);
int y2=RandomUtils.nextInt(0,Height);
Color color=new Color(RandomUtils.nextInt(0,255),RandomUtils.nextInt(0,255),RandomUtils.nextInt(0,255));
g.setColor(color);
g.drawLine(x1,y1,x2,y2);
}
//输出图片
ImageIO.write(image,"jpg",response.getOutputStream());
}
}
(2)登陆验证的servlet:
import org.apache.commons.lang3.RandomUtils;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
//获取输入的验证码的值
String yzm=request.getParameter("yzm");
//获取输入的用户名
String username=request.getParameter("username");
//获取输入的密码
String userpassword=request.getParameter("userpassword");
//获取session
HttpSession session=request.getSession();
//获取session标记的值,即服务端生成的验证码的值
String yzm2=(String) session.getAttribute("str");
//比较验证码
if (yzm.equals(yzm2)){
if(username.equals("zhangsan")&&userpassword.equals("123456")){
response.getWriter().print("登陆成功");
}else{
response.getWriter().print("用户名或密码错误");
}
}else{
response.getWriter().print("验证码错误");
}
}
}
(3)登陆界面(比较简陋)
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登陆</title>
</head>
<script type="text/javascript">
function refreshImg() {
document.getElementById("y").src="./Yzm";
}
</script>
<body>
<table width="760px" height="100%" align="center" style="background-color: azure">
<tr>
<td>
<div align="center"></div>
<table width="200" height="300">
<tr>
<td>
<form action="./Login" name="form1" method="post">
用户名:<input type="text" name="username">
密 码:<input type="password" name="userpassword">
<a>
<img id="y" name="y" src="./Yzm" height="100" onclick="refreshImg()">
</a>
<button type="submit" value="看不清?" style="background-color: red" onclick="refreshImg()">看不清?</button><br>
验证码:<input type="text" name="yzm" id="yzm" style="width: 30px" onclick="refreshImg()"><br>
<button type="submit" onclick="check()">提交</button>
<button type="reset">重置</button>
</form>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>
(4)配置web.xml
<?xml version="1.0" encoding="utf-8"?>
以上是关于登陆网页时出现 500 Servlet Exception 怎么解决的主要内容,如果未能解决你的问题,请参考以下文章
当 spring.http.multipart.enabled=false 并使用 Apache Commons File Upload 时出现“Servlet 没有多部分配置”500 错误