验证码无法显示,而且无法跳转页面,老师帮忙检查下

验证码无法显示,而且无法跳转页面,老师帮忙检查下

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<head>

        <meta charset="UTF-8">

        <title>登录</title>

        <link rel="stylesheet" href="css/login.css">

    

</head>

<body>

      <div class="login">

            <div class="header">

                <h1>

                    <a href="/login.do">登录</a>

                    <span style="color:red;text-align:center;">${msg}</span>

                </h1>

                <button></button>

            </div>

            <form action="/login1" method="post">

                <div class="name">

                    <input type="text" id="name" name="username">

                    <p></p>

                </div>

                <div class="pwd">

                    <input type="password" id="pwd" name="password">

                    <p></p>

                </div>

                <div class="code">

                    <input type="text" id="code" name="verifyCode" style="width: 150px">

                    &nbsp;&nbsp;&nbsp;&nbsp;

                    <img  src="${pageContext.request.contextPath}/CheckImgSrevlet" style="width: 150px;height: 42px;vertical-align: middle;">

                    <p></p>

                </div>

                <div class="btn-red">

                    <input type="submit" value="登录" id="login-btn">

                </div>

            </form>

        </div>


</body>

</html>

package com.imooc.domain;


public class User {

    private String name;

    private String password;

    

    

    

    

    

@Override

public String toString() {

return "User [name=" + name + ", password=" + password + "]";

}

public User(String name, String password) {

super();

this.name = name;

this.password = password;

}

public User() {

super();

// TODO Auto-generated constructor stub

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

    

}

package com.imooc.web.listener;


import java.util.ArrayList;


import java.util.List;


import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;


import com.imooc.domain.User;


public class InitListener implements ServletContextListener {


@Override

public void contextDestroyed(ServletContextEvent sce) {

// TODO Auto-generated method stub


}


@Override

public void contextInitialized(ServletContextEvent sce) {

List<User> userList=new ArrayList<>();

userList.add(new User("张三","123456"));

userList.add(new User("李四","654321"));

sce.getServletContext().setAttribute("list", userList);


}


}


package com.imooc.servlet;


import java.io.IOException;

import java.util.List;


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 com.imooc.domain.User;

import com.imooc.utils.UserLogin;

import com.imooc.utils.UserServlet;


/**

 * Servlet implementation class LoginServlet

 */

@WebServlet("/login1")

public class LoginServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public LoginServlet() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String code1=request.getParameter("verifyCode");

String code2=(String)request.getSession().getAttribute("checkCode");

if(code1==null  || !code1.equals(code2)) {

request.setAttribute("msg", "验证码错误");

request.getRequestDispatcher("/login.jsp").forward(request, response);

return;

}

List<User> userList=(List<User>)request.getServletContext().getAttribute("list");

String name=request.getParameter("username");

String password=request.getParameter("password");

UserServlet user1=new UserLogin();

User user=user1.login(userList, new User(name,password));

if(user==null) {

request.getRequestDispatcher("/login.jsp").forward(request, response);

}else {

response.sendRedirect(request.getContextPath()+"/categoryList.jsp");

}

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}


}


package com.imooc.servlet;



import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.image.BufferedImage;

import java.io.IOException;

import java.util.Random;


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;




/**

 * Servlet implementation class CheckImgServlet

 */

@WebServlet("/CheckImgServlet")

public class CheckImgServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public CheckImgServlet() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

int width=150;

int height=42;

BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

Graphics graphics=bufferedImage.getGraphics();

graphics.setColor(Color.BLUE);

graphics.fillRect(0, 0, width, height);

graphics.setColor(Color.YELLOW);

graphics.drawRect(0, 0, width-1, height-1);

  

Graphics2D g2d=(Graphics2D)graphics;

g2d.setColor(Color.BLACK);

g2d.setFont(new Font("宋体",Font.BOLD,15));

StringBuffer sb=new StringBuffer();

String words="AQZWSXCDERFVBGTYHNMJUIKLOPqazwsxedcrfvtgbyhnujmiklop0123456789";

int x=0;

Random random=new Random();

for(int i=0;i<4;i++) {

int idx=random.nextInt(words.length());

char ch=words.charAt(idx);

sb.append(ch);

int jiaodu=random.nextInt(60)-30;

double threa=jiaodu*Math.PI/180;

g2d.rotate(threa,x,20);

g2d.drawString(String.valueOf(ch), x, 20);

g2d.rotate(-threa,x,20);

x+=20;

}

ImageIO.write(bufferedImage,"jpg",response.getOutputStream());

request.getSession().setAttribute("checkCode",sb.toString());

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}


}

<?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_3_1.xsd" id="WebApp_ID" version="3.1">

  <display-name>mvcc</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

  <listener>

    <listener-class>com.imooc.web.listener.InitListener</listener-class>

  </listener>

</web-app>

package com.imooc.utils;


import java.util.List;


import com.imooc.domain.User;


public interface UserServlet {

public User login(List<User> userList,User user);


}

package com.imooc.utils;


import java.util.List;


import com.imooc.domain.User;


public class UserLogin implements UserServlet {


@Override

public User login(List<User> userList, User user) {

for(User user1:userList) {

if(user1.getName().equals(user.getName()) && user1.getPassword().equals(user.getPassword())) {

return user1;

}

}

return null;

}

}

http://img1.sycdn.imooc.com//climg/5dbfecc2093fb6fb05810287.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 慕沐2169693 2019-11-04 21:16:54

老师那验证码问题在哪呢

  • 提问者 慕沐2169693 #1
    我知道了知道了
    2019-11-04 21:57:48
好帮手慕小班 2019-11-04 19:09:55

同学你好,检查同学贴出代码,有如下两个问题:

1、404问题,根据贴出的运行效果,这里直接访问了login1并没有加项目名,导致没有找到对应地址,原因是 以"/"开头,表示项目根目录,会直接直接从localhost:8080后直接访问,这里login1是以"/"开头,则直接访问login1,所以建议同学在/login1前添加项目名称,比如:

http://img1.sycdn.imooc.com//climg/5dc0069009750e4108510075.jpg

2、验证码图片不展示,是因为同学的servlet名称写错啦,例如:

http://img1.sycdn.imooc.com//climg/5dc006be09740dfc06040104.jpg

http://img1.sycdn.imooc.com//climg/5dc006d509bab67d09200087.jpgCheckImgServlet与CheckImgSrevlet不一样呐,建议同学将这里的名称统一。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕沐2169693 #1
    老师你说的我都改过来了,可是一直无法跳转图书分类页面,是地址输入得问题还是验证码查验有问题啊
    2019-11-04 22:44:39
  • 好帮手慕小班 回复 提问者 慕沐2169693 #2
    同学你好,1、这里同学无法跳转图书分类页面,在浏览器窗口运行效果是什么呐,是有错误吗,404还是500。2、验证码查验,同学可以输出一下code1与code2的值,查看是否一致呐。建议同学将修改后的运行效果贴出呐。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2019-11-05 10:57:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师